EXTRACT(位提取指令)
- 位置
sys_utils.aclib
- 功能说明
位提取指令,将输入变量IN的第N位输出,N从0开始计数。
- 参数说明
输入参数 | 数据类型 | 描述 | 常量 |
---|---|---|---|
IN | DWORD | 输入值 | × |
N | BYTE | 输入值待提取的位数,从0开始 | × |
输出参数 | 数据类型 | 描述 | 常量 |
---|---|---|---|
EXTRACT | BOOL | 第N位值 | × |
示例:提取常量81(二进制:2#1010001)的第4位,输出值为TRUE。
- CFC示例
ST示例
LD示例
IL示例
PUTBIT
- 位置
sys_utils.aclib
- 功能说明
位赋值指令,将输入值IN的第N位置为指定值BITVALUE,N从0开始计数。
- 参数说明
输入参数 | 数据类型 | 描述 | 常量 |
---|---|---|---|
IN | DWORD | 输入值 | × |
N | BYTE | 待修改位,从0开始 | × |
BITVALUE | BOOL | 指定位的值 | × |
输出参数 | 数据类型 | 描述 | 常量 |
---|---|---|---|
PUTBIT | DWORD | 输出值 | × |
示例
CFC示例
ST示例
LD示例
IL示例
PACK
- 位置
sys_utils.aclib
- 功能说明
位整合指令,将八个 BOOL 类型的字节输入 BIT0, BIT1, ..., BIT7 转化为 BYTE。与UNPACK指令相反。
- 参数说明
输入参数 | 数据类型 | 描述 | 常量 |
---|---|---|---|
BIT0 | BOOL | 第0位值 | × |
BIT1 | BOOL | 第1位值 | × |
BIT2 | BOOL | 第2位值 | × |
BIT3 | BOOL | 第3位值 | × |
BIT4 | BOOL | 第4位值 | × |
BIT5 | BOOL | 第5位值 | × |
BIT6 | BOOL | 第6位值 | × |
BIT7 | BOOL | 第7位值 | × |
输出参数 | 数据类型 | 描述 | 常量 |
---|---|---|---|
PACK | BYTE | 整合值 | × |
示例:将 TRUE , FALSE , TRUE , FALSE , FALSE , TRUE , FALSE , FALSE进行整合,结果是37(2#100101)
CFC示例
ST示例
LD示例
IL示例
UNPACK
- 位置
sys_utils.aclib
- 功能说明
位拆分指令,将输入IN的第7位->第0位依次取出赋值给BIT7->BIT0。与PACK指令相反。
- 参数说明
输入参数 | 数据类型 | 描述 | 常量 |
---|---|---|---|
IN | BYTE | 输入值 | × |
输出参数 | 数据类型 | 描述 | 常量 |
---|---|---|---|
BIT0 | BOOL | 第0位值 | × |
BIT1 | BOOL | 第1位值 | × |
BIT2 | BOOL | 第2位值 | × |
BIT3 | BOOL | 第3位值 | × |
BIT4 | BOOL | 第4位值 | × |
BIT5 | BOOL | 第5位值 | × |
BIT6 | BOOL | 第6位值 | × |
BIT7 | BOOL | 第7位值 | × |
示例:常量37(2#100101),位拆分后,BIT0~BIT1的值:TRUE , FALSE , TRUE , FALSE , FALSE , TRUE , FALSE , FALSE
CFC示例
ST示例
LD示例
IL示例
SIZEOF
- 功能说明
此运算符是IEC 61131-3标准的一个扩展,用于获取变量需要的字节数量。SIZEOF 运算符总是产生一个UDINT的输出。
示例:如下数组,SIZEOF结果是16
CFC示例
ST示例
LD示例
IL示例