消防网站建设的风格,合肥网站建设兼职,企业所得税税率2022年最新税率表,c 语言可以做网站吗1 DATA_ADDR通讯起始地址设置
因为西门子PLC保持型寄存器的是40001~49999和400001~465536#xff0c;
那么什么时候用40001什么时候用400001呢#xff1f;
当需要的地址超过49999的话就用400001。
比如从站的某个地址是#16 48D518645
4000118645超过了49999
这边因为前…1 DATA_ADDR通讯起始地址设置
因为西门子PLC保持型寄存器的是40001~49999和400001~465536
那么什么时候用40001什么时候用400001呢
当需要的地址超过49999的话就用400001。
比如从站的某个地址是#16 48D518645
4000118645超过了49999
这边因为前面说了西门子的保持型寄存器是从40001和400001开始的所以这边从400001开始算
那么就地址就是40000118645418646了。 Modbus通讯的地址是从1开始的如果遇到从机设备的寄存器编号是从0开始那么就需要考虑给通讯地址加1。 2 建立RUT连接
这边讲一下西门子RTU指令其中一种思路打法和RTU指令用法。
这边有两种RTU指令
一种是新RTU
一种是旧RTU
我这边使用新RTU指令。
指令用法是一样的
就是老RTU指令使用轮询方式可能会出现轮询卡死。 接下来我会对指令的每一个信号做出解释具体可以F1看手册 REQ出现上升沿启动指令所以我这边是给了一个PLC上电得电的一个信号。
PORT是硬件标识符就是485模块的硬件标识符。 直接选择对应数据就行 BUAD波特率直接填写默认的9600就行了。
PARUTY奇偶校验位 0是无校验1是奇校验2是偶校验。我选奇校验。 FLOW_CTRL、RTS_ON_DLY和RTS_OFF_DLY是用于硬流控和软流控的一般用不到就不管他
RESP_TO这个是主站等待从站的相应时间。
这是主站发送请求帧如果超过这个时间没有收到从站发送的答应帧那么就会认为该从站连接已丢失。
这边还有一个重试次数 在指令的背景数据块中RETRIES。 MB_DB是填写的Modbus_Master_DB数据块中的MB_DB数据。 这样建立连接数据块就建好了 3 RTU轮询
前面那个是建立Modbus连接后面这个是作为Modbus主站收发数据
REQ直接给建立连接好的初始化完成
MB_ADDR是从站的站号
MODE0是接收数据1是发送数据
DATA_ADDR这边就根据前面讲的起始地址为400012号地址就是40001240003 DATA_LEN数据长度这边就是1个整形。
DATA_PTR要写入的数据 这样就完成了将轮询.1数据的值发送到1号从机的地址2中。
然后再用上个指令的结束位来让下个指令触发 注意指令的背景数据块必须是同一个
后面的方法同理 最后
再将最后一个收发指令的结束信号
返回到开头的第一步。 到这里RTU指令的轮询就结束了。
4 结语
本篇文章为个人学习总结如有不足请及时支持多多包涵QwQ.
觉得有用的话就点个赞吧ღ( ´ᴗ )。