详解几个使用频率较高的S7-200SMART PLC传送指令,PLC编程不慌张
在编写程序的过程中,经常会碰到存储区中的数值需要改变,或者数据在PLC中存储位置需要改变,这就需要用到传送指令。
首先我们介绍一下标准的一对一传送指令:MOV指令 ;将IN端输入数据复制一份移至OUT输出端,数据类型不同需要用的传送指令也不同,有如下几种。
说明:
1.只要检测到EN条件闭合,就发生数据传送,每个扫描周期执行一次。
2.值的传送过程为IN复制到OUT,OUT中原本数据被覆盖掉,IN中数据仍然保留。
3.对IN的参数可以是常数也可以是变量,对OUT必须是变量。IN为常数时,通常称为赋值。
4.每种指令对应的数据类型必须匹配,否则会发生错误。
5.对定时器和计数器用字传送指令,传送的是当前值。
6.实数传送即浮点数传送,因为浮点数都是32位,所以操作数也为VD。不能与双字传送混用。
7.ENO为能流输出,可以再接其它指令,如常开,常闭,输出,置位,复位等。不接指令时不得延长否则编译报错。
立即传送指令
移动字节立即读取指令读取物理输入 IN 的状态,并将结果写入存储器地址 OUT 中,但不更新过程映像寄存器。
传送字节立即写入指令从存储器地址 IN 读取数据,并将其写入物理输出 OUT 以及相应的过程映像位置。
块传送指令
将相邻的几个数据同时传送到另外几个相邻的寄存器中。块传送应避免地址重叠,否则容易发送数据传输错误。
以BLKMOV_B为例说明指令的执行过程:将IN(VB0)开始的N(5)个数据复制到OUT(VB5)开始的N(5)个寄存器中,N为1-255。三种块传送原理相同,只是存储空间大小不同而已。
字填充指令
将IN中字类型的存储器或常数写入从地址OUT开始的N个字寄存器中。N的范围是1—255。
典型应用:批量清零,初始化。
交换指令
每执行一次,将IN中的字寄存器的高字节和低字节交换一下。
字交换方法:两个字要进行互换,没有直接指令,可以使用传送指令进行交换。
比如要将VW100和VW102中的数据互换,可用如下程序实现:
免责声明:本文转自网络,版权归原作者所有,如涉及作品版权问题,请及时与我们联系删除,谢谢!
从西门子200的PLC程序来看三菱FX5U的PLC程序
小型PLC系统中西门子200系列和三菱的FX系列是应用的比较多的,作为工控行业的工程师是很有必要明白他们之间的一些不同点的,特别是从程序上来说,因此来写一篇文章,简单的聊聊他们在编程上的一下不同!
西门子PLC和三菱PLC的不同是很多的,因此本文将通过一段很相似的程序来简单说一下西门子200PLC和三菱FX5UPLC的不同!
先来看一段西门子200PLC中的程序:
西门子Micro/Win软件中的程序截图
如图,这是一段很简单的西门子200程序,因为是为了对比PLC中的不同,所以这段程序没有实际符号,也没有特别的含义!就是M0.0这个点接通,Q0.0这个输出点就会输出。V0.0接通的同时,通过MOVE指令可以将IB0的值传送到MB0,W2的值传送给MW2,ID4的值传送给MD4。---熟悉西门子200PLC的朋友应该对这里边的M,Q,I,V区都比较了解,不了解的也没关系,后边我会对比来说!
再来看一段三菱FX5U的PLC程序:
三菱GX-Works3软件中的截图
这段程序是以三菱FX5Uplc为控制器编写的一段程序,和上边的西门子PLC很像,当然也没有特别的含义,只是用来对比!
程序是D0.0这个接点接通的话,Y0输出点就会输出,后边同样是三个MOVE指令! 第一个MOVE指令是实现将X0开始的一个字节传送到M0开始的一个字节中!第二个MOVE指令是实现将X20开始的2个字节也就是16位长度的值传送到M16开始的2个字节中!第三个MOVE指令是实现将X40开始的4个字节也就是长度32位的值传送到M32开始的4个字节中!
需要说一句的是MOV是16位的传送指令,而DMOV是32位的传送指令!
所以就上边的两个程序的来看,西门子200PLC和三菱FX5U的PLC可以有如下的对应关系:
就两个程序而言存在的对应关系图1
这个图片上我要说明的是西门子200PLC中的存储区和三菱FX5U的软元件,可以有如上的对应关系!
还可以再看一个图片:
就两个程序而言存在的对应关系图2
从这2个图表上可以看到,西门子PLC中的I0.0,Q0.0,V0.0,M0.0都表示一个位,而三菱PLC中的X0,Y0,D0.0,M0也都表示一个位!
西门子中IB0(I0.0--I0.7)表示一个字节,三菱中K2X0表示X0-X7这样的一个8位字节长区域!
西门子中IW0(I0.0--I1.7)表示一个字,三菱中K4X0表示X0-X17这样的一个16位字长区域!
西门子中ID0(I0.0--I3.7)表示一个双字,三菱中K4X0表示X0-X37这样的一个32位双字长区域!
还是先来看一下三菱FX5Uplc手册上的图片:
三菱手册上的截图
这个图片上可以看到K1X0就表示X0-X3这4个位,K2X0则表示X0-X7。在三菱中的K1X0这里的K1就表示4个连续的位,在三菱PLC中是一个重要概念!
X0-X37这样的32个位组成一个双字长度,从这个图片上可以看到X37是最高位,X0是最低位!---这个编排方法和西门子PLC中的编排方法不同的!后续有时间再来讨论和西门子不同!
本篇文章就先写到这里,感谢阅读!
我是控制研究控,欢迎关注,本文会在其他平台进行发布,作者均为控制研究控!
相关问答
plc双字用什么符号表示?
字节(8位)目前很少用了,目前一般直接用字(16位),系统各标志位可以直接读写某个字中的某个位,合并为一个状态字,当然也可以直接使用位;单字适用与整数处...字...
plc位字节字双字怎样应用?
题目太大了。常规是:1、字节:比较,判断、循环计数、从字或双字取出自己需要的字节来专门某个目的使用等等;2、字:正数运算、比较判断,数据输出、显示等等...
在西门子PLC编程中,什么时候用字节,什么时候用字,什么时候用双字?难道就不能用一种,如字节?
按照数据长度选用。8位数据用字节,比如IB0(包括I0.0~I0.7共8个位).16位数据用字,比如IW0(包括IB0、IB1共16位)32位数据用双字,比如MD100(包括MW100、MW10...
小弟初学PLC编程时,什么时候该用字节,什么时候该用字,什么时候该用双字?
字节只能表示0-255的数字。字可以表示0-65535,双字可以表示n多亿。如果你的数值不大或者需要按位寻址那么字节就行。如果数值较大用字。数值很大或浮点数那得...
plc位、字节、字、双字什么意思?
位就是0或1,二进制的一个位0或1字节是8个位,二进制00000000到11111111字是16个位,二进制0000000000000000到1111111111111111双字...
问个问题:西门子PLCSTL编程中有句:=L0.2表示什么意思?
=L0.2是输出L0.2。L0.2是位,最小的计算单位,是一个状态量。其中V是数据区,L是临时区,多用于中间过程或子程序里然后往上字节LB,字LW,双字LDW。看不动STL语句...
plc的位和节什么意思?
在PLC(可编程逻辑控制器)中,位(bit)和节(byte)是计量存储容量的单位。下面我将详细解释一下它们的含义和用途。1.位(bit):位是计算机中最小的存储单...通过...
BYTE在PLC中是什么意思?
在PLC中,位,就是用0、1代码表示bool量,即是bit字节是8个bit,即是byte。字就是2个字节。双字就是2个字。这些都是为了在设备中存储区使用方便,做的一些规定。...
连LS品牌PLC的D寄存器为什么是双字DW?
这里的DW并不是DoubleWord,他只是单纯的一个寄存器符号,呵呵。日韩的和台湾的程序中寄存器符号是不区分单字和双子的,是用指令来区分的。西门子是用W和D来...
plc编程常见问题?
1、同牌子的plc编程线不能兼容,不能通用。2、PLC程序用的不是汇编语言也不是C语言,而是梯形图、指令表,是要经过编译成二进制机器语言。3、PLC与个...1、同...