在上个世纪 60 年代末,诞生了一种新型的控制设备——可编程序控制器(英文名称Programmable Logic Controller 简称 PLC)。PLC 的出现,在设备控制领域掀起一场革命,世界上许多知名的公司纷纷推出 PLC 产品,如三菱、欧姆龙、西门子、施耐德等,其性能不断提高、功能也不断完善和强大、价格不断下降,应用领域不断扩大,如自动化生产线、数控机床、电梯等。现在 PLC 已与CAD/CAM、机器人技术并成为现代制造业三大支柱。 PLC具有很强的适应性,是专为工业现场应用而设计的控制器,它采用了典型的计算机结构,由硬件和软件两大系统组成。 虽然目前市场上 PLC 种类繁多,但其结构和工作原理基本相同。 PLC 硬件系统主要由 CPU、输入/输出接口电路、存储器、电源等组成 。 下面我们以西门子S7-200PLC介绍一下PLC的传送 在了解传送指令之前先要理解西门子PLC的寻址方式, 1. S7-200 PLC的数据存储器 1) 8个二进制位(bit)成为一个字节(Byte) 2) 一个字节表示一个存储单位 3) 存储器容量是以字节为基本单位的 4) 两个字节为一个字(Word) 5) 两个字为一个双字(Doble Word)。 2.CPU存储器的寻址方式有直接寻址和间接寻址两种形式。在此仅简单介绍一下直接寻址方式。 直接指出元件名称的寻址方式称作直接寻址。直接寻址又有位寻址、特殊器件寻址和字节寻址。 (1)位寻址格式 位寻址格式为:Ax.y,使用时必须指定元件名称、字节地址和位号。 进行这种位寻址的编程元件有:输入映像寄存器(I)、输出映像寄存器(Q)、位存储器(M)、特殊存储器(SM)、局部变量存储器(L)、变量存储器(V)和顺序控制继电器(S)。 (2)特殊器件的寻址格式 存储区内有些元件是具有一定功能的器件,编程时不用指出它们的字节地址,而是直接写出其编号。如定时器(T)、计数器(C)、高速计数器(HC)和累加器(AC)。 (3)字节、字、双字的寻址格式 对字节、字和双字数据,直接寻址时需指明元件名称、数据类型和存储区域内的首字节地址。 可以进行这种方式寻址的编程元件有:输入映像寄存器(I)、输出映像寄存器(Q)、位存储器(M)、特殊存储器(SM)、局部变量存储器(L)、变量存储器(V)、顺序控制继电器(S)、模拟量输入映象寄存器(AQ)和模拟量输出映象寄存器(AQ)。 了解了寄存器的寻址方式之后会方便对传送指令的理解,先大体概括一下所有的传送指令,在这里主要分为两类,一类是单一传送,另一类是块传送 1. 单一传送 (1)MOVB,字节传送指令 (2)BIR,传送字节立即读指令 (3)BIW,传送字节立即写指令 (4)MOVW,字传送指令 (5)MOVD,双字传送指令 (6)MOVR,实数传送指令 2. 块传送 (1)BMB,字节块传送指令 (2)BMW,字块传送指令 (3)BMD,双字块传送指令 单一传送指令,字节传送(MOVB)、字传送(MOVW)、双字传送(MOVD)和实数 传送指令在不改变原值的情况下将IN中的值传送到OUT。使用双字传送指令可以创建一个指针。 要注意的是输入和输出的数据类型可以不同,但数据长度必须相同。 使ENO=0的错误条件: 0006 (间接寻址) 间接寻址是指用指针来访问存储区数据,在一条指令中,如果操作码后面的操作数是以操作数所在地址的地址形式出现的,这种指令的寻址方式就叫间接寻址。 0006间接寻址错误:就是这个指令的操作数不能是指针类型。也就是说,当传输出错时,出错码为0006. 0006 (间接寻址) 整数转为字节指令的操作 整数转字节指令(ITB)将一个字的值IN转换成一个字节值,并且 存入OUT指定的变量中。只有0到255中的值被转换。所有其他 值会产生溢出并且输出不会改变。 使ENO=0的错误条件: SM1.1 (溢出) 0006 (间接寻址) 受影响的SM标志位: SM1.1 (溢出) 提示 如果想将一个整数转换成实数,先用整数转双整数指令,再用双整数转实数指令。 传送指令的有效操作数: 字节立即传送(读和写): 字节立即传送指令允许您在物理I/O和存储器之间立即传送一个字节数据。 字节立即读(BIR) 指令读物理输入(IN),并将结果存入内存地址(OUT),但过程映像寄存器并不刷新。 字节立即写指令(BIW) 从内存地址(IN)中读取数据,写入物理输出(OUT),同时刷新相应的过程映像区。 使ENO=0的错误条件 0006 (间接寻址) 不能访问扩展模块 字节立即读指令的有效操作数: 字节立即写指令的有效操作数: 块传送指令 字节、字、双字的块传送字节块传送(BMB)、字块传送(BMW)和双字块传送(BMD)指令传送指定数量的数据到一个新的存储区,数据的起始地址IN,数据长度为N个字节、字或者双字,新块的起始地址为OUT。N的范围从1到255。 使ENO=0的错误条件: 0006 (间接寻址) 0091 (操作数超出范围) 可能理解起来不是很明白,那么看下面这个例子 //将数组1(VB20到VB23)传送至数组2(VB100到VB103) |
|