PC与PLC的串口通信及编程实现.pdf
《PC与PLC的串口通信及编程实现.pdf》由会员分享,可在线阅读,更多相关《PC与PLC的串口通信及编程实现.pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第 3 期 PC 与 PLC 的串口通信及编程实现 35 PC 与 PLC 的串口通信及编程实现 黄植功 (广西师范大学物理与电子工程学院,广西 桂林 541004)摘 要:在自由口模式下,通信协议由用户自己的梯形图程序控制。用户可以使用梯形图程序调用各种子程序,来进行接收中断、发送中断、发送指令(XMT)、接收指令(RCV)等通信控制操作。研究了在自由端口模式下PC与S7-200型PLC之间的通信,并采用Visual Basic编程来实现上位机与下位机之间的通信。关键词:Visual Basic;自由端口模式;PLC通信;串口通信 中图分类号:TP312 文献标识码:A 文章编号:10037
2、551(2007)03003504 1 引言 由于具有编程方法简单易学、功能强、性能价格比高、可靠性高、抗干扰能力强、体积小、能耗低、硬件配套齐全、设计调试安装维护方便等突出优点,可编程逻辑控制器(PLC)已经广泛地应用在发达国家所有的工业部门,主要应用在数字逻辑控制、运动控制、闭环过程控制、数据处理和联网通信等方面。在联网通信方面,PLC 与其他智能控制设备一起,可以组成“集中管理、分散控制”的分布式控制系统。在这种工业控制系统中,为了避免通信各方争用通信线路,PC 与 PLC 之间的通信一般采用主从方式,通常采用计算机(PC)作为上位机负责完成数据分析、处理和存储、设备状态显示和打印输出等
3、功能以实现对分布在工业现场的被控制系统进行集中的实时监测与控制;PLC 作为下位机使用,承担执行上位机的输出指令、现场数据采集和设备运转状态识别等任务。本文研究了在自由端口模式下 PC 与 S7-200 型 PLC 之间的通信,并采用 Visual Basic 编程来实现上位机与下位机之间的通信。2 PLC 与 PC 的电缆连接和电缆的切换时间 S7-200 的通信接口为 RS-485,PC 可以采用 RS-232 通信接口,RS-232/PPI 多主站电缆可以连接 PC 与 S7-200型 PLC,实现 S7-200 CPU 与 PC 的通信。由于使用 RS-232/PPI 电缆,因此在 S
4、7-200 CPU 的用户程序中应考虑电缆的切换时间,切换时间因波特率的不同而不同,例如,如果采用 9600bit/s 的波特率,则电缆的切换时间为 2ms,电缆上 DIP 开关设置为 010,如果采用 19200bit/s 的波特率,则电缆的切换时间为 1ms。S7-200 CPU接收到 RS-232 设备的请求报文后,到它发送响应报文的延迟时间必须大于电缆的切换时间。在程序中,可以用中断实现切换延时。同理,如果 S7-200 CPU 发送请求报文,在接收到 RS-232 设备的响应报文后,S7-200 CPU下一次发出报文的延时时间也必须大于电缆的切换时间。在中断程序中,必须考虑电缆的切换
5、时间,例如当采用 19200bit/s 的波特率时,通过定时 5ms 来提供 PPI 电缆接收/发送模式的切换时间,用 MOVB 5,SMB34 来实现定时 5ms。3 通信数据单元的结构 *收稿日期:20070704 第28卷 第3期 广西物理 GUANAGXI WULI Vol.28 No.3 2007 36在自由口模式下,通信协议是由用户自己定义的,由梯形图程序控制。PC 与 PLC 通信的基本单元为“帧”。PC 通过串口将指令数据帧发送到 PLC 的 PORT0(或 PORT1)口,PLC 通过 RCV 指令或字符中断来控制接收指令数据帧,然后对指令数据帧进行译码,译码后调用相应的读/
6、写子程序实现指令要求的相关操作,比如启动或停止等,并返回指令执行的状态信息。需要指定 PLC 的接收缓冲区、译码区、发送缓冲区和用于存放 BCC 码等的缓冲区。当 PC 发指令时,指令数据写入指定的目标寄存器。当 PLC 返回信息时,可以从数据区读取事先写入的数据。此外我们必须规定数据帧的结构,包括 PC 的指令格式和 PLC 的反馈信息格式,PC 与 PLC 在发送和接收数据时应采用相同的数据帧格式。例如,PC 的指令格式为:起始字符+指令类型(读/写)+目标 PLC 站地址+目标寄存器地址+读/写字节数 M+要写入的数据+BCC 校验码+结束字符,每个部分的字节长度是固定。起始字符标志着指
7、令的开始,用 ASCII 码小写字符表示,结束字符标志着指令的结束,用 ASCII 码大写字符表示,比如分别用j和J,各占 1 个字节;指令类型分写操作和读操作 2 种,分别向 PLC 写入和读出数据;在 PLC 内部可以用 4 个字节来表示一个寄存器的地址,由于采用 ASCII 码表示,所以需要 8 个字节;读/写字节数 M,对于读操作,一般是读回从目标寄存器开始的连续的固定字节数(比如 8 个)的数据,对于写操作,需要由 PC 指定,但不超过事先指定的最大字节数;要写入的数据区必须填满,但只有前 M 个字节的数据会被写入目标寄存器;BCC 校验码用于判断传输的正确性,BCC 校验码的方法就
8、是将要传送的字符串(从指令类型到要写入的数据的最后)的 ASCII 码以字节为单位作异或和,并将此异或和作为指令的一部分传送出去。PLC 的反馈信息格式为:起始字符+状态信息+数据区+BCC 校验码+结束字符,其中状态信息为指令执行的状态信息,用来说明读/写是否正确、BCC 码错误、指令格式错误。通信数据帧中,一般要使用 ASCII 码。如果直接采用数据原来的格式传输,就可能与指令中的控制字发生混淆。对于本例,结束字符为J,ASCII 码为 4AH,如果传输的十进制数据为 74,表示为十六进制也是 4AH,PLC 会因为接收到了数据中的 4AH 而停止接收,这样 PLC 接收到的指令将是一个不
9、完整的非法指令,很可能造成 PLC 的误动作。为了避免这种情况的发生,我们可以对要传输的每个字节的数据进行 ASCII 编码,得到 2 个字节的 ASCII编码。例如:对数据 4AH 进行 ASCII 编码,得到 2 个字节:34H 和 41H。因为要传输的数据为实际的十进制数,在 PC 中表示为十六进制,任意的 1 个字节可以用 09,AF 中的 2 个表示,余下的字符作为控制字符使用,控制字符直接用 ASCII 码表示,而组成数据的 09,AF 用 ASCII 码表示,这样就可以避免上述情况的发生。4 PLC 程序及其执行过程 在自由端口模式下,通信协议完全可以由用户程序控制。只有当 CP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PC PLC 串口 通信 编程 实现
限制150内