首页 理论教育 S7-200PLC自由口通信口特殊字节与指令详解

S7-200PLC自由口通信口特殊字节与指令详解

时间:2023-06-27 理论教育 版权反馈
【摘要】:2)通信速率由控制字的“bbb”来控制。其他和自由口通信有关的特殊字节见表8-5。数据缓冲区中的第一个条目指定接收的字节数目。接收完成后,产生一个中断事件,Port0口为中断事件23,Port1口为中断事件24。另外,由于自由口通信是半双工的,所以如果为了考虑节省内存,发送缓冲区与接收缓冲区可以相同。

S7-200PLC自由口通信口特殊字节与指令详解

1.特殊字节

(1)特殊标志字节

S7-200 CPU使用SMB30与SMB130来分别定义通信口Port0、Port1的工作模式,其控制字节的定义如图8-5所示。可以从SMB30和SMB130读取或向SMB30和SMB130写入。这些字节配置各自的通信端口,进行自由口操作,并提供自由口或系统协议支持选择。

1)通信口的工作模式由控制字最低的两位“mm”来决定。

①mm=00:点对点接口模式(即PPI/从属模式),默认为00。

978-7-111-49003-6-Chapter08-9.jpg

图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时:禁止接收信息。

978-7-111-49003-6-Chapter08-10.jpg

图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)

978-7-111-49003-6-Chapter08-11.jpg

图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 其他和自由口通信有关的特殊字节

978-7-111-49003-6-Chapter08-12.jpg

2.传送与接受指令

(1)传送指令

传送(XMT)指令在自由端口模式中使用,通过通信端口传送数据。传送(XMT)指令在STEP7-Micro/WIN编程软件中的样式,如图8-8所示。以字节为单位。

传送(XMT)指令用于激活发送数据缓冲区TBL中的数据,数据格式如下所示,数据缓冲区中的第一个数据是指定要发送的数据的总字节数,最大为255个,从第二个数据开始是依次要发送的数据,PORT指定用于发送的端口。

978-7-111-49003-6-Chapter08-13.jpg

图8-8 XMT指令

TBL:数据缓冲区首地址,只指定要发送的数据字符数量。

PORT:通信端口号,0或1。

在发送缓冲区中的最后一个数据时产生中断事件。Port0口为中断事件9,Port1口为中断事件26。也可以通过监控SM4.5(Port0口)或SM4.6(Port1口)的状态来判断发送是否完成,为1即为发送完成。

传送数据缓冲区格式如下(n<=255):

978-7-111-49003-6-Chapter08-14.jpg

例如,如图8-9所示,VB99=5,说明发送的数据长度为5B,则被发送的数据是VB100~VB104;PORT输入0,说明使用PLC端口0进行发送数据。

(2)接收指令

接收(RCV)指令开始或终止“接收信息”服务。必须指定一个开始条件和一个结束条件,“接收”方框才能操作。通过指定端口(PORT)接收的信息存储在数据缓冲区(TBL)中。数据缓冲区中的第一个条目指定接收的字节数目。

接收(RCV)指令在STEP7-Micro/WIN编程软件中的样式,如图8-10所示。以字节为单位。

978-7-111-49003-6-Chapter08-15.jpg

图8-9 XMT指令说明

978-7-111-49003-6-Chapter08-16.jpg

图8-10 RCV指令

接收指令RCV用于从指定的端口接收数据,并将接收到的数据存储于其参数TBL所指定的缓冲区内,缓冲区的第一个字节指示接收到的字节数量,第二个字节指示接收的起始字符,最后一个字节指示的是结束字符,起始字符和结束字符之间是接收到的数据,同发送缓冲区一样,接收缓冲区的最大数量也是255个字节。

TBL:数据缓冲区首地址,只指定要接收的数据字符数量。

PORT:通信端口号,0或1。

接收完成后,产生一个中断事件,Port0口为中断事件23,Port1口为中断事件24。也可以通过监控SMB86(Port0口)或SMB186(Port1口)的状态来判断发送是否完成,状态为非零即为发送完成。

接收数据缓冲区格式如下(n<=255):

978-7-111-49003-6-Chapter08-17.jpg

例如,如图8-11所示,VB999=10,说明接收的数据长度为10B,则接收的数据是从VB1000至VB1009;PORT输入0,说明使用PLC端口0进行接收数据。

XMT和RCV指令与通信网络上通信对象的地址无关,只对本地PLC的通信端口操作。另外,由于自由口通信是半双工的,所以如果为了考虑节省内存,发送缓冲区与接收缓冲区可以相同。

978-7-111-49003-6-Chapter08-18.jpg

图8-11 RCV指令说明

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