合信论坛

快捷导航
查看: 135|回复: 0

Codesys 属性:global_init_slot

[复制链接]

6

主题

6

帖子

122

积分

注册会员

Rank: 1

积分
122
发表于 2025-12-21 18:56:52 | 显示全部楼层 |阅读模式
在codesys 中,pragma 定义了 POU 和全局变量列表的初始化顺序:GVL 或 POU 中的变量从上到下初始化。如果有多个全局变量列表,则不定义初始化顺序。
但是,如果列表之间存在依赖关系,则必须自己定义初始化顺序。您可以将定义的初始化槽分配给GVL 或 POU 'global_init_slot' 属性。

例如:GLV中的NowTime引用POU中的stdNow
1.jpg 2.jpg
直接编译时会出现报错,这是因为 GVL 和 POU 在编译时都分配有一个称为“槽号”的 ID,该编号决定了它们的初始化顺序。默认情况下,POU 的槽号为 50000,而 GVL 的槽号为49910。由于槽号较小的对象会先被编译初始化,而 GVL 中的变量 NowTime 依赖于定义在 POU 中的 stdNow,因此编译时会因依赖顺序错误而报错。
3.jpg
通过添加 global_init_slot 属性,可以手动调整其编译初始化顺序,从而避免此类编译错误。
4.jpg

句法:
{attribute 'global_init_slot' := '<slot>'}
插入位置
pragma 始终作用于整个 GVL 或 POU,因此它必须位于 VAR_GLOBAL 或 POU 声明。
<slot>
整数值,定义调用顺序中的位置
POU(程序、功能块)的默认值为 50000。GVL 的默认值为 49990。较低的值意味着较早的初始化。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

客服热线
400-700-4858 周一至周五:09:00 - 18:00
深圳市南山区打石一路深圳国际创新谷6栋A座9层

深圳市合信自动化技术有限公司(简称“合信技术”)成立于2003年,高新技术企业,专注于工业自动化产品的研发、生产、销售和技术服务,依靠高质量、高性能的自动化控制产品与方案为客户创造最大价值,立志于成为全球领先的工业自动化解决方案供应商。

Archiver|手机版|小黑屋|COTRUST Inc. ( 粤ICP备13051915号 )

GMT+8, 2026-1-10 01:10 , Processed in 0.183566 second(s), 26 queries .

快速回复 返回顶部 返回列表