电工学习网

 找回密码
 立即注册
查看: 784|回复: 0

用PLCSIM仿真软件实现S7-1200之间的以太网通信

[复制链接]
发表于 2019-4-15 20:47:40 | 显示全部楼层 |阅读模式
plcSIM可以仿真两个CPU之间的S7通信、TCP通信、ISO ON TCP通信,下面逐一进行示例,因为TCP和ISO ON TCP相同,所以只示例ISO ON TCP。
第一篇:S7通信
一、同一项目里的两个CPU仿真器的S7通信
添加两个设备,CPU1-1212作为客户端,CPU2-1215作为服务器端,IP地址分别设为192.168.1.6和192.168.1.7,激活“启用时钟存储器字节”。通信目的是将CPU1212发送数据区数据传输到CPU1215接收数据区,同时1212接收数据区接收来自CPU1215发送数据区的数据。
1.1客户端CPU1212组态S7连接,如图1所示。
6369091612528480922300503.png
            图1:客户端组态S7连接

1.2 客户端CPU1212添加数据通信数据块,比如s7com(DB1)建立Send和Rev两个数组(Array[0..9] of int),Send数组代表CPU1212发送数据区,Rev数组代表CPU1212接收数据区,如图2所示。
6369091625051758127594329.jpg
      图2:建立收发数据块
1.3 服务器CPU1215添加数据通信数据块,同样s7com(DB1)建立Send和Rev两个数组(Array[0..9] of int),Send数组代表CPU1215发送数据区,Rev数组代表CPU1215接收数据区,与客户端一样。
1.4 客户端CPU1212编程
调用“PUT”指令将数据写入到伙伴CPU1215中,调用“GET”指令从伙伴CPU1215读取数据,如图3和4所示。
6369091637256301653613441.jpg
        图3:PUT指令
6369091639496906208459134.jpg
图4:GET指令
1.5 服务器端CPU1215设置“允许来自远程对象的PUT/GET通信访问”,如图5所示。(无需编程)
6369091646398399922109777.jpg
  图5:服务器端勾选允许远程访问
1.6 启动各自仿真器并进行下载测试,如图6所示。
6369091663004448522177053.jpg
图6::仿真通信测试
二、不同项目里两个CPU的S7通信仿真
  还以CPU1212(客户端)和CPU1215(服务器端)为例,只是两个CPU在不同的项目里。
2.1 客户端项目CPU组态编程
   与同一项目里组态编程基本一致,区别就是连接参数里通信伙伴方选择未指定,同时在“常规”属性里填写未指定伙伴方的IP地址,如图7和8所示。
6369091671573088845954153.png
图7:创建未指定连接
6369091674679305059778169.jpg
图8:填写伙伴IP地址
程序里还是建立数据块S7com收发数据,同时调用“TSEND”和“TRCV”指令用于发送和接收数据,与前面一样不再赘述。
2.2 服务器端项目CPU1215组态
与同一项目里一样,CPU1215建立数据S7com用于收发数据即可,无需编程,同时勾选“允许来自远程对象的PUT/GET通信访问”。
3.3 通信测试
  客户端项目和服务器端项目均点击仿真按钮进行仿真,仿真CPU运行后自动下载程序。打开两个项目各自的监控表,客户端填入发送数据和服务器端填入发送数据后,各自均收到对方发送的数据,如图9所示。
6369091683002640299138930.jpg
图9:不同项目通信测试
提示:成功建立S7连接是PUT/GET指令数据访问成功的先决条件,可在S7连接属性里“诊断>连接信息>连接详细信息”里查看连接状态,如图10所示。
6369091687661955655874954.jpg
图10:查看S7连接状态
至此PLCSIM仿真CPU间S7通信就结束了。
第二篇:ISO ON TCP通信仿真
一、同一项目里两个CPU的ISO-on-TCP通信仿真
  添加两个设备,CPU1-1212作为客户端,CPU2-1215作为服务器端,IP地址分别设为192.168.1.6和192.168.1.7,激活“启用时钟存储器字节”。通信目的是将CPU1212发送数据区数据传输到CPU1215接收数据区,同时1212接收数据区接收来自CPU1215发送数据区的数据。
