|
串口通信编程 发送指令及发送完成位: 图1. 发送完成位 接收指令及接收完成位: 图2.接收完成位 字符串转换S7-1200字符串结构: 最大字符数 | 实际字符数 | 字符1 | 字符2 | ...... | 字符254 |
如上面S7-1200字符串结构,第一个字节是总字符数,第二个字节是当前字符数,所以发送和接收真正的字符内容都应该从字符串的第三个字节开始,因此发送和接收字符串都要进行相应的转换。 发送字符串转换: 要将 DB3.DBB20 中的字符串发送出去,需要经过下列转换: 图3. 发送字符串转换 接收字符串转换: 要将收到的字符串送入 DB3.DBB30 中需要进行以下转换: 图4. 接收字符串转换 轮询编程通信任务: 主站将 P#DB3.DBX20.0 中的字符串“西门子”(注意发送缓冲区由 P#DB3.DBX22.0 开始,因为字符串前两个字节分别是总字符数和当前字符数)发送给从站的接收缓冲区P#DB3.DBX32.0;从站 P#DB3.DBX22.0 返回“博大精深”给主站 P#DB3.DBX32.0。 主站轮询: 图5. 主站轮询 从站轮询: 图6. 从站轮询 通信结果: 图7.通信结果
|