加入收藏 在线留言 联系我们
关注微信
手机扫一扫 立刻联系商家
全国服务热线18475208684
公司新闻
西门子 一文搞懂s7-200 smart 做客户端与s7-1200/1500的S7通信
发布时间: 2024-05-23 15:43 更新时间: 2024-12-18 08:00
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来为大家分享。

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

有使用过s7-1200或者s7-1500的小伙伴都知道,在s7-1200和s7-1500中没有V存储区,只有M存储区和DB块,那该怎么办呢?这个问题西门子研发人员已经考虑过了,即在S7-1200/1500中使用DB1作为对应的V区使用,即VB100~VB07对应s7-1200/1500中DB1.DB100~DB1.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块里面没有地址,那要怎么对应呢?接下来需要开启取消勾选块“优化访问”,即出来便移量列,对应juedui地址;

图片image-20240321135010291

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

    图片

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

  2. 优化块访问:通过符号寻址 例如:"Test_Data".SendToSmart.VB100

  3. 取消优化块访问:通过juedui地址 例如:DB1.DBB100

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

    图片image-20240321140058108
  5. 很多小伙伴做到这一步,就结束了,但往往在实际应用的时候总是连接不上,又找不到问题。实际上是少了一步修改连接机制;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 块的优化访问需取消,用juedui地址访问;
  • s7-1200/1500 连接机制勾选不要忘记允许请求;

  • 联系方式

    • 电  话:13922889745
    • 经理:向小姐
    • 手  机:18475208684
    • 微  信:18475208684