Modbus TCP通信程序设计与编程
Modbus TCP通信程序设计与编程,设置连接参数是关键
此实例PLC作为客户端,如何对这个服务器的当前实时流量进行读取,以及又如何对识别码进行写入数据呢?
首先调用modbus TCP的客户端的通讯指令,因为PLC是作为客户端的;
- 当REQ获取到上升沿就会读取当前这个指令;
- MB_MODE读是0写是1;
- MB_DATA_ADDR读取服务器的寄存器地址,从第一幅图可知地址是0,而PLC或电脑的地址是从40001开始的,所以就写作40001即可;
- MB_LEN由于读取的实时流量是float是4个字节,也就是2个字的长度;
- MB_DATA_PTR也就是从服务器读取的数据放在哪里?
- CONNECT指定连接服务器的一些连接信息;它是TCON_IP_v4类型,连接参数是关键,可以参考手册;
如果在通讯的过程中又有读又有写,那肯定要调用多个mb_client指令,调用多个的时候一定要注意使用同一个背景DB块;在拖放指令MB_CLIENT块时,点取消,复制第一个背景块就可以实现相同的DB块编程了。
现在有了读和写,因为我们读和写是不能同时发生的,所以就需要做轮询;过程就是段1的读完成位来触发程序段2的写;段2的写完成反过来触发段1的读操作,这样形成一个闭环;
当产生错误时将状态码保存到一个新的位置,如本例中的MW1020处,为什么要保存呢,因为这个错误和状态,它只会持续一个周期。
启动MThings服务器,然后给开始一个上升沿,也就是开关一次即可以通讯了。
此时在程序段2的写入数据60,在服务器端也能读出3C来也就是60;