有的小伙伴肯定会有疑问,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的代表是断电保持寄存器。

往事堪堪亦澜澜,前路漫漫亦灿灿。