理论教育 S7-200 PLC发送和接收指令详解

S7-200 PLC发送和接收指令详解

时间:2023-07-02 理论教育 版权反馈
【摘要】:表8-8 发送和接收指令格式及功能3.指令说明1)TBL是指定发送/接收数据缓冲区的首地址。③S7-200 PLC在接收信息字符时要用到一些特殊存储器。图8-18 发送数据的梯形图程序用两台S7-200系列PLC进行单向主/从式自由口通信。控制要求:两台S7-200,处理器为CPU 226的PLC主机P1和从机P2,要求主机P1和从机P2采用可编程通信模式进行数据传递。

S7-200 PLC发送和接收指令详解

1.S7-200系列PLC的自由端口通信模式

CPU串行通信口可由用户程序控制,这种操作方式叫自由端口模式。当选择自由端口模式时,用户程序即通过发送和接收中断、发送和接收指令来控制串行通信口的动作。在自由端口模式下,通信协议完全由用户程序控制。通信所使用的波特率、校验方式及字符的有效数据位等由特殊存储器位SMB30和SMB130来设定。存储器位SMB30和SMB130的具体内容如表8-7所示。

需要注意的是:只有PLC处于RUN模式时,才能进行自由端口通信。PLC处于自由端口模式时,不能与编程器、计算机等通信,而PLC在STOP模式下CPU的自由端口模式会被禁止,通信协议自动切换到PPI模式,普通的通信(如与编程器的通信)得以重新建立。

表8-7 特殊存储器位SMB30和SMB130

978-7-111-47551-4-Chapter08-26.jpg

可以用反映CPU工作方式的开关当前位置的特殊存储器SM0.7来控制自由端口模式的开启。当模式开关处于TERM位置时,SM0.7=0;当模式开关处于RUN位置时,SM0.7=1。

2.指令格式及功能

发送和接收指令格式及功能如表8-8所示。

表8-8 发送和接收指令格式及功能

978-7-111-47551-4-Chapter08-27.jpg

3.指令说明

1)TBL是指定发送/接收数据缓冲区的首地址。可寻址的寄存器地址为VB、IB、QB、MB、SMB、SB、∗VD和∗AC。

2)PORT为常数,指定通信端口0或1。

3)TBL数据缓冲区中的第一个字节用于设定应发送/应接收的字节数,缓冲区的大小在255个字节以内。

4)用XMT指令发送数据。

用XMT指令可以方便地发送一个或多个字节缓冲区的内容(最多为255B)。XMT字节缓冲区的数据格式如表8-8所示。使用XMT指令发送数据应注意以下几点:

①在缓冲区内的最后一个字符发送完成后,会产生中断事件9(通信端口0)或中断事件26(通信端口1),如果将一个中断服务程序与发送完成中断事件连接,则可实现相应的操作。

②利用特殊存储器位SM4.5(对应通信端口0)和SM4.6(对应通信端口1),可监视通信端口的发送空闲状态。当通信端口0发送空闲时,SM4.5置1;当通信端口1发送空闲时,SM4.6置1。

5)用RCV指令接收数据。

用RCV指令可以方便地接收一个或多个字节缓冲区的内容(最多为255B)。这些字符存储在接收缓冲区中,接收缓冲区的数据格式如表8-8所示。使用RCV指令接收数据应注意以下几点:

①可利用字符中断控制接收数据。

每接收完成一个字符,就会产生一个中断事件8(通信端口0)或者中断事件25(通信端口1)。接收到的字符会自动存放在特殊存储器SMB2中,以便中断服务程序访问。奇偶校验状态存放在特殊存储器SMB3中,如果接收到的字符奇偶校验出现错误,则SMB3.0被置1。需注意,端口0和端口1共用SMB2和SMB3。

②可利用接收结束中断控制接收数据。

当指定的多个字符接收完成时,产生中断事件23(通信端口0)和中断事件24(通信端口1)。如果有一个中断服务程序连接到中断事件上,则可实现相应的操作,如通过中断服务程序处理接收到缓冲区的字符。

