S7-200 SMART的自由口通信是基于RS-485通信基础的半双工通信,西门子S7-200SMART系列PLC拥有自由口通信功能,即没有标准的通信协议,用户可以自己规定协议。
第三方设备大多数支持RS-485串行通信,西门子S7-200 SMART系列PLC可以通过自由口通信模式控制串口通信。
自由口通信的核心就是发送(XMT)和接收(RCV)两条指令,以及相应的特殊寄存 器控制。由于S7-200 SMART CPU通信端口是RS-485半双工通信口,因此发送和接收不能 同时处于激活状态。RS-485半双工通信串行字符通信的格式可以包括一个起始位、7或8位字符(数据字节)、一个奇/偶校验(或没有检验位)、一个停止位。
标准的S7-200 SMART只有一个串口(为RS-485),为Port0口,还可以扩展一个信号板,这个信号板由组态时设定为RS-485或者RS-232,为Portl口。
自由口通信波特率可以设置为1 200、2 400、4 800、9 600、19 200、38 400、57 600或 115 200bit/so凡是符合这些格式的串行通信设备,理论上都可以和S7-200SMART CPU通 信。自由口模式可以灵活应用。STEP 7-MicroAVIN SMART的两个指令库(USS和Modbus RTU)就是使用自由口模式编程实现的。
1)通信模式由控制字节的最低的两位“mm”决定。
mm=00:PPI 从站模式(默认这个数值)。
mm=01:自由口模式。
mm=10:保留(默认PPI 从站模式)。
mm=11:保留(默认PPI 从站模式)。
2)控制位的“pp”是奇偶校验选择。
pp=00:无奇偶校验。
pp=01:偶校验。
pp=10:无奇偶校验。
pp=11:奇校验。
3)控制位的“d”是每个字符的位数。
d=0:每个字符是8位。
d=1:每个字符是7位。4)控制位的“bbb”是波特率的选择。
bbb=000:38 400bit/s。 bbb=001:19 200 bit/s。
bbb=010:9 600bit/s。 bbb=011:4 800 bit/s。
bbb=100:2 400 bit/s。 bbb=101:1 200 bit/s。
bbb=110:11 5200 bit/s。 bbb=111:56 700 bit/s。
2.自由口通信时的中断事件在S7-200 PLC的中断事件中,与自由口通信有关的中断事件如下。
1) 中断事件8:通信端口0单字符接收中断。
2)中断事件9:通信端口0发送完成中断。
在S7-200 PLC的中断事件中,与自由口通信有关的中断事件如下。
1) 中断事件8:通信端口 0单字符接收中断。
2) 中断事件9:通信端口 0发送完成中断。
3) 中断事件23:通信端口 0接收完成中断。
4) 中断事件25:通信端口 1单字符接收中断。
5) 中断事件26:通信端口 1发送完成中断。
6) 中断事件24:通信端口 1接收完成中断。
在自由口通信模式下,可以用自由口通信指令接收和发送数据,其通信指令有两条:数据接收指令RCV和数据发送指令XMT。其指令梯形图和语句表如表5-16所示。
TBL:缓冲区首址,操作数为字节;PORT:操作端口,若通过S7-200 SMART本机上 串口进行通信,则操作端口号为0;若通过扩展信号板进行通信,则操作端口号为1。
数据接收指令是通过端口(PORT)接收远程设备的数据并保存到首地址为TBL的数据接 收缓冲区中。数据接收缓冲区一次最多可接收255个字符的信息,数据缓冲区格式如表5-17 所示。
数据发送指令是通过端口 (PORT)将数据表首地址TBL (发送数据缓冲区)中的数据 发送到远程设备上。发送数据缓冲区一次最多可发送255个字符的信息。
(1) 发送
发送完成后,会产生一个中断事件,对于端口 0为中断事件9,而对于端口 1为中断事 件26o当然也可以不通过中断,而通过监视SM4.5 (端口 0)或SM4.6 (端口 1)的状态来判断发送是否完成,如果状态为1,说明完成。
(2) 接收
可以通过中断的方式接收数据,在接收字符数据时,有如下两种中断事件产生。
1)利用字符中断控制接收数据。
每接收完成1个字符,就产生一个中断事件8 (通信端口 0)或中断事件25 (通信端口 l)。特殊继电器SMB2作为自由口通信接收缓冲区,接收到的字符存放在其中,以便用户程序访问。奇偶校验状态存放在特殊继电器SMB3中,如果接收到的字符奇偶校验出现错误, 则SM3.0为1,可利用SM3.0为1的信号,将出现错误的字符去掉。
2)利用接收结束中断控制接收数据。
当指定的多个字符接收结束后,产生中断事件23 (通信端口 0)和24 (通信端口 1)。 如果有一个中断服务程序连接到接收结束中断事件上,就可以实现相应的操作。当然也可以 不通过中断,而通过监控SMB86 (端口 0)或SMB186 (端口 1)的状态来判断接收是否完 成,如果状态非零,说明完成。SMB86和SMB186含义如表5-18所示。
S7-200 SMART在接收信息字符时还要用到一些特殊寄存器,对通信端口 0要用到 SMB87〜SMB94,对通信端口 1要用到SMB187〜SMB194,如表5-19和表5-20所示。
知识点词条:自由口通信