登录
首页
PLC论坛
PLC论坛
回帖
发帖
正文
主题:请教一个问题,配方DATA是int数组,有些当成real使用,现在有个问题。如何把两个连续的变量变成Real?
点击:806 回复: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
工控新闻
和利时闪耀2025全球数字经济大会
AI与机器人技术融合全面提速 ——2025年德国慕尼黑自动化展观察
图尔克灵活可靠 | 分布式控制的模块化生产线【一】
汇川技术能源安规实验室获TÜV南德认可实验室资质
天硕工业级M.2 NVMe SSD固态硬盘三防涂层适配户外严苛工作环境
2025研华智能系统产业伙伴峰会成功举办
新加坡制造业增速放缓行业分化
机器人企业扎堆冲刺港股
更多新闻资讯