工控机与西门子S7 1500PLC通讯出现的问题总结

原来用C#写的程序可以正常与西门子1500通讯. 但是这一次现场反馈通讯不上.

现把现场出现的问题做一次总结.


事实上, 这次通讯不上的问题主要是辊压机的PLC工程师不了解这款西门子PLC的一些通讯设定.


在PLC端的程序中, 我看到是引入了MB_SERVER模块, 绑定了一个背景DB块. 地址为DB337.
这个模块用于把PLC的内存地址挂到modelbus服务器端上面去, 供下面的modelbus服务端进行访问. 

看上去设置也没什么问题.

image.png


然后打开该数据块,是一个“TCON_IP_v4”的数据类型. 

内容如下图所示. 


image.png

image.png

image.png


经过反复检查, 后来发现这位PLC工程师在设置ConnectionType类型错了, 他填写的是16#08,  他把B填写成8.

就因为这个问题, MoudelBus工具ModScan32无法连接上PLC


ModScan32工具确实好用, 一般在PLC默认设置下, 多半是可以访问到PLC内存的值的. 用来测试通讯还是不错.
但是这个工具读出来的值, 需要做地址转换, 例如DB337, 偏移15, 这个内存地址的值, 并不是modelbus的地址337, 需要进行转换.这个会把一般的人弄得没脾气.

image.png


但是由于原来上位机C#程序使用的并非是modelBus协议访问PLC内存, 而是使用的S7协议访问.

因此即使上面的modelBus通讯上了, 还需要1500PLC做下面的设定, 才可以正常访问.


一是关闭优化内存块存储.


image.png


二是启用安全设定的PUT/GET的项目.


image.png


这两点不设定好, 看到的现象就是, S7协议连接PLC上了, 并且握手也通过了. 就是读不出也不能写内存地址.


这个问题笔者在现场搞了两天, 最终并非是C#的程序出了问题, 而是PLC这一端设置出了问题. 这次差出的就比较冤枉了.

由于辊压机厂家是我们的客户, 也没办法怂他们, 只能是当长一次教训.


本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2024年4月    »
1234567
891011121314
15161718192021
22232425262728
2930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864