中国自动化学会专家咨询工作委员会指定宣传媒体
免费注册 登录 广告服务 | 客服中心
您现在所在的是:

PLC论坛

抖音 德嘉 泓格论坛 FLIR红外热像论坛
工控论坛首页 PLC论坛 → 浏览主题: 最近学习通讯,读取编码器的值如何快速更新?或者怎么处理呢?
发表新帖 回复该主题
回帖:7个,阅读:1664 [上一页] [1] [下一页]
* 帖子主题:

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

分享到
19814
bnnyygy
文章数:5641
年度积分:480
历史总积分:19814
注册时间:2012/3/15
发站内信
2018论坛分享达人
发表于:2018/3/17 23:32:05
#0楼
要读取内容,首先PLC串口先发信号,设定好站号+功能码+需要发送字节数+编码器寄存器地址+读取字数,SET 发送标志就OK了,校验码自动算的。

然后,编码器才反馈回来信号。

那么问题来了:

PLC是欧姆龙PL1L,用的modbus rtu 简易简易主从。

发现一个问题,如果我SET发送标志位,那么接收的D存储器的值会清零,如果正好程序计算当前位置,那不是就乱了吗?


怎么处理靠谱呢?
[此贴子已经被jint于2018/3/20 17:21:24编辑过]
17911
qjj740210
文章数:4713
年度积分:680
历史总积分:17911
注册时间:2005/9/24
发站内信
2018春节活动(二)
2017国庆活动(二)
2017春节活动(二)
2016国庆活动(二)
西门子触摸屏(一)
三菱电机活动(二)
西门子logo体验(三)
西门子PLC体验(二)
2013辞旧迎新
发表于:2018/3/17 23:57:52
#1楼
你SET发送标志位,接收的D存储器的值怎么会清零?
11874
蛇会大学
文章数:4445
年度积分:200
历史总积分:11874
注册时间:2015/12/14
发站内信
2018论坛分享达人
发表于:2018/3/19 22:56:23
#2楼
一般PLC的通讯模块都是独立的,跟程序运算无关
5312
121111115
文章数:1399
年度积分:395
历史总积分:5312
注册时间:2015/3/16
发站内信
2018论坛分享达人
发表于:2018/3/20 9:33:52
#3楼
时序问题
19814
bnnyygy
文章数:5641
年度积分:480
历史总积分:19814
注册时间:2012/3/15
发站内信
2018论坛分享达人
发表于:2018/3/20 12:35:06
#4楼
以下是引用1211111152018/3/20 9:33:52的发言:
时序问题


老哥有没有程序,发出来我们菜鸟借鉴下
5312
121111115
文章数:1399
年度积分:395
历史总积分:5312
注册时间:2015/3/16
发站内信
2018论坛分享达人
发表于:2018/3/20 13:07:05
#5楼
回复 #4楼 bnnyygy
你可以百度这个问题,或者教科书上有这个例子。根据你的描述我估计是时序问题,也就是说你先发送以后寄存器清零了,那么你可以先计算最后在发送出去。就是简单的理解为让CPU先干什么在干什么,时序问题不是程序问题只是机器扫描周期的一个BUG,编程时注意就好,出现问题知道咋解决就行。
19814
bnnyygy
文章数:5641
年度积分:480
历史总积分:19814
注册时间:2012/3/15
发站内信
2018论坛分享达人
发表于:2018/3/20 16:33:45
#6楼
以下是引用1211111152018/3/20 13:07:05的发言:
你可以百度这个问题,或者教科书上有这个例子。根据你的描述我估计是时序问题,也就是说你先发送以后寄存器清零了,那么你可以先计算最后在发送出去。就是简单的理解为让CPU先干什么在干什么,时序问题不是程序问题只是机器扫描周期的一个BUG,编程时注意就好,出现问题知道咋解决就行。

OK 谢谢,手册也没有具体通讯时序描述。
[此贴子已经被作者于2018/3/20 16:33:57编辑过]
6164
zhengchang
文章数:1820
年度积分:50
历史总积分:6164
注册时间:2011/5/6
发站内信
发表于:2018/3/22 8:21:24
#7楼
可以先比较D存储器的值是不是零,

不是零--》数据传到暂时存储器,
是零--》数据不传到暂时存储器,

暂时存储器的值用来其他程序数据处理
工控学堂推荐视频:

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

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

62.4004