您现在所在的是:

西门子SIEMENS

回帖:7个,阅读:1330 [上一页] [1] [下一页]
426
HelloSiemens
文章数:13
年度积分:50
历史总积分:426
注册时间:2018/8/26
发站内信
发表于:2018/12/11 16:38:51
#0楼
第4幅图与运算IN2脚为什么是16#FF?不能用其他的吗?这是smart200PLC与施耐德ATV12HU22M2变频器通讯程序,小弟就这个地方没弄明白,请各位师傅指点一下。
426
HelloSiemens
文章数:13
年度积分:50
历史总积分:426
注册时间:2018/8/26
发站内信
发表于:2018/12/11 16:43:51
#1楼
附件 1.jpg

附件 2.jpg

附件 3.jpg

附件 4.jpg

附件 5.jpg

附件 6.jpg

附件 7.jpg

附件 8.jpg
12366
limassol
文章数:749
年度积分:170
历史总积分:12366
注册时间:2005/9/24
发站内信
发表于:2018/12/11 18:38:28
#2楼
读出来的数据VW100前面的8位丢掉了,只保留后8位
28116
guanyumou 版主
文章数:10561
年度积分:94
历史总积分:28116
注册时间:2008/7/13
发站内信
2018论坛优秀版主
2018春节活动(三)
2017论坛优秀版主
2017国庆活动(二)
2017春节活动(三)
发表于:2018/12/11 19:48:35
#3楼
取状态字的低8位做判断!状态字不同做出的操作也不同!
附件 ATV12_Modbus_EN_BBV28590_02.jpg
5641
121111115
文章数:1421
年度积分:85
历史总积分:5641
注册时间:2015/3/16
发站内信
2018论坛分享达人
发表于:2018/12/11 21:02:27
#4楼
是保留低8位的操作,搞单片机的很好理解的。
与操作:与1与保留原数,与0与清0.
或操作:与1或取1,与0或保持原数。
你的疑问是VW100为啥与FF与。VW100是16位的寄存器,对应的数应该是1EF3,EF41,A047,3355,1234,这种的占16位的数据,与FF相与实际上是与00FF相与,软件省略了前面的0,结合我上面说的VW100分别与FF与完得到00F3,0041,0047,0055,0034这几个数就是VW0里面的数,然后比较一下干各自活。
那么你要取低四位就需要和F与,你要取高四位就要和F000与,你想保留中间8位就得和0FF0与。所以不一定那个地方就是FF,看你要什么数。
或的操作是一种组合的操作,还是上面的例子,00F3和0041,我想得到F341,就把00F3左移8位或上0041就可以得到F341了。我想要41F3,把0041左移8位或上00F3就可以得到41F3。(可以看到通过以上操作你完成了高低8位的互换。)协议解析经常要用的。
5641
121111115
文章数:1421
年度积分:85
历史总积分:5641
注册时间:2015/3/16
发站内信
2018论坛分享达人
发表于:2018/12/11 21:13:19
#5楼
给你点建议,200smart      modbus轮询不要用复位置位去做驱动。我以前也是拿复置位做的,直到有一天遇上一台特殊的200PLC(山不山寨的就不要争了),他不认识上升沿导致轮询不了,然后我改为线圈轮询就正常了,所以市面上什么多就得防着点什么。
例程不一定是最好的,弄懂原理后,试着自己写写,然后封个包,山寨的正版的PLC都能跑起来,你说厉不厉害?
426
HelloSiemens
文章数:13
年度积分:50
历史总积分:426
注册时间:2018/8/26
发站内信
发表于:2018/12/12 8:14:04
#6楼
回复 #5楼 121111115
是的,我这PLC在上升沿驱动不了,我在怀疑我买了一个假的
426
HelloSiemens
文章数:13
年度积分:50
历史总积分:426
注册时间:2018/8/26
发站内信
发表于:2018/12/12 8:25:27
#7楼
回复 #4楼 121111115
在您的提点下茅塞顿开啊!让我少走不少弯路,谢谢!

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

62.4004