S7-1200 数据块的使用
1. 创建DB块: 在项目中添加了S7-1200设备之后,在项目树中此PLC的"程序块"下即可以添加新的数据块。图1 DB块的创建
在打开的"添加新块"窗口下选择数据块。 以下是对此窗口下各项配置的说明:
名称:此处可以键入DB块的符号名。如果不做更改,那么将保留系统分配的默认符号名。例如此处为DB块分配的符号名为“Data_block_2”;
类型:此处可以通过下拉菜单选择所要创建的数据块类型-全局数据块或背景数据块。如果要创建背景数据块,下拉菜单中列出了此项目中已有的FB供用户选择。
语言:对于创建数据块,此处不可更改。
编号:默认配置为“自动”,即系统自动为所生成的数据块配分块号。当然也可以选择“手动”,则“编号”处的下来菜单变为高亮状态,以便用户自行分配DB块编号。
块访问:默认选项为“已优化”,当选择此项时,数据块中的变量仅有符号名,没有地址偏移量的信息,该数据块仅可进行符号寻址访问。选择“已优化”创建数据块可优化CPU对存储空间的分配及访问,提升CPU性能;
用户也可以选择“标准-与S7-300/400兼容”,获得与S7-300/400数据块相同的特性,数据块中的变量有符号名和偏移量,可以进行符号访问和绝对地址访问。
注意:数据块的块访问属性只能在创建数据块时定义。创建完成后无法修改数据块的访问属性。如果在编程中需要对数据块进行绝对地址访问,必须在创建该数据块时将块访问设置成“标准-与S7-300/400兼容”。
当以上的数据块属性全部定义完成,点击“确定”按钮即创建完成一个数据块。用户可以在项目树中看到刚刚创建的数据块,如图2所示:
图2 项目树中的DB块
2. 为数据块定义变量:双击打开数据块即可逐行添加变量,如图3 所示。
图3 DB块的编辑
如果数据块时选择“标准-与S7-300/400兼容”,则在数据块中可以看到“偏移量”列,并且系统在编译之后在该列生成每个变量的地址偏移量。设置成优化访问的数据块则无此列。
默认情况下会有一些变量属性列未被显示出来,可以通过右键单击任意列标题,可在出现的菜单中选择显示被隐藏的列,见图4:
图4 显示隐藏列
表1是对数据块变量定义的所有列的说明:
表1 DB块中的列属性
定义变量的数据类型:可以为变量定义基本数据类型,复杂数据类型(时间与日期,字符串,结构体,数组等),PLC数据类型(如用户自定义数据类型),系统数据类型和硬件数据类型。可以直接键入数据类型标识符,或者通过该列中的选择按钮选择。如下图所示:
图5 定义数据类型
需要创建多个数据类型相同的变量时,可以将光标置于第一个变量名称的右下角,待光标变为“+”符号后向下拖动光标,即可轻松创建多个具有类似属性的变量:
图6 创建多个变量
DB块数据的保持性:对于可优化访问的数据块,其中的每个变量可以分别设置其保持与否;而标准数据块仅可设置其中所有的变量保持或不保持,不能对每个变量单独设置。如图7和图8所示:
图7 标准数据块中仅可设置所有的变量保持或不保持
图8 可优化访问的数据块中可以分别设置每个变量的保持性
3. 数据块的访问:
符号访问:<DB块名>.<变量名>;例如:Data_Block_1.Var1;
绝对地址访问:<DB块号>.<变量长度及偏移量>:DB1.DBX0.0;DB1.DBB0;DB1.DBW0;DB1.DBD0。
注意:复杂数据类型只能符号寻址。
从西门子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长度计算方法?
PLC测量长度一般都是使用电子尺或接线式编码器。电阻尺可以直接测量出绝对长度、测量精确、使用简单等特点。我用的是良石技术的LS21-E4KT电阻尺模块,将电子尺...
PLC自动测量长度的方法?
以下是一种常见的基于PLC的自动测量长度的方法:1.连接编码器:编码器是一种用于测量长度、角度等物理量的传感器。将编码器连接到PLC的输入口,可以实时读取编...
欧姆龙PLC字符串长度?
欧姆龙PLC的字符串长度取决于具体型号和型号所支持的数据类型。一般来说,欧姆龙PLC支持不同长度的字符串,最常见的为16位字符串和32位字符串。较新的型号可能...
三菱PLC高速计数器的脉冲怎么换算成长度?
用高速计数器的话,如转的较快,你可以每秒钟把高速计数器的值传给一个寄存器,用这个值乘以60秒,再除以编码器一圈的脉冲数即可得到转速,同时复位高速计数器进...
plc延时时间长度的计算方法?
一般的是100ms基时,延时时间=设定时间*基时。例如TMRT0K123的延时时间就是123*100ms=12300ms=12.3s。当M1028为10ms时间切换标志信号,Off时定时器T6...
关于编码器与PLC连接高速计数的脉冲数转换为长度单位,求高手帮我解释哈怎么运算的?
DDIV32位除法指令,DMUL32位乘法指令。从这3条指令看,C251的计数值先除以10,再乘以73,结果再除以1000,最终结果存在D56里面,至于为什么是这些数据,要去看实...
plc网线通讯线能用多少米?
关于这个问题,PLC网线通讯线可以使用的长度取决于多个因素,包括:1.线缆类型:不同类型的线缆具有不同的传输性能和阻抗特性,因此可以传输的距离不同。2....
plc中mov怎么用?
在PLC编程中,MOV是一种数据传输指令,可以将一个寄存器或数据块中的数据传输到另一个寄存器或数据块中。以下是MOV指令的使用方法:确定要传输的数据源和目的地...
plc测量钢丝绳长度的方法?
PLC测量长度一般都是使用电子尺或接线式编码器。电阻尺可以直接测量出绝对长度、测量精确、使用简单等特点。我用的是良石技术的LS21-E4KT电阻尺模块,将电子尺...
在西门子PLC编程中,什么时候用字节,什么时候用字,什么时候用双字?难道就不能用一种,如字节?
按照数据长度选用。8位数据用字节,比如IB0(包括I0.0~I0.7共8个位).16位数据用字,比如IW0(包括IB0、IB1共16位)32位数据用双字,比如MD100(包括MW100、MW10...