少有人走的路

勇哥的工业自动化技术网站

工控机与西门子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这一端设置出了问题. 这次差出的就比较冤枉了.

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


发表评论:

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

«    2025年12月    »
1234567
891011121314
15161718192021
22232425262728
293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接

Powered By Z-BlogPHP 1.7.3

Copyright www.skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864