众所周知S7200的串行口,可以通过SMB30(SMB130)来设置自由口通信模式,现在我用PORT0口来与LG IG5系列变频器进行通信,来控制IG5变频器的起动和停止。 硬件:一台S7200 的PLC ,一台IG5变频器,一个DB9针连接器,RV导线若干 S7200的串口3脚接IG5的+S端子 S7200的串口8脚接IG5的S端子 PLC 程式如下:
Network 1 // 将端口0设置为 9600,8,N,1 自由口方式 // LD SM0.1 MOVB 16#09, SMB30 MOVB 16#B0, SMB87 MOVB 16#04, SMB89 MOVW +5, SMW92 MOVB 16, SMB94 Network 2 LD SM0.1 RCV VB100, 0 Network 3 // SM87.7置0,禁止在端口0接收信息 // 执行RCV指令,停止端口0的接收。 // 发送运行指令到LG IG5变频器 // LD I0.0 EU R SM87.7, 1 RCV VB100, 0 XMT VB0, 0 Network 4 // SM87.7置0,禁止在端口0接收信息 // 执行RCV指令,停止端口0的接收。 // 发送停止指令到LG IG5变频器 // LD I0.1 EU R SM87.7, 1 RCV VB100, 0 XMT VB200, 0 Network 5 // 运行命令05303157303030363130303032373104 LD SM0.0 MOVB 16, VB0 MOVB 16#05, VB1 MOVB 16#30, VB2 MOVB 16#31, VB3 MOVB 16#57, VB4 MOVB 16#30, VB5 MOVB 16#30, VB6 MOVB 16#30, VB7 Network 6 LD SM0.0 MOVB 16#36, VB8 MOVB 16#31, VB9 MOVB 16#30, VB10 MOVB 16#30, VB11 MOVB 16#30, VB12 MOVB 16#32, VB13 MOVB 16#37, VB14 MOVB 16#31, VB15 MOVB 16#04, VB16 Network 7 // 停止命令05303157303030363130303030364604 LD SM0.0 MOVB 16, VB200 MOVB 16#05, VB201 MOVB 16#30, VB202 MOVB 16#31, VB203 MOVB 16#57, VB204 MOVB 16#30, VB205 MOVB 16#30, VB206 MOVB 16#30, VB207
Network 8 LD SM0.0 MOVB 16#36, VB208 MOVB 16#31, VB209 MOVB 16#30, VB210 MOVB 16#30, VB211 MOVB 16#30, VB212 MOVB 16#30, VB213 MOVB 16#36, VB214 MOVB 16#46, VB215 MOVB 16#04, VB216 现在将IG5变频器的设置和LG专用协议介绍如下(请参考LG变频器用户手册): 1. 将运行组DRIVE MODE 设为3 2. 将运行组FREP MODE 设为5 3. I/O46 站号设为1 4. I/O47 设为3 5. I/O50 设为 0 运行命令05303157303030363130303032373104解释: 05头码 3031表示01变频器站地址 57 写入命令 30303036写入的地址0006 31写入的地址数1个地址 30303032写入的数据为2,此处为初接者难理解 3731SUM校验 04尾码 停止命令05303157303030363130303030364604读者自行理解。向大家推一个串口调试工具。 原程式
[upload=rar,也谈s7-200自由口与lg ig5变频器通信(有实例介绍).rar]viewFile.asp?ID=2236[/upload]
|