18420489986
级别: 略有小成
精华主题: 0
发帖数量: 134 个
工控威望: 495 点
下载积分: 2836 分
在线时间: 140(小时)
注册时间: 2022-05-17
最后登录: 2024-06-21
查看18420489986的 主题 / 回贴
楼主  发表于: 27天前
程序里面有多个子程序,其中3个子程序引用了同样的FB块,当这3个子程序都调用时,程序正常运行;当只调用其中一个时,程序很多寄存器的值错乱了,且在不断地变化,包括我整个程序没有用上的寄存器而且也不在自动分配软元件范围内的都会错乱,我手动将D0-D7999和M0-M7679的值都清零了,过一会儿还是会出现错乱的值,懂的大佬指点一下
没有签名
18420489986
级别: 略有小成
精华主题: 0
发帖数量: 134 个
工控威望: 495 点
下载积分: 2836 分
在线时间: 140(小时)
注册时间: 2022-05-17
最后登录: 2024-06-21
查看18420489986的 主题 / 回贴
1楼  发表于: 27天前
补充:试过了从一开始就只调用其中一个子程序,下载程序时将储存器清除,仍然不行,头大啊
没有签名
source08
级别: 网络英雄
精华主题: 0
发帖数量: 535 个
工控威望: 6266 点
下载积分: 7628 分
在线时间: 203(小时)
注册时间: 2011-03-01
最后登录: 2024-07-04
查看source08的 主题 / 回贴
2楼  发表于: 27天前
单独把子程序导出来测试嘛!
gione
级别: 略有小成
精华主题: 0
发帖数量: 163 个
工控威望: 345 点
下载积分: 972 分
在线时间: 312(小时)
注册时间: 2007-11-05
最后登录: 2024-07-04
查看gione的 主题 / 回贴
3楼  发表于: 26天前
FB内用变量编写,不要直接用寄存器
ayusecret
级别: 略有小成
精华主题: 0
发帖数量: 140 个
工控威望: 208 点
下载积分: 691 分
在线时间: 57(小时)
注册时间: 2021-10-31
最后登录: 2024-07-04
查看ayusecret的 主题 / 回贴
4楼  发表于: 25天前
目前知道Q系列的元件区域是按顺序排的,只要你的索引某个元件超过你参数配置的最大值,它是可以跨元件进行赋值的(Q系列CPU手册上可以查到),所以要检查你的索引最大值是否合理