指令{attribute 'pack_mode'} 定义模式一个数据结构在被分配时是打包的。这个属性不得不被放置在数据结果的顶端并且将影响整体结构的打包。
句法:
{attribute 'pack_mode' := '<value>'}
模板 <value>被包含在一个单引号中,识别一个以下的有效值替代的值:
值 |
分配打包模式 |
---|---|
0 |
对齐,无记忆空白 |
1 |
1-位-对齐(与对齐相同) |
2 |
2-位-对齐, 即内存空白的最大尺寸是 1 位 |
4 |
4-位-对齐, 即内存空白的最大尺寸是 3位 |
8 |
8-位-对齐, 即内存空白的最大尺寸是 7位 |
例子:
{attribute 'pack_mode' := '1'}
TYPE myStruct:
STRUCT
Enable: BOOL;
Counter: INT;
MaxSize: BOOL;
MaxSizeReached: BOOL;
END_STRUCT
END_TYPE
变量数据类型 myStruct将被初始化对齐:如果组件地址 Enable是 0x0100 ,那么组件Counter将跟随地址0x0101, MaxSize 在 0x0103 和MaxSizeReached在 0x0104. 'pack_mode'=2 Counter 将在 0x0102, MaxSize 在0x0104 和 MaxSizeReached在0x0105.
![]() |
属性也可以被应用于POUs。不过你要小心它的应用程序,因为POUS内部指针的最终存在的。 |