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