西门子S7-200PLC自由口通信初始化及中断编程

需积分: 48 50 下载量 5 浏览量 更新于2024-08-10 收藏 221KB PDF 举报
"这篇文档详细介绍了如何使用西门子S7-200PLC进行自由口通信,特别是在与智能电表通信时的初始化过程、声明中断、编写报文子程序、发送报文以及利用中断启动接收数据的步骤。" 在PLC自由口通信中,S7-200系列的西门子PLC允许用户自定义通信协议,以适应不同智能设备的需求。在初始化阶段,首先需要根据设备的通信参数,如波特率(本例为1200bps)、校验方式(偶校验)、数据位数(8位)等,配置PLC的自由口。这通常通过MOVB指令将这些参数写入特殊存储区SMB30。SMB30是一个存储通信参数的寄存器,其格式包含波特率、校验方式等信息。 接着,需要声明中断程序。在S7-200PLC中,发送数据完成中断(中断号9)和接收数据完成中断(中断号23)是自由口通信的重要组成部分。通过声明中断,可以在数据发送或接收完成后执行特定操作。 在编写自由口要发送的报文子程序时,要确保遵循智能设备的报文格式,将指令和指令长度分别存储在指定的字节单元中,如VB10和VB11开始的连续字节。然后,使用XMT指令发送报文,指定报文的起始地址和通信口(例如,VB10和0口)。XMT指令必须由上升沿触发,以避免错误。 发送完报文后,会触发9号中断。这时,可以通过中断子程序捕获该中断,启动接收数据的过程。在中断子程序中使用RCV指令接收从通信口返回的数据,并将其存储在指定的内存位置(如VB100)。 自由口编程的基本原则包括: 1. 使用SM0.1启动端口初始化,同时连接发送完成和接收完成中断。 2. 利用SM0.0启动RCV指令,准备接收数据。 3. 确保XMT指令由上升沿触发,并在发送前停止接收,以避免冲突。 4. 根据接收信息的特性,适当地设置SMB87到SMB94,这些寄存器可能用于存放接收缓冲区的设置。 5. 等待发送结束条件满足,如指定字节数发送完成,才会产生9号中断。 这些步骤和原则构成了S7-200PLC自由口通信的基础,对于与各种智能设备的通信具有广泛的应用价值。通过熟练掌握这些知识,能够实现PLC与外部设备间的高效、准确通信。