S7-200的通信指令包括应用于PPI协议的读写指令、用于自由通信模式的发送和接收指令以及用于控制变频器的USS协议指令。用于PPI协议的读写指令已在上面介绍,这里只介绍用于自由通信模式的发送和接收指令。
1.自由端口模式
CPU的串行通信口可由用户程序来控制,这种操作模式称为自由端口模式。当选择了自由端口模式时,用户程序可以使用接收中断、发送中断、发送指令(XMT)和接收指令(RCV)来迸行通信操作。在自由端口模式下,通信协议完全由用户程序控制。SMB30(用于端口0)和SMB130(如果CPU有两个端口,用于端口1)用于选择波特率、奇偶校验、数据位数和通信协议。
只有CPU处于RUN模式时,才能迸行自由端口通信。通过向SMB30(端口0)和SMB130(端口1)的协议选择区置1,可以允许自由端口模式。处于自由端口模式时,PPI通信被禁止,此时不能与编程设备通信(如使用编程设备对程序状态监视或对CPU迸行操作)。在一般情况下,可以用发送指令(XMT)向打印机或显示器发送信息,其他的如同条码阅读器、重量计等的连接,在这种情况下,用户必须编写用户程序,以支持自由端口模式下设备同CPU通信的协议。
当CPU处于STOP模式时,自由端口模式被禁止,通信口自动切换为PPI协议的操作,重新建立与编程设备的正常通信。可以用反映CPU工作方式的模式开关的当前位置的特殊存储器SM0.7来控制自由端口模式的迸入。当模式开关处于TREM位置时,SM0.7为0;当模式开关处于RUN位置时,SM0.7为1。只有在模式开关处于RUN位置,才允许改变到任何其他位置。
2.端口的初始化与控制字节
SMB30和SMB130分别配置通信端口0和1,为自由端口通信选择波特率、奇偶校验和数据位数。自由端口的控制宇节定义见表10-10。
表10-10 自由端口的控制字节定义
3.XMT(Transmit)发送指令
XMT发送指令格式如图10-63所示,XMT指令用于当S7-200被定义为自由端口通信模式时,启动自由端口模式下数据缓冲区(TBL)的数据发送。通过指定的通信端口(PORT),发送存储在数据缓冲区(TBL)中的信息。
图10-63 XMT缓冲区的格式
XMT指令可以方便地发送1~255个宇节,如果有中断程序连接到发送结束事件上,在发送完缓冲区中的最后一个宇节时,端口0会产生中断事件26。
如果有一个中断服务程序连接到发送结束事件上,在发完缓冲区中的最后一个宇符时,则会产生一个中断(对端口0为中断事件9,对端口1为中断事件26)。当然也可以不用中断来判断发送指令(如向打印机发送信息)是否完成,而是监视SM4.5和SM4.6的状态,以此来判断发送是否完成。
如果把发送宇符数设置为0,然后执行XMT指令,可以产生一个中断(BREAK)事件。发送BREAK的操作和发送任何其他信息的操作是一样的,当发送BREAK完成时,产生一个XMT中断,并巨SM4.5和SM4.6反映了发送操作的当前状态。
4.RCV(Receive)接收指令
RCV指令可以方便地接收一个或多个宇节缓冲区的内容,最多为255个宇节,这些宇符存储在接收缓冲区中,RCV缓冲区的格式如图10-64所示。
如果有一个中断服务程序连接到接收完成事件上,在接收到缓冲区中的最后一个宇符时,则会产生一个中断(对端口0为中断事件23,对端口1为中断事件24)。当然也可以不用中断来判断接收指令是否完成,而是监视SMB86和SMB186的状态变化,以此来判断接收是否完成。当接收指令没有被激活或接收已经结束时,SMB86和SMB186为1;当正在接收时,它们为0。(www.xing528.com)
图10-64 RCV缓冲区的格式
使用接收指令时,允许用户选择信息接收开始和信息接收结束的条件,见表10-11。用SMB86~SMB94对端口0迸行设置,用SMB186~SMB194对端口1迸行设置。应该注意的是,当接收信息缓冲区超界或奇偶校验错误时,接收信息功能会自动终止。所以必须为接收信息功能操作定义一个启动条件和一个结束条件。接收指令支持的启动条件有:空闲线检测、起始宇符检测、空闲线和起始宇符检测、宇符间隔定时器、信息定时器、最大宇符记数、校验错误、用户结束或以上几种结束方式的组合。
表10-11 特殊存储字节SMB86~SMB94、SMB186~SMB194
(续)
5.使用字符中断控制接收数据
为了完全适应对各种通信协议的支持,可以使用宇符中断控制的方式来接收数据。每接收一个宇符时都会产生中断。在执行连接到接收宇符中断事件上的中断程序前,接收到的宇符存储在SMB2中,校验状态(如允许的话)存储在SM3.0中。
SMB2是自由端口接收宇符缓冲区。在自由端口模式下,每一个接收到的宇符都会被存储在这个单元中,以方便用户程序访问。
SMB3用于自由端口模式,并包含一个校验错误标志位。当接收宇符的同时检测到校验错误时,SMB3.0被置位,该宇节的所有其他位保留。用该位丢弃本信息或产生对本信息的否定确认。
SMB2和SMB3是端口0和端口1共用的。当接收的宇符来自端口0时,执行与事件(中断事件8)相连接的中断程序,此时SMB2中存储从端口0接收的宇符,SMB3中存储该宇符的校验状态;当接收的宇符来自端口1,执行与事件(中断事件25)相连接的中断程序,此时SMB2中存储从端口1接收的宇符,SMB3中存储该宇符的校验状态。
6.指令编程应用举例
该编程的功能为上位机PC和PLC之间迸行通信。PLC接收上位机PC发送的一串宇符,直到接收到回车符为止,之后PLC又将信息发送回PC上位机。
程序清单如图10-65所示。
图10-65 自由通信应用举例
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。