31C300-503-4-00
发布时间:2019-01-03 16:50:05点击率:
PLC网络通信协议[19]
本系统采用的PLC是德国SIEMENS公司生产的S7-200系列,主模块采用CPU226,扩展模块采用数字量扩展模块EM222和模拟量扩展模块EM235。
S7-200系列CPU具有强大的通信能力。主要支持以下几种协议:
1.PI(Point-to-Point)协议,即点到点接口协议。PPI是一个主/从协议,主站(其它CPU或SIMATIC编程器)给从站发送申请,从站进行响应。从站不初始化信息,只响应主站的申请或查询。如果在用户程序中允许PPI主站模式,S7-200 CPU在RUN模式下可以作为主站,还可以利用网络读R)和网络写W)指令读写其他CPU,同时也能够作为从站响应来自其它主站的申请。采用PPI协议的网络中 多只能有32个主站。该协议主要是用来编程、PPI组网等
2.MPI(Multi-Point)协议,即多点接口协议。MPI可以是主/主协议或主/从协议,协议如何操作依赖于设备类型(设备是S7-200系列CPU时建立主/从连接)。MPI总在两个相互通信的设备之间建立连接,其它主站不能干涉两个设备之间已建立的连接。由于S7-200的连接是非公用的,并且需要CPU中的资源,每个S7-200 CPU只能支持4个连接,每个EM277模块支持6个连接。在使用时,每个S7-200 CPU和EM277模块保留两个连接,分别用于连接SIMATIC编程器(或计算机)以及操作面板。这些保留连接不能被其它类型的主站使用。
3.ROFI协议。PROFI协议设计用于分布式I/O设备(远程I/O)的高速通信。PROFI网络通常有一个主站和几个I/O从站,主站配置成知道所连接的I/O从站的型号和地址。主站初始化网络并核对网络上的从站设备和配置中的是否匹配。主站连续的把输出数据写到从站并从它们读取输入数据。
31C300-503-4-00
户自定义协议(自由口协议)。自由口协议可以由用户定义通讯协议,通过用户程序控制S7-200通信口的操作模式,将CPU与任意通讯协议公开的设备联网,如上位计算机、打印机、变频器等。用户程序通过使用接收中断、发送中断、发送指令(XMT)和接收指令(RCV)来控制通信口的操作。在自由口模式下,通信协议完全由用户程序控制。用户程序通过设置SMB30(0口)允许自由口模式,而且只有在CPU处于RUN模式时才能允许。当CPU处于模式时,自由口通信停止,通信口转换成正常的PPI协议操作。
可以利用PC/PPI电缆和自由口通信功能把S7-200 CPU连接到许多和RS-232标准兼容的设备。PC/PPI电缆支持波特率设置,利用PC/PPI电缆盒上的DIP开关可以配置所需的波特率。波特率和开关位置的对应关系如表4-6所示:
表4-6 波特率和开关位置对应表
| 波特率 | 38400 | 19200 | 9600 | 4800 | 2400 | 1200 | 600 | 300 |
| 开关(1=上) | 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
当数据从RS-232传送到RS-485口时,PC/PPI电缆是发送模式。当数据从RS-485传送到RS-232口时,PC/PPI电缆是接收模式。当检测到RS-232的发送线有字符时,电缆立即从接收模式转换到发送模式。当RS-232发送线处于闲置的时间超过电缆切换时间时,电缆又切换到接收模式。这个时间与电缆上的DIP开关设定的波特率选择有关,如表4-7所示:
表4-7 PC/PPI电缆转换时间(发送模式到接收模式)
| 波 特 率 | 38400 | 19200 | 9600 | 4800 | 2400 | 1200 | 600 |
| 转换时间(ms) | 0.5 | 1 | 2 | 4 | 7 | 14 | 28 |
在使用自由口的系统中使用PC/PPI电缆时,必须在S7-200 CPU的用户程序中包含转换时间。S7-200 CPU在接收到RS-232设备的申请信息后,S7-200 CPU的发送信息响应必须延迟超过或等于电缆的切换时间。RS-232设备在接收到RS-232设备的申请信息后,S7-200 CPU的下一次申请信息的发出必须延迟超过或等于电缆的切换时间。在以上两种情况中,需要通过延迟使PC/PPI电缆有足够的时间从发送模式切换到接收模式,以便于数据从RS-485口传送到RS-232口。
1.3.2 PLC通信程序设计
PLC作为控制系统中的下位机,不主动发送数据而是被动的响应上位机的命令,根据上位机的指令进行数据发送和接收。PLC中的通信程序由主程序、三个子程序和三个中断组成,通信程序的流程如图4-4所示。
1、主程序
PLC在 次扫描时执行初始化子程序,对端口及RCV指令进行初始化。初始化完成后,使端口处于接收状态。RCV指令将接收到的数据保存到接收缓冲区,同时产生接收完成中断。PLC每接收到一条指令后都会发送一条反馈信息,发送完成后产生发送完成中断。程序中使用的标志位含义约定如下:
M0.0:校验正确则置位;
M0.1:Verify子程序的触发条件,被置位表示进行校验。



