有的小伙伴肯定会有疑问,C语言中的数据怎么和PLC的数据寄存器D、HD关联到一起呢?很简单,只需按照下面的代码来即可。
#define UD *(INT16U *)&D // 16位无符号整数
#define SD *(INT16S *)&D // 16位有符号整数
#define UDD *(INT32U *)&D // 32位无符号整数
#define SDD *(INT32S *)&D // 32位有符号整数
#define FW *(FP32 *)&D // 单精度浮点
#define FFW *(FP64 *)&D // 双精度浮点
#define HUD *(INT16U *)&HD // 16位无符号整数
#define HSD *(INT16S *)&HD // 16位有符号整数
#define HUDD *(INT32U *)&HD // 32位无符号整数
#define HSDD *(INT32S *)&HD // 32位有符号整数
#define HFW *(FP32 *)&HD // 单精度浮点
#define HFFW *(FP64 *)&HD // 双精度浮点
只需要在代码中添加如上宏定义即可。
解释:HSDD是一个32位有符号整数。HSDD[0]代表由HD0和HD1组成,是一个32位有符号整数断电保持寄存器。
SDD是一个32位有符号整数。SDD[0]代表由D0和D1组成,是一个32位有符号整数寄存器。
前面有H的代表是断电保持寄存器。