找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2684|回复: 9

WINCC串口通讯经验分享

  [复制链接]
  • 打卡等级:常驻代表
  • 打卡总天数:34
  • 打卡月天数:6
  • 打卡总奖励:9027
  • 最近打卡:2025-12-17 23:15:51

2823

主题

541

回帖

2万

积分

管理员

积分
22569
发表于 2022-10-11 22:55:03 | 显示全部楼层 |阅读模式
已调试成功,希望能对有类似情况的朋友有帮助。
   今天同事打电话说现场6台宇电AI仪表,1台东辉8路巡检仪,3台富士FRENIC-VP[color=rgb(68, 68, 68) !important]变频器
,2台日本RKC仪表,1台创盛流量计都要挂到WINCC里(之前说是厂方自己弄的),因为厂方临时要求加的,邮寄CP340挂到S7300就算了,也没几个通信设备,都是RS485,一条通讯线挂一起,能省就省吧,同事随身带的有RS485转232模块。
   平常项目都是自己写的软件,二年前就用过一次WINCC6,外挂其它通讯设备也没试过,在网上搜了一圈,多是讲[color=rgb(68, 68, 68) !important]opc什么的,不了解,觉得对我来说不太合适。还有讲用MSCOMM控件的。MSCOMM控件就不提了,已废弃多年不用了,不可能再回到老路上。于是决定移植上位机的代码,用WIN32 API 来做成OCX,WINCC里来调用,这样并非像网上说的要支持MODBUS协议或找OPC什么,只要通讯设备有通讯协议,带通讯接口即可。我的方法看起来也许比较麻烦,但方便维护,去现场调试的人不需对通讯怎么懂,会设置通讯设备的地址参数就行了,其它都用默认参数,再说增加个新的通讯设备协议,也就一小会儿事。
1.先编个基类,定义接口,方法,属性,例如通讯COM口,波特率、数据位、停止位、校验方式等等生成dll链接库。
2.从基类派生各个通讯设备类,如仪表,变频器,流量计,[color=rgb(68, 68, 68) !important]plc等等,通讯设备类负责将要读或要写的数据打包给串口类,并接收来自串口类的回送数据进行处理,生成dll链接库,这个库最大,包含了五十多种设备的通讯,以后新加通讯设备只需拷贝一个,稍加修改即可。
3.再编个通讯串口类,调用WIN32通信API函数,负责将通讯设备类打包过来的发送数据发送出去,再将接收到数据返回给通讯类自身处理,生成dll动态链接库。
4.再编个消息类,负责将通讯的发送字节,接收字节,当前通讯设备的通讯设置参数,通信成功或失败等信息作为事件触发,生成dll动态链接库.
5.后面的就简单了,编个OCX控件直接引用上面的DLL库编几个小调用函数,再封装几个属性和消息事件触发,编译一下做个OCX安装程序。
6.发给同事OCX安装包,同事安装后直接注册下OCX即可用,只需在WINCC里初始化下这个OCX挂的各个设备名称,通讯地址,端口,波特率,数据位,停止位。然后再在循环处理过程里编个通用的轮循过程,要读的设备号,要读的参数或要写的参数及要写的数据。读写成功失败或者收发的字节通过OCX的事件触发来处理。
7.如果现场新加的通讯设备协议在这个OCX中,WINCC只需要改一下初始化过程,挂靠的OCX通讯设备名称,通讯参数即可,其它如轮循过程,变量处理根本不需要改动。
       如果WINCC只挂少量设备,也可以采用MSCOMM控件处理,毕竟MSCOMM简单,建议还是不要在WINCC里直接用MSCOMM控件,代码很乱,不方便移植。还是自己编个OCX,在OCX里面用MSCOMM控件,再封装几个方法属性出来给WINCC调用,也方便客户使用。
   毕竟WINCC我很少用它,但它确实很强大^_^,也许是我不熟的原因,觉得它通信慢。问下大家,读单字,双字大概算下来有合计800个16位字的通讯,MPI方式.下午顺便发了个测试代码给同事,同事说WINCC一次大概只能读100多个字,也就是200多个字节,再多了就失败,而且每次耗时大概1~2秒.那800个字不得调8次?感觉这样不行。我用的GetTagRaw函数.但是我记得如果采用PRODAVE方式,一次就可以读回来了,耗时感觉不到1秒,正考虑是不是把S7300/200 PLC通讯全移到OCX处理算了,不知有没这个必要。
利用循环。
第一个500ms读一个设备;
第二个500ms读第二个设备;
第32个500ms读第32个设备;
不要一起都读!分开读!

工控课堂 www.gkket.com

0

主题

112

回帖

324

积分

注册会员

积分
324
发表于 2025-11-17 09:10:23 | 显示全部楼层
被戳中笑点 / 泪点,太真实了!
工控课堂 www.gkket.com

0

主题

140

回帖

395

积分

注册会员

积分
395
发表于 2025-11-17 10:32:10 | 显示全部楼层
水个经验,支持楼主,加油呀
工控课堂 www.gkket.com

0

主题

91

回帖

137

积分

新手上路

积分
137
发表于 2025-11-17 11:22:29 | 显示全部楼层
赞同 + 10086,没毛病,完全没毛病
工控课堂 www.gkket.com

0

主题

78

回帖

119

积分

新手上路

积分
119
发表于 2025-11-17 22:21:46 | 显示全部楼层
不请自来,只为说一句:太精彩了!
工控课堂 www.gkket.com

0

主题

82

回帖

120

积分

新手上路

积分
120
发表于 2025-11-17 22:26:53 | 显示全部楼层
内容太顶了!疯狂点赞,已默默收藏~
工控课堂 www.gkket.com

0

主题

106

回帖

169

积分

新手上路

积分
169
发表于 2025-11-17 22:29:36 | 显示全部楼层
水贴也要有仪式感,我先来打卡~
工控课堂 www.gkket.com

0

主题

102

回帖

154

积分

新手上路

积分
154
发表于 2025-11-17 22:30:27 | 显示全部楼层
理性围观,感觉大家说得都有道理
工控课堂 www.gkket.com

0

主题

100

回帖

348

积分

注册会员

积分
348
发表于 2025-11-17 22:31:05 | 显示全部楼层
蹲一波同款,有没有姐妹 / 兄弟推荐?
工控课堂 www.gkket.com

0

主题

79

回帖

135

积分

新手上路

积分
135
发表于 2025-11-17 22:31:50 | 显示全部楼层
评论区人才辈出,笑到停不下来😂
工控课堂 www.gkket.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|手机版|免责声明|本站介绍|工控课堂 ( 沪ICP备20008691号-1 )

GMT+8, 2025-12-22 17:42 , Processed in 0.116444 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表