课程咨询
工作时间: 9:00-18:00
QQ
QQ
0755-28917957
拨打咨询电话:0755-28917957
电话
电话
微信
微信
回顶
深入浅出西门子PLC连载四:S7-200系列PLC自由口通信程序设计(2)
荣久学院 ● 2018-12-18 17:56:00


    前两天我们简单地介绍了
S7-200系列PLC中的自由口通信,同时也给大家介绍了发送和接收的程序,那么今天我们继续学习关于S7-200系列PLC中的自由口通信方式。


 

    通过编程可以选择自由端口模式来控制S7-200的串行通信口。当选择了自由端口模式,用户程序通过使用接收中断、发送中断、发送指令和接收指令来控制通信口的操作。当处于自由端口模式时,通信协议完全由梯形图程序控制。

 

    SMB30(对于端口0)和SMB130(对于端口1,如果使用的S7-200有两个端口的话)被用于选择波特率和校验类型。当S7-200处于STOP模式时,自由端口模式被禁止,重新建立正常的通信(例如:编程设备的访问)。

 

    在最简单的情况下,可以只用发送指令(XMT)向打印机或者显示器发送消息。其他例子包括与条码阅读器、称重计和焊机的连接在每种情况下,都必须编写程序,来支持在自由端口模式下与S7-200通信设备所使用的协议。

 

    只有当S7-200处于RUN模式时,才能进行自由端口通信。要使能自由端口模式,应该在SMB30(端口0)或者SMB130(端口1)的协议选择区中设置相应数字。处于自由端口通信模式时,不能与编程设备通信。

 

    可以使用特殊寄存器位SM0.7来控制自由端口模式。SM0.7反映的是操作模式开关的当前位置。当SM0.7等于0,开关处于TERM位置;当SM0.7=1时,操作模式开关位于RUN位置。如果只有模式开关处于RUN位置时,才允许自由端口模式,可以将开关改变到其他位置上,使用编程设备监控S7-200的运行。

 

    SMB30SMB130分别配置通信口0和通信口1,并且为自由端口操作提供波特率、校验和数据位数的选择。



 

    发送指令能够发送一个或多个字节的缓冲区,最多为255个。如果有一个中断程序连接到发送结束事件上,在发送完缓冲区中的最后一个字符时,则会产生一个中断(对端口0为中断事件9,对端口1为中断事件26)。



 

    用户可以不使用中断来执行发送指令(例如:向打印机发送消息)。通过监视SM4.5或者SM4.6信号,判断发送是否完成。

 

    把字符数设置为0并执行XMT指令,可以产生一个 BREAK状态。这样产生的 BREAK状态,在线上会持续以当前波特率传输16位数据所需要的时间。发送 BREAK的操作和发送其他任何消息的操作是一样的。当 BREAK完成时,产生一个发送中断并且SM4.5或者SM4.6反应发送操作的当前状态。

 

    接收指令能够接收一个或多个字节的缓冲区,最多为255个。如果有一个中断程序连接到接收消息完成事件上,在接收完缓冲区中的最后一个字符时,S7-200会产生一个中断(对端口0为中断事件23,对端口1为中断事件24)。



 

    用户可以不使用中断,通过监视SMB86(端口0)或者SMB186(端口1)来接收消息。当接收指令未被激活或者已经被中止上时,这一字节不为0;当接收正在进行时,这一字节为0



 

    接收指令可以通过SMB87(端口0)或者SMB187(端口1)来选择消息的起始和结束条件。



 

    接收指令使用接收消息控制字节(SMB87SMB187)中的位来定义消息起始和结束条件。当接收指令执行时,在接收口上有来自其他器件的信号,接收消息功能有可能从一个字符的中间开始接收字符,从而导致校验错误和接收消息功能的中止。

 

    如果校验没有被使能,接收到的消息有可能包含错误字符。当起始条件被指定为一个特定的起始字符或任意字符时,这种情况有可能发生。接收指令支持几种消息起始条件。指定包含一个停顿或者一个空闲线检测的起始条件,通过在将字符放到消息缓冲区之前,用一个字符的起始来强制接收消息功能和消息的起始相同步,来避免以上问题。



 

    S7-200系列PLC中的自由口通信方式我们今天先学习到这里,感兴趣的朋友可以继续关注我们,关于自由口通信方式还有一部分内容,我们下期继续。

    以上,欢迎动动手分享及收藏!转载请注明来源


相关文章:

S7-300 PLC基础知识:讲解S7-300 PLC程序结构、编程与调试
技术共享