电工学习网

 找回密码
 立即注册
查看: 8855|回复: 0
打印 上一主题 下一主题

西门子PLC的发送指令和接收指令

[复制链接]
跳转到指定楼层
楼主
发表于 2018-6-12 20:28:52 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
     发送指令XMT(Transmit)启动自由端口模式下数据缓冲区(TBL)的数据发送。通过指定的通信端口(PORT),发送存储在数据缓冲区(TBL)中的信息。
    使ENO=0的错误条件:SM4.3(运行时间),0006(间接寻址),0009(在端口0同时执行XMT和RCV指令),000B(在端口1同时执行XMT和RCV指令)。
    XMT指令可以方便地发送1~255个字符,如果有中断程序连接到发送结束事件上,在发送完缓冲区中的最后一个字符时,端口0会产生中断事件9,端口1会产生中断事件26。可以监视发送完成状态位SM4.5和SM4.6的变化,而不是用中断进行发送,如向打印机发送信息。TBL指定的发送缓冲区的格式如图所示,起始字符和结束字符是可选项,第一个字节“字符数”是要发送的字节数,它本身并不发送出去。
西门子PLC的发送指令和接收指令
    图    缓冲区格式
    如果将字符数设置为0,然后执行XMT指令,以当前的波特率在线路上产生一个16位的break(间断)条件。发送break与发送任何其他信息一样,采用相同的处理方式。完成break发送时产生一个XMT中断,SM4.5或SM4.6反映XMT的当前状态。
     接收指令RCV(Receive)初始化或中止接收信息的服务。通过指定的通信端口(PORT),接收信息并存储在数据缓冲区(TBL)中。数据缓冲区(见图所示)中的第一个字节用来累计接收到的字节数,它本身不是接收到的,起始字符和结束字符是可选项。
    使ENO=0的错误条件:SM86.6和SM186.6(RCV参数错误),SM4.3(运行时间),0006(间接寻址),0009(在端口0同时执行XMT和RCV指令),000B(在端口1同时执行XMT和RCV指令),CPU不是在自由端口模式。
    RCV指令可以方便地接收一个或多个字符,最多可接收255个字符。如果有中断程序连接到接收结束事件上,则在接收完最后一个字符时,端口0将产生中断事件23,端口1将产生中断事件24。
    可以监视SMB86或SMB186的变化,而不是用中断进行报文接收。SMB86或SMB186为非零时,RCV指令未被激活或接收已经结束。正在接收报文时,它们为0。
    当超时或奇偶校验错误时,自动中止报文接收功能。必须为报文接收功能定义一个启动条件和一个结束条件。
    也可以用字符中断而不是用接收指令来控制接收数据,每接收一个字符产生一个中断,在端口0或端口1接收一个字符时,分别产生中断事件8或中断事件25。
    在执行连接到接收字符中断事件的中断程序之前,接收到的字符存储在自由端口模式的接收字符缓冲区SMB2中,奇偶状态(如果允许奇偶校验的话)存储在自由端口模式的奇偶校验错误标志位SM3.0中。奇偶校验出错时应丢弃接收到的信息,或产生一个出错的返回信号。端口0和端口1共用SMB2和SMB3。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

电工学习网 ( )

GMT+8, 2024-4-26 18:12

Powered by © 2011-2022 www.diangon.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

快速回复 返回顶部 返回列表