qinchenglim
级别: 论坛先锋
精华主题: 0
发帖数量: 1213 个
工控威望: 1313 点
下载积分: 3923 分
在线时间: 738(小时)
注册时间: 2009-06-09
最后登录: 2024-05-07
查看qinchenglim的 主题 / 回贴
楼主  发表于: 2014-06-10 19:54
当使用GX Work2内嵌ST的时候怎么样实现32位计算?比如怎么样实现如下的计算:D0D1=(D4D5+D6D7)*D8D9
用PLC顺空程序实现上述运算我会的。先谢谢大家!
cvlsam
富士低压,POD(觸摸屏),PLC专卖
级别: VIP会员

精华主题: 3 篇
发帖数量: 6745 个
工控威望: 37100 点
下载积分: 9816 分
在线时间: 9414(小时)
注册时间: 2006-09-13
最后登录: 2024-06-04
查看cvlsam的 主题 / 回贴
1楼  发表于: 2014-06-10 20:41
定义变量A    数据类型DINT  数据地址为D0
定义变量B   数据类型DINT  数据地址为D4
定义变量C   数据类型DINT  数据地址为D6
定义变量D   数据类型DINT  数据地址为D8

然后在程序中写   A:=(B+C)*D;
本帖最近评分记录:
  • 下载积分:+3(勤工俭学) 热心助人!
  • 下载积分:+3(qinchenglim) 热心助人!
    qinchenglim
    级别: 论坛先锋
    精华主题: 0
    发帖数量: 1213 个
    工控威望: 1313 点
    下载积分: 3923 分
    在线时间: 738(小时)
    注册时间: 2009-06-09
    最后登录: 2024-05-07
    查看qinchenglim的 主题 / 回贴
    2楼  发表于: 2014-06-10 20:59
    引用
    引用第1楼cvlsam于2014-06-10 20:41发表的  :
    定义变量A    数据类型DINT  数据地址为D0
    定义变量B   数据类型DINT  数据地址为D4
    定义变量C   数据类型DINT  数据地址为D6
    定义变量D   数据类型DINT  数据地址为D8

    .......

    请问1楼的大侠,如何定义变量A,数据地址位D0?我打开了局部标签的设置画面,里面没有办法制定数据地址。

    rockyhuo
    专业制造全伺服高速卫生巾机器
    级别: 论坛先锋

    精华主题: 0
    发帖数量: 1603 个
    工控威望: 1921 点
    下载积分: 4443 分
    在线时间: 436(小时)
    注册时间: 2008-07-14
    最后登录: 2024-04-09
    查看rockyhuo的 主题 / 回贴
    3楼  发表于: 2014-06-11 00:22
    要在全局标签才可以指定具体的地址
    本帖最近评分记录:
  • 下载积分:+2(qinchenglim) 热心助人!
  • 变频器中心放卷,可以稳定达到280M/分钟线速度.
    全伺服卫生巾、尿裤、护垫机机器项目合作,承接多功能卫生巾中包机制造,尿裤垛码机制造
    QQ:84818626
    电话:18923140420
    qrklove
    级别: 家园常客
    精华主题: 0
    发帖数量: 494 个
    工控威望: 732 点
    下载积分: 2007 分
    在线时间: 482(小时)
    注册时间: 2008-11-01
    最后登录: 2024-04-23
    查看qrklove的 主题 / 回贴
    4楼  发表于: 2014-06-11 06:24
    留个记号,见过这种方法的编程
    killerjack10
    级别: 探索解密
    精华主题: 0
    发帖数量: 12 个
    工控威望: 129 点
    下载积分: 980 分
    在线时间: 19(小时)
    注册时间: 2014-05-23
    最后登录: 2014-06-12
    查看killerjack10的 主题 / 回贴
    5楼  发表于: 2014-06-11 10:36
    應在local label內定義就可以不需要定義在globel label內
    除非是人機也要讀取的部分才需要定義在globel label之中
    236717409
    级别: 略有小成
    精华主题: 0
    发帖数量: 166 个
    工控威望: 291 点
    下载积分: 12017 分
    在线时间: 139(小时)
    注册时间: 2011-08-04
    最后登录: 2024-04-18
    查看236717409的 主题 / 回贴
    6楼  发表于: 2014-06-14 10:37
    多谢各位高手啦,受益啦..
    qinchenglim
    级别: 论坛先锋
    精华主题: 0
    发帖数量: 1213 个
    工控威望: 1313 点
    下载积分: 3923 分
    在线时间: 738(小时)
    注册时间: 2009-06-09
    最后登录: 2024-05-07
    查看qinchenglim的 主题 / 回贴
    7楼  发表于: 2014-06-18 21:38
    引用
    引用第3楼rockyhuo于2014-06-11 00:22发表的  :
    要在全局标签才可以指定具体的地址

    请教这位大侠,不定义标签的话是不是无法实现32位的计算?
    16位寄存器计算就可以直接这样使用:D0=(D1+D2)*D3  
    但是32位的计算就不知道怎么表达了?我想应该有简单的方法,只是我们没有找到罢了。
    daihdn
    级别: 略有小成
    精华主题: 0
    发帖数量: 134 个
    工控威望: 231 点
    下载积分: 602 分
    在线时间: 71(小时)
    注册时间: 2009-08-28
    最后登录: 2023-09-11
    查看daihdn的 主题 / 回贴
    8楼  发表于: 2015-04-04 18:45
    弱弱的问一句是不是应该这样写D1D0=(D5D4+D7D6)*D9D8
    DADD  D4  D6  D100
    DMUL  D100  D8  D0
    不知道这样可不可以,但要防止D1D0溢出,不要超过32位寄存器最大值
    雪清风
    级别: 探索解密
    精华主题: 0
    发帖数量: 50 个
    工控威望: 117 点
    下载积分: 692 分
    在线时间: 35(小时)
    注册时间: 2013-08-29
    最后登录: 2022-04-23
    查看雪清风的 主题 / 回贴
    9楼  发表于: 2015-04-04 22:00
    應在local label內定義就可以不需要定義在globel label內
    除非是人機也要讀取的部分才需要定義在globel label之中DADD  D4  D6  D100
    DMUL  D100  D8  D0