1.1客户端CPU1212编程:
1)添加数据通信数据块,比如TCP (DB11)建立Send和Rev两个数组(Array[0..9] of int),Send数组代表CPU1212发送数据区,Rev数组代表CPU1212接收数据区。
2)在主程序OB1中调用“TCON”指令,建立ISO-on-TCP连接。单击“TCON”指令右上角“开始组态”按钮,在巡视窗口中选择“TCON”指令的“属性>组态>连接参数”,直接配置连接属性。连接类型选择“ISO-on-TCP”, “连接数据”里选择“新建”时,系统将自动创建一个连接数据块,如图11所示。
6369091718841264499063760.jpg
图11:客户端1212连接
“TCON”指令的说明
REQ:该参数的上升沿用于启动连接操作,成功建立连接后参数DONE将置位一个扫描周期。
ID:指向已分配连接的引用,如图1里面的“连接ID(十进制)”,此处为2。
CONNECT:指向描述通信连接指针,也就是指向我们刚才组态时自动创建的连接数据块,它包含了建立连接所需的全部设置。这个参数既可以像上面一样通过点击指令右上角“开始组态”按钮生成,也可以在数据块中组态一个结构类型为TCON_IP_v4变量来实现。
3)在主程序中调用“TSEND”指令,用于发送数据,如图12所示。
4)在主程序中调用“TRCV”指令,用于接收数据,如图13所示。
6369091728600535053878743.jpg

图12:客户端发送指令
6369091730767694813866061.jpg
图13:客户端接收指令
1.2服务器端CPU1215编程
1)和客户端一样添加数据通信数据块,比如TCP (DB11)建立Send和Rev两个数组(Array[0..9] of INT),Send数组代表CPU1215的发送数据区,Rev数组代表CPU1215的接收数据区。
   2)在主程序OB1中调用“TCON”指令,建立TCP连接。同样是单击“TCON”指令右上角“开始组态”按钮进行组态,连接数据选择前面客户端CPU已组态好的即可,如图14所示.
6369091738678531057968439.jpg
图14:服务器端1215配置
3)同样在主程序中调用”TSEND”和“TRCV”指令,用于发送和接收数据,与前面客户端程序相同,不再赘述。
1.3 通信测试
   对本项目中2个CPU均启动仿真,启动各自仿真CPU运行并下载程序。每个CPU都添加监控表,分别触发各自TCON连接("TCP".Ctl[0]),同时在1212CPU的Send区和1215CPU的Send区填入相关数据,在1212CPU的Rev区和1215CPU的Rev区会接收到对方发来的数据,如图15所示。
6369091746317495772638853.jpg
图15:ISO ON TCP通信仿真测试(同一项目)
二、不同项目里两个CPU的TCP通信仿真
  还以CPU1212(客户端)和CPU1215(服务器端)为例,只是两个CPU在不同的项目里。
2.1 客户端项目CPU组态编程
   与前面同一项目里组态编程基本一致,区别就是连接参数里通信伙伴方选择未指定,如图16所示。
6369091756454876253842820.jpg
图16:客户端 ISO ON TCP连接设置
调用“TSEND”和“TRCV”指令用于发送和接收数据,与前面一样不再赘述。
2.2 服务器端项目CPU1215组态和编程
OB里调用”TCON”指令,连接参数里“伙伴”同样选择“未指定”,因为不在同一项目。输入伙伴CPU的IP地址(192.168.1.6),另外是客户端主动连接,所以伙伴侧选上“主动建立连接”,同时新建连接数据,如图17所示。
6369091764196964651928744.jpg
图17:服务器1215端ISO ON TCP配置
调用“TSEND”和“TRCV”指令也与前面一样,不再赘述。
2.3 通信测试
  客户端项目和服务器端项目均点击仿真按钮进行仿真,仿真CPU运行后自动下载程序。打开两个项目各自的监控表,客户端填入发送数据和服务器端填入发送数据后,各自均收到对方发送的数据,如图18所示。
6369091771628119536699212.jpg
图18:不同项目仿真ISO ON TCP通信测试
第三篇:TCP通信仿真
与ISO ON TCP几乎一模一样,只要把连接改为TCP即可,不再赘述了。
来源:西门子工业技术论坛

回复

使用道具 举报

|电工学习网 ( )

GMT+8, 2019-7-19 09:43

Powered by © 2011-2019 www.diangon.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

快速回复 返回顶部 返回列表