ayusecret
级别: 略有小成
精华主题: 0
发帖数量: 183 个
工控威望: 261 点
下载积分: 806 分
在线时间: 73(小时)
注册时间: 2021-10-31
最后登录: 2024-11-18
查看ayusecret的 主题 / 回贴
楼主  发表于: 2022-04-24 08:53
图片:
如图,什么情况下能让光标位置的FMOV指令出错,这种情况我相信一般项目是很难遇到的,而在实际项目如果遇到了,一般很难分析出哪里有问题(前提在大量程序和变址调用干扰下)。欢迎分享你们的看法,让其他人可以学习学习。晚点我会分享我的答案。
cvlsam
富士低压,POD(觸摸屏),PLC专卖
级别: VIP会员

精华主题: 3 篇
发帖数量: 6769 个
工控威望: 38370 点
下载积分: 3075 分
在线时间: 9507(小时)
注册时间: 2006-09-13
最后登录: 2024-11-20
查看cvlsam的 主题 / 回贴
1楼  发表于: 2022-04-24 09:53
引用
引用楼主ayusecret于2022-04-24 08:53发表的 Q系列PLC如何用变址让一条指令出错 :
如图,什么情况下能让光标位置的FMOV指令出错,这种情况我相信一般项目是很难遇到的,而在实际项目如果遇到了,一般很难分析出哪里有问题(前提在大量程序和变址调用干扰下)。欢迎分享你们的看法,让其他人可以学习学习。晚点我会分享我的答案。





Good Luck~
ayusecret
级别: 略有小成
精华主题: 0
发帖数量: 183 个
工控威望: 261 点
下载积分: 806 分
在线时间: 73(小时)
注册时间: 2021-10-31
最后登录: 2024-11-18
查看ayusecret的 主题 / 回贴
2楼  发表于: 2022-04-24 09:57
引用
引用第1楼cvlsam于2022-04-24 09:53发表的  :

这是第一个坑,请看第一条指令,D3000是能被寻址到的。

[attachment=266699]

Good Luck~
ayusecret
级别: 略有小成
精华主题: 0
发帖数量: 183 个
工控威望: 261 点
下载积分: 806 分
在线时间: 73(小时)
注册时间: 2021-10-31
最后登录: 2024-11-18
查看ayusecret的 主题 / 回贴
3楼  发表于: 2022-04-24 11:11
图片:
如图、D2060能给到值,但D2048给值就报错,分析下啥原因
shilimengma
级别: 正式会员
精华主题: 0
发帖数量: 21 个
工控威望: 77 点
下载积分: 1555 分
在线时间: 89(小时)
注册时间: 2019-06-03
最后登录: 2024-11-14
查看shilimengma的 主题 / 回贴
4楼  发表于: 2022-04-24 16:54
图片:
我模拟没问题
ayusecret
级别: 略有小成
精华主题: 0
发帖数量: 183 个
工控威望: 261 点
下载积分: 806 分
在线时间: 73(小时)
注册时间: 2021-10-31
最后登录: 2024-11-18
查看ayusecret的 主题 / 回贴
5楼  发表于: 2022-04-25 10:42
本贴讨论要点不在于元件的分配范围大小,根据手册(图1),在于同一软元件在内部元件和文件寄存器之间变址修饰的分配顺序。


参数配置如图2


测试数据如图3


关于图3第一条Mov指令寻址不报错,手册这样解释


一开始我仿真后没找到实际的赋值地址,后面我把W地址给到8K(原来为0),此时M0先断开,因为D1023Z0寻址到大概W1F36处,重写参数后找到查看W1F36区域,发现之前赋给D1023Z0的HFFFF值就在此区域.
同理,对第二条FMOV指令报错,如果在W区或SW区稍微分配个区域,则FMOV里的D1023将寻址到W区或SW区而不报错。

以上总结变址修饰在使用前需正确初始化,否则在实际应用中将导致不可预见的错误而不被察觉。
本帖最近评分记录:
  • 下载积分:+5(金秋来)
    加勒比海带
    级别: 论坛先锋
    精华主题: 0
    发帖数量: 2272 个
    工控威望: 1837 点
    下载积分: 6902 分
    在线时间: 64(小时)
    注册时间: 2021-07-19
    最后登录: 2024-08-05
    查看加勒比海带的 主题 / 回贴
    6楼  发表于: 2022-05-10 16:49
    看看,研究一下