在自动化控制系统中,数据格式的灵活转换与恰当展示是至关重要的环节。
在可编程逻辑控制器(PLC)的应用环境中,数据的呈现方式多种多样,包括但不限于二进制、八进制、十进制、十六进制、BCD码以及ASCII码等编码形式。以三菱FX3系列PLC为例,其内部数据寄存器普遍为16位结构,意味着单个寄存器能够容纳16位二进制数据。若需处理32位的数据量,则必须采用两个连续的数据寄存器进行联合存储。这里强调的“位数”特指二进制位数,同时也要理解其对应的十进制数值。对于初次接触PLC或对计算机工控知识不太熟悉的操作人员而言,深刻理解处理器所提及的“位数”概念至关重要,必须明确所有运算操作均以二进制形式执行,因此熟练掌握二进制是基础。
二进制数据
在日常操作中,我们通常以十进制形式输入或监控数据。例如,当我们在PLC监控界面观察数据时,无论系统以何种编码格式显示,我们所看到的数据通常都是十进制表示的。这一点需要特别注意,因为在进行通讯交互时,发送或接收的指令代码或数据响应往往采用十六进制或ASCII码格式。然而,在PLC监控界面中,这些非十进制数据会被自动转换为十进制形式展示,这与我们期望看到的原始指令代码或返回值可能存在差异。
对于初学者而言,数据相关的知识领域需要投入更多精力去学习和掌握,特别是对于那些没有计算机专业背景的电工技术人员。
在PLC系统中,能够存储数据的元件包括字元件(如数据寄存器D)以及其他位元件(如M、Y)。通过组合多个位元件,可以表示特定的数据状态,这种用法在PLC编程中十分常见,例如K4M10、K2Y0等表达式。接下来,我们将通过人机界面演示数值制式的转换操作。
人机界面数制转换
在人机交互界面上,可以对16位和32位数据进行二进制、十六进制以及十进制之间的相互转换。使用MOV指令可以将字元件中的数值以位元件组合的形式进行表达。例如,执行MOV D0 K1M0指令,其中K1代表连续4个位元件,该操作将数据寄存器D0(以十六进制形式存储)中的低4位二进制状态传输到M0至M3这4个连续的位元件中。同理,K2代表连续8个位元件。通过这种方式,可以有效地帮助用户理解数据寄存器的内部存储结构。
在上面提到的示例中,M15位被视为符号位,对于正数其值为0,而对于负数其值为1。因此,16位数据的有效范围是-2^15至+2^15,即-32768至+32768。同理,32位数据的范围则为-2^31至+2^31-1,即-2147483648至+2147483647。
现在,我们随意选择一个数值25149进行演示:
MOV D0 K1M0
MOV D0 K2M0
MOV D0 K3M0
MOV D0 K4M0
根据上图所示的结果,我们可以发现数据寄存器D的二进制表示与位元件的状态显示完全一致。也就是说,当我们将D寄存器用KnM的形式进行表达时,二进制位中的“1”对应着相应位元件的“导通”状态。在PLC的内部数据寄存器中,也采用了类似的存储构造。接下来,我们将探讨负数在显示时的特殊情况,通过对比-1和+1的显示结果来揭示其中的奥秘。
-1的显示
+1的显示