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

PLC论坛

抖音 德嘉 泓格论坛 FLIR红外热像论坛
工控论坛首页 PLC论坛 → 浏览主题: 请教一个问题,配方DATA是int数组,有些当成real使用,现在有个问题。如何把两个连续的变量变成Real?
发表新帖 回复该主题
回帖:5个,阅读:492 [上一页] [1] [下一页]
* 帖子主题:

请教一个问题,配方DATA是int数组,有些当成real使用,现在有个问题。如何把两个连续的变量变成Real?

分享到
20063
bnnyygy
文章数:5723
年度积分:729
历史总积分:20063
注册时间:2012/3/15
发站内信
2018论坛分享达人
发表于:2023/4/13 13:03:44
#0楼
例如,DATA[20]+DATA[21],其实是当成浮点用。

现在定义一个or_VAR浮点变量,

我想or_VAR:=DATA[20];

但是实际运行肯定不正常,问问大佬,如何实现?
20063
bnnyygy
文章数:5723
年度积分:729
历史总积分:20063
注册时间:2012/3/15
发站内信
2018论坛分享达人
发表于:2023/4/13 13:14:18
#1楼
附件 (GN(1%2OXQHV9】BI{QX~{AW.jpg



DATA数据块 22+23 数组,(绝对地址是D1922+D1923},上位机是浮点使用的,


现在就是想FB-FB传递,绝对地址当然可以解决,不知道ST内有没有办法解决这个问题?
36498
cvlsam 版主
文章数:12298
年度积分:850
历史总积分:36498
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2023/4/13 13:49:24
#2楼
以下是引用bnnyygy2023/4/13 13:03:44的发言:
例如,DATA[20]+DATA[21],其实是当成浮点用。

现在定义一个or_VAR浮点变量,

我想or_VAR:=DATA[20];

但是实际运行肯定不正常,问问大佬,如何实现?

1、对于支持绝对地址编程的PLC,你可以使用两个不同数据类型的数组,对应相同的地址。
附件 workpicture1.jpg

附件 workpicture2.jpg

附件 workpicture3.jpg

2、对于支持泛型编程的品牌,你可以使用变体数据类型Variant,例如西门子的博图(仅支持1200,1500系列)
3、如果使用Codesys原生的,你可以看看ANY类型,如果是二次开发的,你可以参考厂家的手册看是否支持这个功能。

Good Luck~
20063
bnnyygy
文章数:5723
年度积分:729
历史总积分:20063
注册时间:2012/3/15
发站内信
2018论坛分享达人
发表于:2023/4/13 13:57:11
#3楼
直接用结构体,配方FB重新写.也更规范方便.
[此贴子已经被作者于2023/4/13 13:57:22编辑过]
20063
bnnyygy
文章数:5723
年度积分:729
历史总积分:20063
注册时间:2012/3/15
发站内信
2018论坛分享达人
发表于:2023/4/13 15:16:32
#4楼
哎呀,这个螃蟹不好吃呀

定义2个结构体:
S1:
名称:类型
i_VAR:INT
S2:
名称:类型
R_VAR:REAL
S_1:S1


程序重定义数组变量
DATAOUT: 类型 S1
DATA:0..28,类型 S2


这样表述:

DATAOUT:=DATA[0].S_1;


会提示: 变量地址编码无效.

DATAOUT 类型是S1,DATA[0].S_1类型也是S1,理论上是同类型的表情
20063
bnnyygy
文章数:5723
年度积分:729
历史总积分:20063
注册时间:2012/3/15
发站内信
2018论坛分享达人
发表于:2023/4/13 15:29:54
#5楼
哎,太难了,解决了.
工控学堂推荐视频:

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

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

46.8003