登录
首页
PLC论坛
西门子SIEMENS
回帖
发帖
正文
主题:smart200modbus通讯程序疑问
点击:1378 回复:7
楼主
编辑
引用
管理
HelloSiemens
第4幅图与运算IN2脚为什么是16#FF?不能用其他的吗?这是smart200PLC与施耐德ATV12HU22M2变频器通讯程序,小弟就这个地方没弄明白,请各位师傅指点一下。
18-12-11 16:38
1楼
编辑
引用
管理
HelloSiemens
18-12-11 16:43
2楼
编辑
引用
管理
limassol
读出来的数据VW100前面的8位丢掉了,只保留后8位
18-12-11 18:38
3楼
编辑
引用
管理
guanyumou
取状态字的低8位做判断!状态字不同做出的操作也不同!
18-12-11 19:48
4楼
编辑
引用
管理
121111115
是保留低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位的互换。)协议解析经常要用的。
18-12-11 21:02
5楼
编辑
引用
管理
121111115
给你点建议,200smart modbus轮询不要用复位置位去做驱动。我以前也是拿复置位做的,直到有一天遇上一台特殊的200PLC(山不山寨的就不要争了),他不认识上升沿导致轮询不了,然后我改为线圈轮询就正常了,所以市面上什么多就得防着点什么。
例程不一定是最好的,弄懂原理后,试着自己写写,然后封个包,山寨的正版的PLC都能跑起来,你说厉不厉害?
18-12-11 21:13
6楼
编辑
引用
管理
HelloSiemens
是的,我这PLC在上升沿驱动不了,我在怀疑我买了一个假的
18-12-12 08:14
7楼
编辑
引用
管理
HelloSiemens
在您的提点下茅塞顿开啊!让我少走不少弯路,谢谢!
18-12-12 08:25
工控新闻
施耐德电气:以AI赋能自动化生产向自主化运营转型
图尔克TAS:工业物联网时代的智能运维中枢
破局人形机器人制造瓶颈!2025人形机器人先进制造技术论坛在株洲隆重举办
工业智能体玩转产线,到WAIC感受制造业的AI律动
优必选推出面向智能制造场景的全尺寸工业人形机器人Walker S2
如何在RK3576开发板上运行TinyMaix :超轻量级推理框架--基于米尔MYD-LR3576开发板
Vishay最新工业级3/8英寸方形单匝金属陶瓷微调器,优化PCB上的布局
伊戈尔定增注册获同意 拟于深交所上市
更多新闻资讯