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

已锁定

刚刚入门

  • 帖子

    2083
  • 精华

    23
  • 被关注

    110

论坛等级:至圣

注册时间:2009-10-24

白金 白金 如何晋级?

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

9956

26

2019-04-15 09:37:44

star star star star

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所示。

            图1:客户端组态S7连接

1.2 客户端CPU1212添加数据通信数据块,比如s7com(DB1)建立Send和Rev两个数组(Array[0..9] of int),Send数组代表CPU1212发送数据区,Rev数组代表CPU1212接收数据区,如图2所示。

      图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所示。

        图3:PUT指令

图4:GET指令

1.5 服务器端CPU1215设置“允许来自远程对象的PUT/GET通信访问”,如图5所示。(无需编程)

  图5:服务器端勾选允许远程访问

1.6 启动各自仿真器并进行下载测试,如图6所示。

图6::仿真通信测试

二、不同项目里两个CPU的S7通信仿真

  还以CPU1212(客户端)和CPU1215(服务器端)为例,只是两个CPU在不同的项目里。

2.1 客户端项目CPU组态编程

   与同一项目里组态编程基本一致,区别就是连接参数里通信伙伴方选择未指定,同时在“常规”属性里填写未指定伙伴方的IP地址,如图7和8所示。

图7:创建未指定连接

图8:填写伙伴IP地址

程序里还是建立数据块S7com收发数据,同时调用“TSEND”和“TRCV”指令用于发送和接收数据,与前面一样不再赘述。

2.2 服务器端项目CPU1215组态

与同一项目里一样,CPU1215建立数据S7com用于收发数据即可,无需编程,同时勾选“允许来自远程对象的PUT/GET通信访问”。

3.3 通信测试

  客户端项目和服务器端项目均点击仿真按钮进行仿真,仿真CPU运行后自动下载程序。打开两个项目各自的监控表,客户端填入发送数据和服务器端填入发送数据后,各自均收到对方发送的数据,如图9所示。

图9:不同项目通信测试

提示:成功建立S7连接是PUT/GET指令数据访问成功的先决条件,可在S7连接属性里“诊断>连接信息>连接详细信息”里查看连接状态,如图10所示。

图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所示。

图11:客户端1212连接

“TCON”指令的说明

REQ:该参数的上升沿用于启动连接操作,成功建立连接后参数DONE将置位一个扫描周期。

ID:指向已分配连接的引用,如图1里面的“连接ID(十进制)”,此处为2。

CONNECT:指向描述通信连接指针,也就是指向我们刚才组态时自动创建的连接数据块,它包含了建立连接所需的全部设置。这个参数既可以像上面一样通过点击指令右上角“开始组态”按钮生成,也可以在数据块中组态一个结构类型为TCON_IP_v4变量来实现。

3)在主程序中调用“TSEND”指令,用于发送数据,如图12所示。

4)在主程序中调用“TRCV”指令,用于接收数据,如图13所示。


图12:客户端发送指令

图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所示.

图14:服务器端1215配置

 3)同样在主程序中调用”TSEND”和“TRCV”指令,用于发送和接收数据,与前面客户端程序相同,不再赘述。

1.3 通信测试

   对本项目中2个CPU均启动仿真,启动各自仿真CPU运行并下载程序。每个CPU都添加监控表,分别触发各自TCON连接("TCP".Ctl[0]),同时在1212CPU的Send区和1215CPU的Send区填入相关数据,在1212CPU的Rev区和1215CPU的Rev区会接收到对方发来的数据,如图15所示。

图15:ISO ON TCP通信仿真测试(同一项目)

二、不同项目里两个CPU的TCP通信仿真

  还以CPU1212(客户端)和CPU1215(服务器端)为例,只是两个CPU在不同的项目里。

2.1 客户端项目CPU组态编程

   与前面同一项目里组态编程基本一致,区别就是连接参数里通信伙伴方选择未指定,如图16所示。

图16:客户端 ISO ON TCP连接设置

调用“TSEND”和“TRCV”指令用于发送和接收数据,与前面一样不再赘述。

2.2 服务器端项目CPU1215组态和编程

OB里调用”TCON”指令,连接参数里“伙伴”同样选择“未指定”,因为不在同一项目。输入伙伴CPU的IP地址(192.168.1.6),另外是客户端主动连接,所以伙伴侧选上“主动建立连接”,同时新建连接数据,如图17所示。

图17:服务器1215端ISO ON TCP配置

 调用“TSEND”和“TRCV”指令也与前面一样,不再赘述。

2.3 通信测试

  客户端项目和服务器端项目均点击仿真按钮进行仿真,仿真CPU运行后自动下载程序。打开两个项目各自的监控表,客户端填入发送数据和服务器端填入发送数据后,各自均收到对方发送的数据,如图18所示。

图18:不同项目仿真ISO ON TCP通信测试

第三篇:TCP通信仿真

与ISO ON TCP几乎一模一样,只要把连接改为TCP即可,不再赘述了。


用PLCSIM仿真实现S7-1200之间的以太网通信 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有12957条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。