问题:TwinCAT 3内存对齐规则
回答:

1、TwinCAT 3中的PLC编程语言可以支持1、2、4、8字节内存对齐,使用{attribute 'pack_mode' := '<value>'}实现。该命令只影响一个结构体的对齐方式,因此多个结构体可以每个来指定对齐方式

2、当没有指定对齐字节数时,按照结构体内占内存字节数最大的变量对齐

3、当指定对齐的字节数大于结构体内占内存字节数最大的变量时,按后者对齐

4、当指定对齐的字节数小于结构体内占内存字节数最大的变量时,按前者对齐

ps C#读取结构体出现错误FatalExecutionEngineError,代码0x00000005时对其方式改为1字节对齐。

https://infosys.beckhoff.com/english.php?content=../content/1033/tc3_plc_intro/2529746059.html&id=

如果需要使用结构体来对应对方使用位数据时,不能使用bool类型声明,因为它占用的是BYTE,必须使用bit这个类型。

https://infosys.beckhoff.com/content/1033/tc3_plc_intro/2529481355.html?id=5034243832068230001





数据维护:周耀纲
编辑时间:6 3月 2023

如果此回答有不清楚或错误的地方,请扫描页面底部二维码添加微信公众号与我们联系,我们努力给您满意的答复。