单片机与西门子 PLC S7-200 的串行通信及应用
1 引言
PLC 因为稳定可靠、结构紧凑、简单易学、功能强大和使用方便已经成为应用面
最广、最广泛的通用工业控制装置,成为现代工业自动化控制的主要支柱之一
[1]。而单片机因为成本低廉,使用灵活,功能多样,在自动化领域应用及其广
泛,往往在一个控制系统中可能会出现单片机和 PLC 共存的情况,如果使二者互
相联系,互相通信,具有非常重要的现实意义。
2 硬件以及通讯原理分析
西门子 S7-200 系列 PLC 拥有 RS-485 串行口,所以要使 MCS51 单片机与 S7-PLC
进行通讯,可以采用几种通讯方式。其中之一就是可以通过 MCS-51 的串行口与
MAX485 芯片相接,然后与 S7-200 PLC 的 RS-485 口进行通讯,其硬件连接如图 1
所示。
S7-200 PLC 是串行通讯方式最为丰富的小型 PLC,支持多种通信协议,如点对点
接口协议(PPI 协议)、多点接口协议(MPI 协议)和 PROFIBUS 协议以及自由通
信协议等。其中自由通信协议又叫用户定义协议,利用自由端口模式,可以实现
用户定义的通信协议,连接多种智能设备,使用起来非常方便,在第三方工程接
入中取得了巨大的成功。
在自由端口模式下,PLC 的串行通信接口由用户来控制,通过梯形图程序以及和
单片机的汇编语言进行配合,来使用完成中断、字符接收中断、发送完成中断等,
通信协议由用户完全控制。这时单片机处于主机状态,由单片机主动发送握手信
号,PLC 接到信号后被动反馈信息即可。
图 1 MCS-51 单片机与 S7-200 的硬件接线图
3 通信系统设计
3.1 通信协议设计
定义根据经验和有关参考资料,定义协议结构和参数。
(1)通信波特率为 9.6kbps,无校验,8 个数据位,1 个可编程位,1 位起始位,
1 位停止位。
(2)定义通信协议的数据流结构的格式为起始码、命令码、元件首址、字节数、
数据块、BCC 校验码和结束码。
● 起始码:表示单片机与 PLC 开始发送数据,是数据流第一个字符,告诉 PLC
开始进行通信了,可以用 00H 表示
● 命令码:表示单片机对 PLC 的各种操作: