数据寄存器是用于存储数值数据的软件组件,均为16位数据(最高位表示正负符号)。将两个数据寄存器和文件寄存器组合后,可以保存32位(最高位表示正负符号)的数值数据。
关于FX3G数据寄存器D的相关信息:
单个(16位)数据寄存器和文件寄存器能够处理从-32768到+32767(2^15)的数值。通常情况下,会使用应用指令来读写数据寄存器的值。也可以通过人机界面、显示模块和编程工具进行直接读写操作。
当使用两个相邻的数据寄存器和文件寄存器来显示32位数据时,数据寄存器的高位编号较大,低位编号较小。这样,可以处理从-2,147,483,648到+2,147,483,647(2^31)的数值。
对于32位数据的处理,当指定了低位侧(如D0),高位侧将自动占用紧接的编号(如D1)。在指定软元件编号时,建议低位侧采用偶数编号,以兼顾人机界面、显示模块和编程工具的监控功能。
关于数据传输和HMI显示可能遇到的问题:
在大量数据传输时,于触屏上操作需特别注意。例如,HMI中的D0、D1、D200、D201等是16位显示,而D10、D11、D20、D50等则是32位显示。这意味着,当在触摸屏上显示32位数据如D10时,会以D11D10的形式呈现;而16位数据如D0则只会显示其本身的值。
不同的寄存器类型——一般寄存器和停电保持寄存器——也有所区别。如D50和D250使用DMOV指令进行数据传输,而其他则使用MOV指令。若尝试将D100中的数据传输至上述寄存器并观察其变化,会发现不同的数据和传输方式会导致寄存器内数据的改变方式和结果有所不同。
具体地:
(1) 发送一个16位数据至D11和D211时,D10接收到的数据会发生相应变化。这是由于数据传输的二进制转换导致的。例如,当D11的值为2(二进制表示为10)时,与D10的低16位值(也设为2,二进制为10)相加,按照二进制运算规则,最终结果会变成32位数的131074。
(2) 发送一个32位数据如262148时,D10和D50能够正确显示数据。这是由于DMOV指令的正确应用以及32位数据的正确传输导致的。
(3) 当发送一个超过显示范围的32位数据如70000时,部分寄存器会显示超出其显示范围的数值。这是由于数据的二进制转换和传输过程中的处理方式所导致的。
对于PLC监控方面:
在PLC编程和HMI显示过程中需特别注意上述问题。相关演示视频可参考以下链接进行观看。