登录
首页 PLC论坛 PLC论坛
回帖 发帖
正文

主题:最近学习通讯,读取编码器的值如何快速更新?或者怎么处理呢?

点击:1822 回复:7

要读取内容,首先PLC串口先发信号,设定好站号+功能码+需要发送字节数+编码器寄存器地址+读取字数,SET 发送标志就OK了,校验码自动算的。
然后,编码器才反馈回来信号。
那么问题来了:
PLC是欧姆龙PL1L,用的modbus rtu 简易简易主从。
发现一个问题,如果我SET发送标志位,那么接收的D存储器的值会清零,如果正好程序计算当前位置,那不是就乱了吗?
怎么处理靠谱呢?
最后修改:2018/3/20 17:21:24
18-03-17 23:32
你SET发送标志位,接收的D存储器的值怎么会清零?
18-03-17 23:57
一般PLC的通讯模块都是独立的,跟程序运算无关
18-03-19 22:56
时序问题
18-03-20 09:33

引用 121111115 在 2018/3/20 9:33:52 发言【内容省略】

老哥有没有程序,发出来我们菜鸟借鉴下
18-03-20 12:35
你可以百度这个问题,或者教科书上有这个例子。根据你的描述我估计是时序问题,也就是说你先发送以后寄存器清零了,那么你可以先计算最后在发送出去。就是简单的理解为让CPU先干什么在干什么,时序问题不是程序问题只是机器扫描周期的一个BUG,编程时注意就好,出现问题知道咋解决就行。
18-03-20 13:07

引用 121111115 在 2018/3/20 13:07:05 发言【内容省略】

OK 谢谢,手册也没有具体通讯时序描述。
最后修改:2018/3/20 16:33:57
18-03-20 16:33
可以先比较D存储器的值是不是零,
不是零--》数据传到暂时存储器,
是零--》数据不传到暂时存储器,
暂时存储器的值用来其他程序数据处理
18-03-22 08:21

工控新闻

更多新闻资讯