流辰沙
级别: 家园常客
精华主题: 0
发帖数量: 313 个
工控威望: 641 点
下载积分: 1068 分
在线时间: 124(小时)
注册时间: 2018-12-27
最后登录: 2024-04-16
查看流辰沙的 主题 / 回贴
楼主  发表于: 2019-05-07 17:13
 如图,今天在网上看大神说在FB中可以用到变址





问题是添加完后,怎么在梯形图里面调用它?试了下各种格式都没成功  

之所以用到变址是因为在FB块中用到除法,除法的结果和余数是相邻地址两个D,需要用到余数
又或者有其他办法实现吗?

方法很多,感谢!
1、变址(必须用DDIV,基于数组的数据类型是Double):  

2、内嵌ST,用MOD_E函数
[ 此帖被wangdai527在2019-05-08 15:09重新编辑 ]
mall9002
级别: 略有小成
精华主题: 0
发帖数量: 137 个
工控威望: 248 点
下载积分: 921 分
在线时间: 182(小时)
注册时间: 2017-11-30
最后登录: 2024-10-28
查看mall9002的 主题 / 回贴
1楼  发表于: 2019-05-08 00:14
搞不懂你要问啥,取余数有指令mod.你建的是一个两元素的一维数组,和变址有什么关系!  ddiv(TURE,D1,D3,D5) D1/D3=D5;MOD_E(TRUE,D1,D3,D10)  D10存放D1除以D3的余数。
另外fx3的变址用V,Z.如D0Z3,如果Z3值是K0,那么D0Z3代表D0,如果Z3值为K5那么D0Z3代表D5,详细的看一下软元件手册。变值用在指令使用次数有限制的情况或者需要变化数据内容的情况下。
[ 此帖被mall9002在2019-05-08 00:31重新编辑 ]
mall9002
级别: 略有小成
精华主题: 0
发帖数量: 137 个
工控威望: 248 点
下载积分: 921 分
在线时间: 182(小时)
注册时间: 2017-11-30
最后登录: 2024-10-28
查看mall9002的 主题 / 回贴
2楼  发表于: 2019-05-08 14:37
图片:
图片:
引用
引用第5楼wangdai527于2019-05-08 14:12发表的  :

三菱没有MOD指令,三菱里面DIV(D1 D3 D5),执行的是D1/D3=D5,余数会放在D6。我想在FB块的梯形图里面用到这相邻两个D,但FB块局部定义只能定义单个数据类型。所以寻求变址的方式,去找余数。


简单工程中确实是没有直接取余
选择标签的话,内嵌ST可以做。
结构化工程中有MOD函数直接使用
本帖最近评分记录:
  • 下载积分:+3(wangdai527)
    mall9002
    级别: 略有小成
    精华主题: 0
    发帖数量: 137 个
    工控威望: 248 点
    下载积分: 921 分
    在线时间: 182(小时)
    注册时间: 2017-11-30
    最后登录: 2024-10-28
    查看mall9002的 主题 / 回贴
    3楼  发表于: 2019-05-08 14:53
    图片:
    图片:
    图片:
    引用
    引用第10楼wangdai527于2019-05-08 14:43发表的  :

    好吧,还没用过结构化工程......一直只用了梯形图


    简单工程下的内嵌st在 FB里也可以使用。你看看