S7-200PLC自由口通信:利用发送完中断接收数据

需积分: 48 50 下载量 111 浏览量 更新于2024-08-10 收藏 221KB PDF 举报
"这篇文档是关于西门子S7-200 PLC的自由口通信教程,特别是如何利用发送完中断启动接收数据的技巧。文中通过一个与智能电表通信的例子,详细阐述了自由口通信的初始化、声明中断、编写报文、发送报文以及中断处理的过程。" 在工业自动化领域,西门子S7-200系列PLC的自由口通信功能允许用户自定义通信协议,与各种不同设备进行数据交换。本文档详细介绍了这一过程,以1200bps波特率、偶校验、8位数据位的智能电表通信为例。 首先,自由口通信的初始化至关重要。这一步涉及配置PLC的通信参数,如波特率、校验方式等,这些参数通过MOVB指令写入SMB30寄存器。初始化子程序中,还需要声明发送和接收完成中断,分别对应中断号9(发送完)和23(接收完)。 接着,文章讨论了如何编写报文子程序。根据智能设备的报文格式,将命令和指令长度存储在特定的VB单元中,然后使用XMT指令发送报文。XMT指令需要两个参数:报文起始地址和通信口,且必须在上升沿触发,以避免错误。 重点在于利用发送完中断启动接收数据。当XMT指令执行完毕,会触发9号中断。此时,可以编写一个中断子程序来处理这个事件。在中断子程序中,使用RCV指令接收通信口返回的数据,并将其存储在预设的VB单元(如VB100)中。中断处理的正确设置是保证通信流程顺畅的关键。 自由口编程遵循一定的原则: 1. 使用SM0.1启动端口初始化,并连接发送完成和接收完成中断。 2. SM0.0用于触发RCV指令,准备接收数据。 3. XMT指令必须在上升沿触发,并确保通信口在发送前处于停止接收状态。 4. SMB87至SMB94寄存器根据预期的接收信息进行合理设置。 5. 确保满足发送结束条件(如发送字节数或结束字符)才能触发9号中断。 本文档提供了详细的步骤和注意事项,帮助用户理解和实践S7-200 PLC的自由口通信,特别是如何利用中断机制有效地进行数据的发送和接收,这对于实现PLC与各种设备间的高效通讯具有很高的参考价值。