③S7-200 PLC在接收信息字符时要用到一些特殊存储器。例如,通过SMB87(或SMB187)来控制接收信息;通过SMB86(或SMB186)来监控接收信息等。

4.编程步骤

(1)利用SM0.1初始化通信参数

1)使用SMB30(端口0)或SMB130(端口1)选择自由端口通信模式,并选定自由端口通信的波特率、数据位数和校验方式。(www.daowen.com)

2)设定起始位(SMB88或SMB188)或结束位(SMB89或SMB189),空闲时间信息(SMB90或SMB190)及接收的最大字符数(SMB94或SMB194)。

3)如果利用中断,则将中断事件与相应的中断服务程序连接,并且全局开中断(ENI)。

4)通常可利用SMB34定时中断,定时发送数据(一般为定时周期为50ms,即间隔发送数据的时间为50ms)。

(2)编写主程序

自由端口通信主程序的任务是把要发送的数据放到发送数据缓冲区,并接收数据到接收数据缓冲区(当然此任务也可以用一个子程序来完成)。

(3)编写SMB34的定时中断服务程序

把要发送的数据传送到发送数据缓冲区,一般包括发送的字节数、发送的数据及结束字符,最后再利用XMT指令发送数据。

(4)编写发送完成中断服务程序和接收完成中断服务程序

1)发送完成中断服务程序的主要任务是发送完成后断开SMB34定时中断,并利用RCV指令准备接收数据。

2)接收完成中断服务程序的任务是接收数据完成后重新连接SMB34的定时中断,准备发送数据。

程序设计者可根据具体的控制要求,选择使用上述步骤。

5.发送与接收指令应用举例

【例11-2】在输入信号I0.0的上升沿时刻,将数据缓冲区VB100中的数据信息发送到打印机或显示器

分析:利用SM0.1(初始化扫描脉冲),对自由端口协议进行设置(即初始化自由端口),将要发送的数据地址送入VD200,建立地址指针,然后在发送空闲时,用I0.0的上升沿信号触发XMT指令,完成由地址指针指定的数据缓冲区数据的发送。参考程序如图8-18所示。

978-7-111-47551-4-Chapter08-28.jpg

图8-18 发送数据的梯形图程序

【例11-3】用两台S7-200系列PLC进行单向主/从式自由口通信。

控制要求:两台S7-200,处理器为CPU 226的PLC主机P1和从机P2,要求主机P1和从机P2采用可编程通信模式进行数据传递。即:主机P1具有发送功能,从机P2只有接收功能。要求用主机P1的输入端IB0的值控制从机P2的输出端QB0的状态。

分析:在CPU工作方式开关由RUN转换到TERM位置时,建立自由端口通信协议,可先将P1主机的IB0值送到由&VB100指定的发送数据缓冲区,执行XMT指令发送数据;从机P2则通过SMB2接收主机送过来的数据,在方式开关由RUN转换到TERM位置时,建立自由端口通信协议,将接收字符中断事件8连接到中断服务程序INT-0,通过执行中断服务程序从SMB2读取主机IB0的值,然后再送至从机的QB0,使从机的QB0随主机的IB0同步变化。主机P1发送数据的程序如图8-19所示,从机P2接收数据的程序如图8-20所示。

注意:此程序是在PLC的CPU工作方式开关在TERM位置,且CPU工作于RUN模式时,实现从机的QB0随主机的IB0同步变化。如果将PLC的CPU工作方式开关推到RUN位置,则需调整程序,以实现从机的QB0随主机的IB0同步变化。

硬件条件应具备,两台S7-200系列PLC与装有编程软件的计算机通过RS-485通信接口和网络连接器组成一个使用PPI协议的单主站通信网络。所使用的S7-200 PLC应有两个通信端口,用PC/PPI电缆将两台PLC的通信端口0连接在一起,取P1机作为主站,P2机作为从站,再将主站和从站的通信端口1分别与各自的计算机通信口相连接。

978-7-111-47551-4-Chapter08-29.jpg

图8-19 主机P1发送数据的程序

978-7-111-47551-4-Chapter08-30.jpg

图8-20 从机P2接收数据的程序

a)从机接收数据主程序 b)从机接收数据中断程序

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

我要反馈