西门子CPU412-1中央控制器西门子代理商
西门子CPU412-1中央控制器
西门子CPU412-1中央控制器
西门子CPU412-1中央控制器
西门子代理商
主营西门子原装
S7-200CN|S7-200|S7-1200|S7-300|
S7-400|ET200系列PLC,
西门子T400|TDC高端控制器|
西门子PCS7过程控制系统,西门子HMI,
西门子802C|S|D|810D|840D|828D数控系统及备件,
西门子MM4|G110|G120|V10标准变频器,
西门子S120|611系列伺服系统,
西门子profibus-DP现场总线系统,
西门子电机,西门子过程仪表
凡我公司出售的西门子产品均享受西门子官方质保一年,
一年内有任何质量问题免费提供换新或维修服务,不收取任何费用!
希望我的用心能换来您对我们的信心!
我公司大量现货供应,价格优势,品质保证,德国原装进口
西门子PLC学习笔记十五-(数据块及数据访问方式)
一、数据块
数据块是在S7 CPU的存储器中定义的,用户可以定义多了数据块,但是CPU对数据块数量及数据总量是有限制的。
数据块与临时数据不同,当逻辑块执行结束或数据块关闭,数据块中的数据是会保留住的。
数据块分共享数据块、背景数据块、用户自定义数据块,下面分别介绍。
1.共享数据块(全局数据块)
其用于存储全局数据,所有逻辑块(OB、FC、FB)都可以访问共享数据块中的数据。
2.背景数据块(私有存储区)
其用做功能块(FB)的“存储器”。FB的参数和静态变量安排在它的背景数据块中。背景数据块不是由用户编辑的,而是编辑区生成的。
3.用户自定义数据块
其是以UDT为模板生成的数据块。创建用户定义数据块之前,必须先创建一个用户自定义的数据类型,如UDT1,并在LAD/STL/FBD S7程序编辑器内定义。
自定义数据类型UDT1的创建 可以参照之前的学习笔记:西门子PLC学习笔记五-(编程语言、数据类型)进行学习
4.数据块的创建
数据块的创建可以参考下图:
二、数据块的访问
用户程序可以以位、字节、字或双字操作访问数据块中的数据,可以使用符号或**地址访问。
在访问数据块时必须指明数据块的编号、数据类型与位置。如访问了不存在的数据单元或者数据块,同时没有编写错误处理OB块,CPU将进入STOP模式。
1.寻址数据块
2.传统方式访问数据块
传统方式是:先打开数据块,然后在访问。下例为STL访问数据块代码:
OPN DB1 //打开数据块DB1,作为共享数据块
L DBW2 //将DB1的数据字DBW2装入累加器1的低字中
T MW0 //将累加器低字中的内容传送到存储字MW0
T DBW4 //将累加器1低字中的内容传送到DB1的数据字DBW4
OPN DB2 //打开数据块DB2,作为共享数据块,同时关闭数据块DB1
L DB10 //装入共享数据块DB2的长度
L MD10 //将MD10装入累加器
<D //比较数据块DB2的长度是否足够长
JC ERRO //如果长度小于存储双字MD10中的值,则跳转到ERRO
3.直接访问数据块
直接访问数据块是:直接给出数据块的编号和数据在数据块中的地址。可以使用**地址,也可以使用符号地址。如下例:
L DB1.DBW2 //打开数据块DB1,并装入地址为2字数据单元
T DB1.DBW //将数据传送到数据块DB1的数据字单元DBW4
//----------- 使用符号地址 ------------
L "DB_Symbol".Speed //打开符号名为"DB_Symbol"的数据块
//并装入名为"Speed"的数据单元
————————————————
版权声明:本文为CSDN博主「风水月」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/fengshuiyue/article/details/42705319
STEP7中生成功能块步骤教程
1.生成功能块
选中SIMATIC管理器左边窗口中的“块”图标,用鼠标右键点击右边窗口,执行出现的快捷菜单中的“插入新对象”→“功能块”,生成一个新的功能块。在出现的功能块属性对话框中,采用系统自动生成的功能块的名称FB1,选择梯形图(LAD)为默认的编程语言。点击“多情景标题”前面的复选框,使其中的“√”消失(没有多重背景功能)。点击“确认”按钮后返回SIMATIC管理器,可以看到右边窗口中新生成的功能块FB1。
2.局部变量
双击生成的FB1,打开程序编辑器。将鼠标的光标放在右边的程序区*上面的分隔条上(见图4-13),按住鼠标的左键,往下拉动分隔条,分隔条上面是功能块的变量声明表,下面是程序区,左边是指令列表和库。将水平分隔条拉至程序编辑器视窗的顶部,不再显示变量声明表,但是它仍然存在。
在变量声明表中声明块专用的局部变量,局部变量只能在它所在的块中使用。
变量声明表的左边窗口给出了该表的总体结构,选中某一变量类型,例如“IN”,在表的右边显示的是输入参数Start等的详细情况。
由图4-13可知,功能块有5种局部变量
1)IN∶输入参数,用于将数据从调用块传送到被调用块。
2)OUT输出参数,用于将块的执行结果从被调用块返回给调用它的块。
3)IN_OUT(输入_输出参数)参数的初值由调用它的块提供,块执行后由同一个参数将执行结果返回给调用它的块。
4)TEMP(临时变量)暂时保存在局部数据区中的变量。临时变量区(L堆栈)类似于没有人管理的公告栏,谁都可以往上面贴告示,后贴的告示将原来的告示覆盖掉。只是在执行块时使用临时变量,执行完后,不再保存临时变量的数值,它可能被同一优先级中别的块的临时数据覆盖。
5)STAT(静态变量)从功能块执行完,到下一次重新调用它,静态变量的值保持不变。
选中变量声明表左边窗口中的输入参数“IN”,在右边窗口中生成两个BOOL变量和一个INT变量(见图4-13)。用类似的方法生成其他局部变量,FBI的背景数据块(见图4-15)中的变量与变量声明表中的局部变量(不包括临时变量)相同。
块的局部变量名必须以字母开始,只能由英语字母、数字和下划线组成,不能使用汉字,但是在符号表中定义的共享数据的符号名可以使用其他字符(包括汉字)。
在变量声明表中赋值时,不需要指定存储器地址根据各变量的数据类型,程序编辑器自动地为所有的局部变量指定存储器地址。
块的输入参数、输出参数的数据类型可以是基本数据类型、复杂数据类型、Timer(定时器)、Counter(计数器)、块(FB、FC、DB)、Pointer(指针)和ANY等。
3.生成梯形图程序
图4-13的下面是功能块FBI的梯形图程序。用起保停电路来控制发动机的运行,功能块的输入参数Start和Stop分别用来接收起动命令和停止命令。输出参数Engine_On用来控制发动机的运行。用比较指令来监视转速,检查实际转速Actual_Speed是否大于等于预置转速Preset_Speed。如果满足比较条件,Bool输出参数#Overspeed(超速)为1。
STEP7自动地在程序中的局部变量前面加上“#”号,符号表中定义的共享符号被自动加上双引号。
联系方式
- 地址:上海松江 上海市松江区石湖荡镇塔汇路755弄29号1幢一层A区213室
- 邮编:201600
- 联系电话:未提供
- 经理:吴悦
- 手机:19514718569
- QQ:2810544350
- Email:2810544350@qq.com