西门子S7-200SMART是S7-200PLC的升级版,简单说,是为S7-200增加了S7协议的以太网通讯功能。这个功能通过在CPU模块上增加RJ45以太网接口和内部的软件支持来实现。S7-200SMART有了这个功能,就可以方便地与S7-300/400/1200/1500进行站与站之间的通讯,当然也方便了和监控计算机组态软件的通讯。下面给读者介绍S7-200SMART与S7-300站点的S7以太网通讯编程实例。
站点之间的通讯,如果单边编程就可以实现,那是最好的;西门子提供的PUT/GET功能就是如此。而且,S7-200SMART和S7-300都有PUT/GET功能,下面分别介绍。
方案一:由S7-300实现。站点必须带以太网接口,注意:Lean(精简)版的以太网模块不可以!首先进行网络配置,为该站点添加一个S7连接,伙伴选择“未指定”,输入伙伴的IP地址,默认此连接的本地ID为W#16#1。如图一。确定后保存编译,并下载配置。
![0977bfa52bce6c45afc5902dfa22c093.png](https://img-blog.csdnimg.cn/img_convert/0977bfa52bce6c45afc5902dfa22c093.png)
图一 NetPro配置
然后,在程序中(如OB1)调用PUT功能,如图二。关键参数说明:REQ上升沿触发,可以每秒触发一次;ID即NetPro中配置的连接ID;ADDR_1伙伴数据区;SD_1本地数据区;DONE为1时表示通讯成功;ERROR显示失败代码。
![7edb063e2ffcaf80a00efb08161f424b.png](https://img-blog.csdnimg.cn/img_convert/7edb063e2ffcaf80a00efb08161f424b.png)
图二 调用PUT
方案二:由S7-200SMART编程实现。程序如下图三,段1初始化TABLE(即VB200~VB215);段2每秒触发一次PUT调用。这两段程序可以放在OB1中。TABLE即表,包含连续的16个字节,TABLE参数定义说明:第一个字节VB200为表头,也是系统返回状态,VB201~VB204为伙伴IP地址,VD207是指针,指向伙伴数据区(本例中为VB0~VB9,对应S7-300的DB1.DBB0~DB1.DBB9),VB211为交换字节数,VD212是指针,指向本地数据区(本例中为VB100~VB109)。
![55be543fe45c67f2aa65b99899c1665a.png](https://img-blog.csdnimg.cn/img_convert/55be543fe45c67f2aa65b99899c1665a.png)
图三 SMART实现PUT
小伙伴们,是不是感觉SMART的这个应用更简单实用呢?