枯木之春 S7-200PLC自制线通讯HMI


西门子S7-200系列PLC响当当的地位是所有工控人有目共睹的。虽然后来大家在小型设备上更倾向于使用好用的后辈S7-1200。但时至今日,S7-200仍活跃在全国各处大小设备的控制箱里。

最近遇到一台老旧设备的改造,要给老设备加块触摸屏方便操作。PLC用的是当年的流量明星CPU226CN,甲方表示它多年来运行流畅,没出过问题,所以这次升级保留PLC,加一块西门子精智TP900Comfort面板。手头没有这块屏幕,先拿他同系列的好兄弟TP700Comfort顶替一下。由于现场设备位置情况无法确定,购买西门子通讯电缆存在长度问题,到现场再购买影响工期,故而决定自己制作一根电缆并测试通讯效果。

通讯配置

精智系列面板除了有现在主流的PROFINET网络接口以外,还有一个9针SUB-D型串行接口。CPU226需要拓展才支持PN,机子本身配有两个串口,为成本计,打算就不加模块,直接用串口通讯了。

查阅手册得知TP700和CPU226都支持MPI协议,MPI运行在RS-485标准上,485在串口里只需要连接3和8两根针脚即可。所以自制电缆也就是一根485电缆。从某宝直接购入DB9免焊插头两个,掏出一盘电线开始动手。

在S7-200的手册中,关于通讯电缆,还提到了偏压电阻和终端电阻,看起来很复杂。咨询了单位的前辈之后得知,其实没有也可以,直接接两根线就通了,其实他们曾经按照手册的说明连接过,但总会出错,后来就不管了,通讯上就得。

西门子485接线并不需要像其他设备接口一样将收发两端反接,3接3,8接8即可。

MPI协议要求只允许有一个主站,而S7-200的编程线默认为主站,使用地址0,PLC程序下载口使用地址2。本次测试使用CPU226的port0连接编程线,port连接HMI,HMI使用PN连接电脑。

编程线地址为0,波特率19200,PLC的port0地址为2,波特率19200,port1地址为3,波特率187500,HMI的串口地址为4,波特率为187500。

HMI侧配置

博途新建一个项目,添加TP700触摸屏,在连接菜单按下图配置。

新建连接,名字用默认的Connection_1,通讯驱动程序选择SIMATIC S7-200,将触摸屏地址改为4,网络配置文件选择MPI,PLC地址选择3,其他默认即可。

建好连接后,在HMI新建变量时选择Connection_1,地址与PLC程序保持一致。做好画面后将程序下载到触摸屏。

PLC侧配置

S7-200连接编程线时要先把PLC的开关打到STOP挡,下载程序结束后才可以切换到TERM挡,用STEP7控制PLC运行状态以及监控。这一点比较烦人,每次下载搜索不到PLC才会想起这一点。

接下来在STEP7中设置PLC的网络。在左侧找到通信。

打开通讯端口,将port0和port1的参数按实际接线设置好。

端口0连接编程线,编程线的地址为0,PLC侧为2。端口1连接触摸屏,屏地址为4,PLC侧为3。波特率与电缆另一头的设备保持一致即可。MPI通讯地址不能重复,主站地址为0且只有一个。地址1尽量不用,很容易出错却又不知道为什么。

打开设置PG/PC接口,选择PC Adapter.MPI.1,点击Properties,勾选PG/PC是总线的唯一主站,波特率设为19.2kbps。如果通信超时,可以尝试PPI,波特率9600,或者其他组合。

设置完成后打开通信,远程地址为2,双击右侧刷新,即可搜索到PLC。如果没有搜到,可能是PLC不在STOP挡位,或者通信设置有错。

将程序下载至PLC后,打到TERM挡,将PLC切换至运行,通讯测试成功。