1.特殊字节
(1)特殊标志字节
S7-200 CPU使用SMB30与SMB130来分别定义通信口Port0、Port1的工作模式,其控制字节的定义如图8-5所示。可以从SMB30和SMB130读取或向SMB30和SMB130写入。这些字节配置各自的通信端口,进行自由口操作,并提供自由口或系统协议支持选择。
1)通信口的工作模式由控制字最低的两位“mm”来决定。
①mm=00:点对点接口模式(即PPI/从属模式),默认为00。
图8-5 SMB30/SMB130 控制字节的定义
②mm=01:自由口协议模式。
③mm=10:PPI/主站模式。
④mm=11:保留(PPI/从站模式默认)。
因此,要实现自由口通信,S7-200 CPU必须将SMB30或SMB130赋值为2#01。
2)通信速率由控制字的“bbb”来控制。
①bbb=000:38400bit/s。
②bbb=001:19200bit/s。
③bbb=010:9600bit/s。
④bbb=011:4800bit/s。
⑤bbb=100:2400bit/s。
⑥bbb=101:1200bit/s。
⑦bbb=110:115200bit/s。
⑧bbb=111:57600bit/s(需要S7-200 CPU版本1.2或以上)。
3)每个字符的位数由控制字的“d”来控制。
①d=0:每个字符8个数据位。
②d=1:每个字符7个数据位。
4)奇偶校验选择由控制字的“pp”来控制。
①pp=00:无校验。
②pp=01:偶校验。
③pp=10:无校验。
④pp=11:奇校验。
(2)接受信息的状态字节
S7-200在自由口通信时,用于接收信息的状态有SMB86和SMB186,SMB86用于S7-200的Port0的通信,SMB186用于S7-200的Port1的通信,两者的格式一样,其状态字节的定义如图8-6所示。下面以SMB186为例,介绍其组成。SMB186各位的含义如下:
n=1时:禁止接收信息。
图8-6 SMB86/SMB186状态字节的定义
r=1时:接收信息结束。
e=1时:收到结束字符。
t=1时:接收信息超时错误。
c=1时:接收信息字符超长错误。
p=1时:接收信息奇、偶校验错误。
(3)接收信息的控制字节
S7-200在自由口通信时,用于接收信息的控制字节有SMB87和SMB187,SMB87用于S7-200的Port0的通信,SMB187用于S7-200的Port1的通信,两者的格式一样,其控制字节的定义如图8-7所示。下面以SMB187为例,介绍其组成。SMB187各位的含义如下:
en=0时:禁止接收信息。
en=1时:允许接收信息。
sc=0时:不使用起始字符开始。
sc=1时:使用起始字符作为接收信息的开始。
ec=0时:不使用结束字符结束。(www.xing528.com)
图8-7 SMB87/SMB187状态字节的定义
ec=1时:使用结束字符作为接收信息的结束。
il=0时:不使用空闲线检测。
il=1时:使用空闲线检测。
c/m=0时:定时器是字符定时器。
c/m=1时:定时器是信息定时器。
tmr=0时:不使用超时检测。
tmr=1时:使用超时线检测。
bk=0时:不使用中断检测。
bk=1时:使用中断检测。
其他和自由口通信有关的特殊字节见表8-5。
表8-5 其他和自由口通信有关的特殊字节
2.传送与接受指令
(1)传送指令
传送(XMT)指令在自由端口模式中使用,通过通信端口传送数据。传送(XMT)指令在STEP7-Micro/WIN编程软件中的样式,如图8-8所示。以字节为单位。
传送(XMT)指令用于激活发送数据缓冲区TBL中的数据,数据格式如下所示,数据缓冲区中的第一个数据是指定要发送的数据的总字节数,最大为255个,从第二个数据开始是依次要发送的数据,PORT指定用于发送的端口。
图8-8 XMT指令
TBL:数据缓冲区首地址,只指定要发送的数据字符数量。
PORT:通信端口号,0或1。
在发送缓冲区中的最后一个数据时产生中断事件。Port0口为中断事件9,Port1口为中断事件26。也可以通过监控SM4.5(Port0口)或SM4.6(Port1口)的状态来判断发送是否完成,为1即为发送完成。
传送数据缓冲区格式如下(n<=255):
例如,如图8-9所示,VB99=5,说明发送的数据长度为5B,则被发送的数据是VB100~VB104;PORT输入0,说明使用PLC端口0进行发送数据。
(2)接收指令
接收(RCV)指令开始或终止“接收信息”服务。必须指定一个开始条件和一个结束条件,“接收”方框才能操作。通过指定端口(PORT)接收的信息存储在数据缓冲区(TBL)中。数据缓冲区中的第一个条目指定接收的字节数目。
接收(RCV)指令在STEP7-Micro/WIN编程软件中的样式,如图8-10所示。以字节为单位。
图8-9 XMT指令说明
图8-10 RCV指令
接收指令RCV用于从指定的端口接收数据,并将接收到的数据存储于其参数TBL所指定的缓冲区内,缓冲区的第一个字节指示接收到的字节数量,第二个字节指示接收的起始字符,最后一个字节指示的是结束字符,起始字符和结束字符之间是接收到的数据,同发送缓冲区一样,接收缓冲区的最大数量也是255个字节。
TBL:数据缓冲区首地址,只指定要接收的数据字符数量。
PORT:通信端口号,0或1。
接收完成后,产生一个中断事件,Port0口为中断事件23,Port1口为中断事件24。也可以通过监控SMB86(Port0口)或SMB186(Port1口)的状态来判断发送是否完成,状态为非零即为发送完成。
接收数据缓冲区格式如下(n<=255):
例如,如图8-11所示,VB999=10,说明接收的数据长度为10B,则接收的数据是从VB1000至VB1009;PORT输入0,说明使用PLC端口0进行接收数据。
XMT和RCV指令与通信网络上通信对象的地址无关,只对本地PLC的通信端口操作。另外,由于自由口通信是半双工的,所以如果为了考虑节省内存,发送缓冲区与接收缓冲区可以相同。
图8-11 RCV指令说明
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。