在西门子PLC的许多指令中,都可以使用常数值。常数可以是字节、字或者双字。西门子PLC可以二进制数的形式存储常数,也可以用十进制数、十六进制数、BCD码等几种形式表示。
(1)二进制数
二进制数只有两个符号,0和1,按照每两进一的规则进行运算。0和1用于表示开关值(或数字值)的两种不同状态,如触点的断开和连接、线圈的通电和断电等。
如果二进制数的某一位为1,则表示梯形图中对应位编程元件(如位存储器M或输出过程图像Q)的线圈“上电”,其常开触点接通,其常闭触点断开,表示编程元件处于1状态或接通;如果该位为0,则相应编程元件的线圈或触点的状态与上述相反,编程元件被称为处于0状态或关断状态。在编程手册和软件中,位编程元素的1状态和0状态通常用真和表示。
二进制常量用2#表示,例如2#1111_0110_1001_0001是16位二进制常量。
(2)十六进制数
十六进制数的每个数字有16个可能的数字,即0 ~ 9和A ~ F(对应十进制数的10 ~ 15)。根据每十六进制一的规则,每个数字占二进制数的4位。
十六进制常量表示法:
①B#16#、W#16#和DW#16#分别用于表示十六进制(16#)字节(B#)、字(W#)和双字(DW#)常量。
②用字符H表示十六进制常量,例如W#16#3B可以表示为3BH。
(3) BCD码
BCD码是用二进制数表示十进制数,每个十进制数用4位二进制数表示。BCD码其实是一个十六进制数,16个组合用4位二进制数表示,而BCD码只用其**个组合表示0~9,其余六个组合(1010 ~ 1111)不使用。例如,十进制数298对应的BCD码的二进制表示为2#0000 0010 1001 1000,也可以表示为W#16#298。
为了满足工业逻辑控制的要求,同时结合计算机控制的特点,PLC的工作方式采用不断循环的顺序扫描工作方式。每一次扫描所用的时间称为扫描周期或工作周期。CPU从一条指令执行开始,按顺序逐条地执行用户程序直到用户程序结束,然后返回一条指令开始新的一轮扫描。PLC就是这样周而复始地重复上述循环扫描的。PLC工作的全过程可用图1所示的运行框图来表示。整个过程可分为以下几个部分:
一部分是上电处理。PLC上电后对系统进行一次初始化,包括硬件初始化和软件初始化,停电保持范围设定及其他初始化处理等。
二部分是自诊断处理。PLC每扫描一次,执行—次自诊断检查,确定PLC自身的动作是否正常。如CPU、电池电压、程序存储器、I/O和通讯等是否异常或出错,如检查出异常时,CPU面板上的LED及异常继电器会接通,在特殊寄存器中会存入出错代码。当出现致命错误时,CPU被强制为STOP方式,所有的扫描便停止。
三部分是通讯服务。PLC自诊断处理完成以后进入通讯服务过程。首先检查有无通讯,如有则调用相应进程,完成与其他设备的通讯处理,并对通讯数据作相应处理;然后钟、特殊寄存器新处理等工作。
四部分是程序扫描过程。PLC在上电处理、自诊断和通讯服务完成以后,如果工作选择开关在RUN位置,则进人程序扫描工作阶段。先完成输入处理,即把输入端子的状态读入输入映像寄存器中,然后执行用户程序,后把输出处理刷新到输出锁存器中。
在上述几个部分中,通讯服务和程序扫描过程是PLC工作的主要部分,其工作周期称为扫描周期。可以看出扫描周期直接影响控制信号的实时性和正确性,为了确保控制能正确实时地进行,在每个扫描周期中,通讯任务的作业时间必须被控制在一定范围内。PLC运行正常时,程序扫描周期的长短与CPU的运算速度、与I/O点的情况、与用户应用程序的长短及编程情况等有关。通常用PLC执行l KB指令所需时间来说明其扫描速度,一般为零点几ms到上百ms。值得注意的是,不同指令其执行时间是不同的,从零点几μs到上百μs不等,故选用不同指令所用的扫描时间将会不同。而对于一些需要高速处理的信号,则需要特殊的软、硬件措施来处理。
6ES72111BE400XB0 | CPU 1211C AC/DC/Rly,6输入/4输出,集成2AI |
6ES72111AE400XB0 | CPU 1211C DC/DC/DC,6输入/4输出,集成2AI |
6ES72111HE400XB0 | CPU 1211C DC/DC/Rly,6输入/4输出,集成2AI |
6ES72121BE400XB0 | CPU 1212C AC/DC/Rly,8输入/6输出,集成2AI |
6ES72121AE400XB0 | CPU 1212C DC/DC/DC,8输入/6输出,集成2AI |
6ES72121HE400XB0 | CPU 1212C DC/DC/Rly,8输入/6输出,集成2AI |
6ES72141BG400XB0 | CPU 1214C AC/DC/Rly,14输入/10输出,集成2AI |
6ES72141AG400XB0 | CPU 1214C DC/DC/DC,14输入/10输出,集成2AI |
6ES72141HG400XB0 | CPU 1214C DC/DC/Rly,14输入/10输出,集成2AI |
6ES72151BG400XB0 | CPU 1215C AC/DC/Rly,14输入/10输出,集成2AI/2AO |
6ES72151AG400XB0 | CPU 1215C DC/DC/DC,14输入/10输出,集成2AI/2AO |
6ES72151HG400XB0 | CPU 1215C DC/DC/Rly,14输入/10输出,集成2AI/2AO |
6ES72171AG400XB0 | CPU 1217C DC/DC/DC,14输入/10输出,集成2AI/2AO |