登录
首页
PLC论坛
PLC论坛
回帖
发帖
正文
主题:请教一个问题,配方DATA是int数组,有些当成real使用,现在有个问题。如何把两个连续的变量变成Real?
点击:833 回复:5
楼主
编辑
引用
管理
bnnyygy
例如,DATA[20]+DATA[21],其实是当成浮点用。
现在定义一个or_VAR浮点变量,
我想or_VAR:=DATA[20];
但是实际运行肯定不正常,问问大佬,如何实现?
23-04-13 13:03
1楼
编辑
引用
管理
bnnyygy
DATA数据块 22+23 数组,(绝对地址是D1922+D1923},上位机是浮点使用的,
现在就是想FB-FB传递,绝对地址当然可以解决,不知道ST内有没有办法解决这个问题?
23-04-13 13:14
2楼
编辑
引用
管理
cvlsam
引用
bnnyygy
在 2023/4/13 13:03:44 发言
【内容省略】
1、对于支持绝对地址编程的PLC,你可以使用两个不同数据类型的数组,对应相同的地址。
2、对于支持泛型编程的品牌,你可以使用变体数据类型Variant,例如西门子的博图(仅支持1200,1500系列)
3、如果使用Codesys原生的,你可以看看ANY类型,如果是二次开发的,你可以参考厂家的手册看是否支持这个功能。
Good Luck~
23-04-13 13:49
3楼
编辑
引用
管理
bnnyygy
直接用结构体,配方FB重新写.也更规范方便.
最后修改:
2023/4/13 13:57:22
23-04-13 13:57
4楼
编辑
引用
管理
bnnyygy
哎呀,这个螃蟹不好吃呀
定义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,理论上是同类型的
23-04-13 15:16
5楼
编辑
引用
管理
bnnyygy
哎,太难了,解决了.
23-04-13 15:29
工控新闻
国产IEC61499工业控制软件AIOSYS发布,重构智能制造技术体系
首届“中控杯”工业AI创新挑战赛在杭举行
WRC 2025开普勒K2大黄蜂实力吸睛,商业化进程继续加速
斯巴鲁工厂测试全固态电池,用于工业机器人和PLC
台达发表《数据中心800V直流供电技术白皮书》
国内首个电气行业AI大模型通过国家网信办备案
佰邦科技携手卡奥斯共建绿色环保智能工厂
上海:加快推动“AI+制造”发展,加快机器人应用
更多新闻资讯