文章目录[隐藏]
XMT 发送指令
发送指令(XMT 指令)用于在自由口通信模式下将发送缓冲区(TBL)的数据通过指定的通信端口(PORT)发送出去。
XMT 指令一次最多可以发送 255个字符。XMT 指令发送缓冲区格式如表1.所示。
字节偏移量 | 描述 |
---|---|
0 | 发送字符的个数(N) |
1 | 发送的第1个字符 |
2 | 发送的第2个字符 |
┇ | ┇ |
N | 发送的第N个字符 |
表1. XMT 指令发送缓存区格式
XMT 发送指令示例
S7-200 SMART CPU每秒钟读取一次CPU实时时钟,并将年月日时分秒数据转换成 ASCII 字符,从 CPU 集成RS485 通信端口 0 发送出去。例子如图1. 所示。
图1. XMT 指令使用例程
上图程序解释如下:
1.设置S7-200 SMART CPU 端口 0 为自由口通信模式,波特率为9600 bps,8位数据位,偶校验。
2.读取CPU系统时钟,存储到VB100~VB107。
3.调用 HTA 指令,将BCD码存储格式的CPU系统时钟转化成ASCII码格式,存储到VB201~VB212。
4.将“回车”字符添加到VB213~VB214。
5.定义发送缓冲区长度为 14 个字符。
6.将发送缓冲区数据发送出去。
以上描述步骤参考下面的通信例程,例程中的 CPU 类型可能与用户实际使用的类型不同,用户可能需要先对例子程序做修改和调整,才能将其用于测试。
注意: 此指令库/程序的作者和拥有者对于该软件的功能性和兼容性不负任何责任。使用该软件的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。
发送完成判断
如果将中断子程序连接到发送完成事件,CPU 将在发送完缓冲区的最后一个字符后产生一个中断事件(对于端口 0 为中断事件 9,对于端口 1 为中断事件 26)。
如果不使用中断,也可以通过监视 SM4.5(端口 0 )或 SM4.6(端口 1 )的上升沿信号来判断发送是否完成。
注意:
使用 S7-200 SMART CPU 通信端口1(SB CM01)时,必须在系统块中组态后,方可使用。