ModbusTcp介绍 ============================ 协议介绍 +++++++++++++++++++++++++ +-------------------------+---------------------------------------------------------------+ | ModbusTcp服务器Server | PLC | | | | | | | | (也称为Modbus Slave) | | +-------------------------+---------------------------------------------------------------+ | ModbusTcp客户端Client | XYZ Studio Max | | | | | | | | (也称为Modbus Master) | | +-------------------------+---------------------------------------------------------------+ | IP地址 | PLC和XYZ Studio Max同一网段 | +-------------------------+---------------------------------------------------------------+ | 端口 | 502(可配置) | +-------------------------+---------------------------------------------------------------+ | 响应周期 | 和PLC循环监视时间有关。 | | | | | | 在PLC的循环监视时间为100ms的情况下,平均通信响应时间 > 100 ms | +-------------------------+---------------------------------------------------------------+ | 寄存器占用情况 | 预先占用800个保持寄存器 | +-------------------------+---------------------------------------------------------------+ 程序运行基本逻辑: 1. 通信采用周期轮寻的方式。 2. 逻辑上,PLC是向XYZ Studio Max主动请求命令的一方。PLC根据需要,在合适时机发送相关指令(如切换工件、拍照等)给Max,Max执行PLC的请求并返回执行结果。 3. 为了保持长链接,Max和PLC中间会有个定期运行的心跳信号。 交互时序 +++++++++++++++++++++++++ .. figure:: img/sequence_diagram.PNG :width: 1664px :align: center ModbusTcp交互时序(可放大查看) 阅读以上时序图的要点: 1. 中间实线箭头表示PLC向Max进行相关数据交互,虚线箭头表示Max向PLC进行相关数据交互。 2. 第一次阅读时,可以先从plc角度开始,暂时忽略掉Max端内部细节。也就是可以查看左边PLC的内部时序以及中间由PLC发起的通信部分(实线箭头部分)。 3. 上图中涉及plc_request_flag的信号复位,请严格遵守。 4. 请严格按照时序图进行信号触发和数据收发,否则会有时序混乱的风险。