S7-200系列PLC本身集成了一个RS485接口,通过这个RS485接口可以实现自由口通信、MODBUS RTU通信、USS协议通信,在这些通信中自由口通信为最基本也是最重要的通信,想要学习好
S7-200系列PLC的串口通信功能,就须要掌握好自由口通信的应用。虽然西门子有提供相应的MODBUS库及USS协议库指令。让用户快速的掌握MODBUS及USS协议通信程序的编写,若有研究过库指令的朋友,其实可以发现,库指令也是通过自由口方式做出来的一个功能块程序。
接下来的几篇文章,我给大家分享下自己学习自由口通信的体会,希望对大家学习自由口通信有一定的帮助。
在学习自由口程序编写之前,我们首先要理解以下的一些基本知识内容。
(1)通信协议
通信协议是设备与设备之间进行信息交换的一种约定,类似于人与人交流的语言。通信协议有很多种。大家常常听到的MODBUS协议,USS协议,PPI协议。MPI协议等这些都是通信协议的。
通信协议是在学习自由口通信时必须要掌握的,自由口通信的核心就是使用发送指令(XMT)和接收指令(RCV)来完成数据的发送和接收,那么发送什么数据出去,在接收回来的数据中,哪些数据是有效的数据,这些都是需要从通信协议中来获得信息的。通信协议由作为从站的通讯设备给出,如PLC与仪表通信或是变频器通信,那么在仪表或是变频器的说明书上就会提供这个仪表或是变频器所支持的通信协议。(如下图所示为一个仪表的通信协议)
(2)信息帧格式或消息报文
说到信息帧格式,很多人不理解什么是信息帧格式,有人也把信息帧格式叫做数据个数,或是消息报文,不管怎么说,意思都是一样的,信息帧格式表示的是我们PLC需要发送出去的数据,以及接收回来的数据的是一种什么样的格式,这个信息帧格式是根据通信协议而来的。如上面所描述的通信协议。假设规定使用ascall的字符来进行通信的,若需要读取站号为01的仪表的过程值数据,而过程的参数名为“M1”(注:这些参数名在仪表说明书中会给出)那么根据这个通信协议我们就可以得到两条信息帧的格式,一条是PLC需要发送出去的信息帧格式,另外一条是PLC接收回来的信息帧格式:
(3) 起始符、结束符与起始位和停止位的区别
在自由口通信中经常会听到,起始位、停止位、起始符、结束符,那么他们之间有什么区别呢?
首先从字面上的理解,大家就可以知道,停止位或起始位,他是一个位。而起始符和结束符是一个字符,一条信息帧格式中包含了多个字符,一条信息帧格式中有起始符和结束符,如上面协议中的描述,起始符(EOT),结束符(ENQ)。而在这条信息帧格式的字符中,每个字符都有起始位、停止位、数据位和奇偶校验位组成。如图所示: