四、计数器和高速计数器[C]
计数器可以分为16位计数器和32位计数器。两种计数器都有一般用和停电保持用两种类型。计数器编号不用于计数器功能时可以当做数据寄存器用来保存数据。
16位计数器只能增计数,设定值范围为1~32767;32位计数器可以切换为增计数或减计数,设定值范围为-214783648~214783647。
计数器对PLC的内部信号X、Y、M、S、C等触点的动作进行循环扫描并计数,其响应速度根据PLC的扫描时间可推算通常在10Hz以下。但很多情况下输入信号的频率都会大于这个数值,这时就要用到高速计数器,高速计数器的计数采用中断处理,与PLC扫描时间无关,可以达到数KHz的计数。
高速计数器必须与外部端子X0~X7配合使用,并且根据高速计数器编号占用输入点的情况,一旦X点被占用后该点不能再用于其它用途。高速计数器编号与输入点的对应情况如下表:
五、数据寄存器[D]
数据寄存器是存储数值数据的软元件,这些寄存器都是16位的,最高位为符号位,其余15位代表数值大小。两个连续的数据寄存器组合后可存储32位数据,在32位指令中只需指定低16位的数据寄存器,其紧接着的数据寄存器就会被自动占为高16位。在编程时需注意这点,以免重复使用数据寄存器造成逻辑混乱。
16位数据寄存器可以处理的数据范围为-32768~+32767,32位数据寄存器可以处理的数据范围为-2147483648~+2147483647。
数据寄存器也可以分为一般用、停电保持用和特殊用三种类型。
1. 一般用数据寄存器
数据寄存器中写入数据后,只要不再写入其他数据或被复位指令复位就不会发生变化,但在PLC从RUN状态拨到STOP状态或是PLC停电后所有数据都会被清零。但如果驱动了特殊辅助继电器M8033,则PLC由RUN变为STOP时数据也不会变化。
2. 停电保持数据寄存器
停电保持型的数据寄存器可以在PLC由RUN变为STOP时以及PLC断电时保持其存储内容,该类数据寄存器必须通过重新写入数据或使用复位指令改变其内容。
3. 特殊用数据寄存器
特殊用数据寄存器和特殊辅助继电器一样,其代表的功能都已在PLC中设定好,通过修改其数值可以实现特定的功能。
以下为一些常用的特殊数据寄存器:
D8000 监视定时器
D8010 PLC扫描时间
D8014 PLC实时时钟-分
D8015 PLC实时时钟-时
D8016 PLC实时时钟-日
D8030 模拟电位器VR1数值
D8031 模拟电位器VR2数值
D8039 恒定扫描时间
D8120 通讯格式设定
六、变址寄存器[V][Z]
变址寄存器V和Z同普通的数据寄存器一样,是进行数据数值储存的16位寄存器,其编号为V0~V7和Z0~Z7共有16个。这种寄存器除了和普通的数据寄存器有相同的使用方法外,在应用指令的操作数中还可以同其他的软元件编号或数值组合使用,从而在程序中更改软元件的编号和数值的内容。
对于FX1S、FX1N、FX2N系列PLC,LD、AND、OUT等基本顺空指令或步进梯形图指令的软元件编号不能同变址寄存器组合使用,而在FX3U和FX3G系列PLC中则允许组合使用。
当变址寄存器与32位的应用指令中的软元件配合使用时,直接指定Z的编号即可,PLC会自动将同一编号的V、Z组合成32位编制寄存器,V作为高位、Z作为低位使用。
七、指针[P][I]
P为分支用指针,它用来作为分支的标识,与跳转指令CJ或子程序调用指令CALL组合使用,使程序扫描到这些指令时会转移到该标识处继续执行。P63是一个特殊的分支用指针,它表示使用CJ指令时直接跳到END,所以该指针不能用于标识。
I为中断用指针,它用来作为中断程序的标识,与各种中断配合使用驱动中断程序。FX系列的中断主要有输入中断、定时器中断和计数器中断三种类型。只有X0~X5这六个输入点具备输入中断功能,同时这些输入点还被指定为高速计数器和SPD等指令时的专用输入点,故使用这三种指令时需注意其编号占用不能相互冲突。
八、数值处理-常数
FX系列PLC的数值类型主要包括以下几种:
1. 十进制数(DEC: Decimal)
主要用于定时器和计数器的设定值(数字前加K),辅助继电器M、定时器T、计数器C、状态S等的编号,执行应用指令操作数中的数值与指令动作(数字前加K)。
2. 十六进制数(HEX:Hexadecimal)
用途与十进制数一样,用于指定应用指令中的操作数与指定动作(数字前加H)。
3. 二进制数(BIN:Binary)
在PLC内部所有数值都以二进制的形式进行处理。对于负数而言,PLC内部以补码来表现。
4. 八进制数(OCT:Octal)
PLC的输入、输出继电器软元件编号以八进制数值进行分配。
5. BCD码(BCD:Binary Code Decimal)
BCD码就是将构成十进制数每位上0~9的数值以四位二进制表示的形式。
6. 实数(浮点数)
通过浮点数运算可以提高运算结果的精度。PLC内部以二进制浮点数进行浮点运算,但可以采用10进制浮点数进行监控。
二进制浮点数使用编号连续的一堆数据寄存器进行存储,占用32位,最高位为符号位。
对于用户而言,这种二进制浮点数的表示形式不易理解,所以可以将其转换成十进制浮点数,十进制浮点数也占用编号连续的一堆数据寄存器,但它分为尾数和指数两部分,例如对于十进制浮点数(D1,D0)而言: