西门子 S7-200 SMART 系列九:一文读懂s7-200 SMART CPU作客户端与s7-1200/1500的s7通信

原文链接:ics-pedia.com/一文读懂s7-200-smart-cpu作客户端与s7-1200-1500的s7通信/

s7-200 smart 做客户端实现与 s7-1200/1500 S7 通信

image-20240321144244041

在上期文章中,与大家分享如何使用向导实现s7-200 smart 与 s7-200 smart cpu 之间的S7单边通信,相信有不少小伙伴已经动手实践过了,学习PLC就是需要不断的实践,才能不断发现问题,解决问题,提升技能,所以还没有行动的小伙伴赶快行动起来吧。(文章结尾有往期文章链接)

还有小伙伴可能会问,那s7-200 smart 能否实现与s7-1200/1500,甚至s7-300/400通讯呢?答案是肯定的。

经过测试s7-200 smart 能够实现与s7-1200 /1500的s7通信,s7-200 smart 即可以作为客户端也可以作为服务端使用,但是在与s7-300/400的通信中,s7-200 smart只能作为服务端使用,必须由s7-300/400侧发起PUT/GET通讯(原因可能与TSAP有关,有兴趣的小伙伴可以研究下)s7-300/400侧的PUT/GET通讯将在s7-300/400专题中分享,本期主要分享s7-200 smart 作为客户端与s7-1200/1500 之间的单边通讯;

注:在工业通讯中,通常把发起请求的一端称为“客户端”,提供数据的一端称为“服务端”;例如:s7-200 smart 与 s7-1200 通讯,如果s7-200 smart发起PUT/GET请求,我们就称s7-200 smart 为客户端,s7-1200 为服务端;同样,如果由s7-1200发起PUT/GET,我们就称s7-1200为客户端,s7-200 smart为服务端;

s7-200 smart 作客户端 与 S7-1200/1500的S7单边通讯

上期文章中讲到,在s7通信中,只需要在客户端组态相应通讯参数和通讯程序,在服务端仅需把数据放入相应的存储区即可。因此接回上篇文章,我们保持s7-200 smart 侧通讯程序不变(没看过的小伙伴,可先查看上篇文章),只是把远端plc(服务端)由s7-200 smart 更换为s7-1200/1500来为大家分享。

有的小伙伴可能有疑惑,前面不是说服务端仅需要把数据放入相应存储区(上篇文章组态的远端存储区VB100VB107)就可以了,还需要讲什么?对了,本期就是讲讲**怎么把s7-1200/1500的数据放入VB100VB107里面**;

有使用过s7-1200或者s7-1500的小伙伴都知道,在s7-1200和s7-1500中没有V存储区,只有M存储区和DB块,那该怎么办呢?这个问题西门子研发人员已经考虑过了,即在S7-1200/1500中使用DB1作为对应的V区使用,即VB100VB07对应s7-1200/1500中DB1.DB100DB1.DBB107,以S7-1200 CPU 1214C来讲解,步骤如下:

  1. 打开TIA Portal创建新项目,并打开项目视图

    image-20240321111727743

  2. 添加新设备

    image-20240321112023416

  3. 为控制器分配IP地址(192.168.2.101)与 s7-200 smart plc 同网段

    image-20240321112520127

  4. 在DB1中创建8个Byte变量,此处以VB100~VB107命名;注:建议大家在DB块中使用结构体来新建变量,能够保持程序的模块化和可读性;

    image-20240321114621436

  5. 有小伙伴发现我们新建的DB块里面没有地址,那要怎么对应呢?接下来需要开启取消勾选块“优化访问”,即出来便移量列,对应绝对地址;

image-20240321135010291

  1. 点击编译,即可看到绝对地址;

    注意:优化块访问和取消优化块访问的区别在与寻址方式不一样;

    • 优化块访问:通过符号寻址 例如:“Test_Data”.SendToSmart.VB100

    • 取消优化块访问:通过绝对地址 例如:DB1.DBB100

  2. 由于我们需要的是DB1.dbb100~DB1.Dbb107,所以需要在数据块前面插入占位符(实际应用中,可用作其它用途)用数组代替;

    image-20240321140058108

  3. 很多小伙伴做到这一步,就结束了,但往往在实际应用的时候总是连接不上,又找不到问题。实际上是少了一步修改连接机制;S7-1200 作为服务器进行 S7 通信,对于 CPU V4.0以后的固件版本,需要勾选“允许来自远程对象的PUT/GET通信访问”,否者,无法建立通信

    image-20240321141606475

    注:s7-1200/1500 与 西门子 精简(smart系列)触摸屏通讯时,同样需要勾选“允许来自远程对象的PUT/GET通信访问”,否则无法建立连接;

s7-200 smart 单边S7通讯总结

至些s7-200 smart 做为客户端(client)的s7单边通信及s7-200 smart / s7-1200/1500作为服务端的配置都已经分享完毕,看似挺复杂,其实只要抓住关键点大部分都可以成功通讯;总结如下:

  • 谁发起请求,谁就是客户端;谁提供数据,谁就是服务端;
  • 客户端需要编写通讯请求程序,服务端不需要编写通讯请求程序;
  • s7-200 smart 通讯V存储区,对应s7-300/400/1200/1500都是DB1
  • s7-1200/1500 块的优化访问需取消,用绝对地址访问;
  • s7-1200/1500 连接机制勾选不要忘记允许请求;
结语

如果您觉得文章对您有帮助,欢迎评论、点赞、收藏,加关注!您的支持将是小编最大动力!

下载方式:关注公众号,在公众号回复“10003”,获取下载连接

  • 60
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值