发送指令和接收指令的表达形式及操作数如表5-6所示。
表5-6 接收和发送指令表达形式及操作数
1.发送指令
应用发送指令(XMT)可以将发送数据缓冲区(TBL)中的数据通过指令指定的通信端口(PORT)发送出去,发送完成时将产生一个中断事件,数据缓冲区的第一个字节指明了要发送的字节数,第二个字节及之后的数据为需要发送的数据。操作数PORT指定传输使用的通信口(口0或口1)。XMT指令用于在自由口通信方式下通过通信口传输数据。
XMT指令可以方便地发送1∽255个字符,如果有中断程序连接到发送结束事件上,在缓冲区中的最后一个字符发送完成时,端口0会产生中断事件9,端口 1会产生中断事件26。可以监视发送完成状态位SM4.5和SM4.6的变化,而不是用中断进行发送。
2.发送编程步骤
(1)建立发送表(TBL)。
(2)发送初始化(SMB30/130)。
(3)编写发送指令(XMT)。
【例1】图5-1为一个用发送指令编程的例子。S7-200 PLC以自由口通信方式向个人计算机不断地发送与字符S7-200相对应的ASCII码。下面分析程序的功能。PLC首次运行时,SM0.1保持“ON”一个扫描周期。因此SM0.1=1这个条件可以作初始化用。该程序就是利用这一条件进行发送操作的初始化。
图5-1 发送指令的编程
Network1用于初始化通信口和形成发送表。将9传送到SMB30的作用是对通信口0进行初始化。设定为自由口方式,波特率为9600 b/s,数据格式为8位数据位,无须校验位。而十六进制数5337是字符“S7”的ASCII码,2D32是字符“-2”的ASCII码,3030是字符“00”的ASCII码。可以看出,VW100、VW102及VW104存放着字符S7-200的ASCII码。VB99表示要发送的字符数为6个,可见发送数据缓冲器TBL为VB99~VBl04。
Network2的功能是发送数据。可以看出,执行发送指令XMT的条件是SM0.5的上升沿。由于SM0.5是系统提供的秒时钟脉冲,故发送指令是每秒钟执行一次,即每秒钟发送一次与字符S7-200相对应的ASCII码。
3.接收指令(www.xing528.com)
接收指令RCV初始化或中止接收信息的服务。必须指定开始或终止条件,接收指令才能进行操作。通过指定的通信端口(PORT)接收信息,存储在数据缓冲区(TBL)中。数据缓冲器第一个字节的数据指定需要接收的字节数目,第二个字节及之后的字节为数据存储区。
RCV指令可以方便地接收一个或多个字符,最多可以接收255个字符。如果有中断程序连接到接收结束事件上,在缓冲区中的最后一个字符接收完成时,端口0产生中断事件23,端口1产生中断事件24。
可以监视SMB86或SMB1S6的变化,而不是用中断进行报文接收。SMB86或SMB186非零时,表明RCV指令未被激活或接收已经结束,而正在接收报文时SMB86或SMB186为0。
当超时或奇偶校验错误时,自动中止报文接收功能。必须为报文接收功能定义一个启动条件和一个结束条件。
也可以用字符中断而不是用接收指令来控制接收数据,每接收一个字符产生一个中断,在端口0或端口1接收一个字符时,分别产生中断事件8或中断事件25。
在执行连接到接收字符中断事件的中断程序之前,接收到的字符存储在自由端口模式的接收字符缓冲区SMB2中,奇偶状态(如果允许奇偶校验的话)存储在自由端口模式的奇偶校验错误标志位SM3.0。奇偶校验出错时应丢弃接收到的信息,或产生一个出错的返回信号。端口0和端口1共用SMB2和SMB3。
4.接收指令编程步骤
(1)设置接收初始化(SMB30/130)。
(2)设置接收控制字(SMB87/187)。
(3)设置最大字符数(SMB94/194)。
(4)设置起始符(SMB88/188)。
(5)设置结束符(SMB89/189)。
(6)设定空闲时间(SMW90/190)。
(7)建立中断连接。
(8)写接收指令(RCV)。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。