6ES7193-6BP00-0BA0 SIMATIC ET 200SP, 基础单元 BU15-P16+A0+2B
- 供应商
- 浔之漫智控技术(上海)有限公司
- 认证
- 报价
- ¥88.00元每台
- 西门子
- 西门子代理商
- 西门子CPU
- 西门子plc
- 德国
- 全新原装
- 联系电话
- 195****8569
- 全国服务热线
- 195****8569
- 经理
- 吴悦
- 所在地
- 上海市松江区石湖荡镇塔汇路755弄29号1幢一层A区213室
- 更新时间
- 2024-01-07 08:08
6es7193-6bp00-0ba0
相似图像
simatic et 200sp, 基础单元bu15-p16+a0+2b, 类型 a0 的基础单元, 直插式端子, 不带 aux 端子, 已向左桥接, 宽x高:15x117mm
每个块包含一个代码时间标记和一个接口时间标记,可以在块的属性对话框中查看它们。下列情况将会产生时间标记冲突:
1)被调用的块比调用它的块的时间标记更新。
2)用户定义数据类型(udt)比使用它的块或使用它的用户数据的时间标记更新。3)功能块比它的背景数据块的时间标记更新。
4)fb2在fb1中被定义为多重背景,fb2的时间标记比fb1的更新。
即使块与块之间的时间标记的关系是正确的,如果块的接口的定义与它被使用的区域中的定义不匹配(有接口冲突),也会出现不一致性。
以随书光盘中的例程“发动机控制”为例,如果在fb1的变量声明表中修改或增减输人/输出参数,在保存块时,将会出现“块接口已改变……”的警告信息。保存后打开调用它的ob1,出现“至少一个块调用有时间标志冲突”的对话框。在0b1中可以看到,调用fb1的指令变成红色。带有时间标记冲突的程序下载到cpu后将导致停机。如果用手工来消除块的不一致性,是很麻烦的。可以用下面的方法自动修正一致性错误。
1)关闭与冲突有关的所有的块。
2)选中simatic管理器左边窗口的“块”,执行菜单命令“编辑”→“检查块的一致性”。在出现的“检查块的一致性”对话框中(见图4-33),有时间标记冲突的块用红色的指示灯标出。执行菜单命令“程序”→“编译”,step7将打开相应的编辑器,时间标记冲突和块的不一致性被自动地尽可能地消除,同时对块进行编译。经过编译后,图4-33中的时间冲突被消除,对应的红色指示灯消失(见图4-34)。
3)如果上述编译操作不能自动清除所有块的不一致性,在输出窗口中给出有错误的块的信息。用鼠标右键点击某一错误,调用弹出的菜单中的错误显示,对应的错误被打开,程序将跳到被修改的位置。清除块中的不一致性后,保存并关闭块。对于所有标记为有错误的块,重复这一过程。
4)重新执行步骤1和2,直至信息窗口不再显示错误信息。
如果不能用上述的操作自动清除所有块的不一致性,只有删除被调用的有冲突的块,然
后重新调用它们。
(1)结构的生成
可以在数据块中或逻辑块的变量声明表中定义结构,下面介绍在数据块中定义的方法。在图4-7的数据块db4中,同时定义了一个数组和一个结构。名为stack的结构由3个不同数据类型的变量组成。
选中图4-7“array”下面的“int”,按回车键,在该单元的下面生成一个空白行。在“名称”列输入结构的名称“stack”,用鼠标右键点击空白行的“类型”列单元,执行弹出的快捷菜单中的“复杂类型”→“struct”(也可以直接输入struct),连续按回车键后,在该行的下面出现新的行,新的行下面一行增加的“end_struct”(结束结构)是自动生成的,表示该结构的结束。在新的行输入结构的第一个元素“amount”和它的数据类型。如果没有输入该元素的初值,将会自动生成默认的初值0。用同样的方法生成结构的其他元素。选中结构的“end_struct”单元后按回车键,在下面出现的新的行中定义一个名为fault、长度为20个字符的字符串。
图4-7的stack所在行的地址列中的 12.0表示结构在数据块中的起始地址为dbb12。结构各元素的地址列中的“2.0”等表示结构元素在结构中的相对起始地址,“=8.0”表示该结构一共占用8b。后一行地址列中的“=42.0”表示db4中的数组、结构和字符串一共占用42b。可以为结构中各个元素设置初始值和加上注释。在图4-7中输入实数的初始值102.4后,被自动转换为1.024000e002(1.024×10²)。
用鼠标点击结构的第一行或后一行(即有关键字struct或end_struct的行)的地址列中的单元,将选中整个结构,结构各行的背景变为黑色,字变为白色(称为反色)。若要选中结构中的某一参数,用鼠标点击该行的地址单元,仅该行反色。
(2)访问结构中的元素
可以用结构中的元素的juedui地址或符号地址来访问结构中的元素。访问结构中的数据时,需要指出结构所在的数据块的名称、结构的名称,以及结构元素的名称,数据块tank内结构stack的元素amount应表示为“tank”.stack.amount。因为amount从数据块tank(db4)的第12号字节开始存放,它的juedui地址为db4.dbw12。
(3)用结构传递参数
如果在块的变量声明表中,声明形参的类型为数组或结构,可以将整个数组或结构而不是它们的某个元素作为参数来传递。调用块时也可以将某个数组或结构的元素赋值给同一类型的参数。
将复杂数据类型的变量作为参数传递时,作为形参和实参的两个变量必须具有相同的数据结构,例如两个结构应具有相同数据类型的结构元素和相同的排列顺序。
用户定义数据类型的生成与使用
选中simatic管理器左边窗口中的“块”,执行菜单命令“插人”→“s7块”→“数据类型”,生成新的udt。在生成udt的元素时,可以设置它的初始值和加上注释。从表面上看,图4-9的udt1与图4-7中定义的结构stack完全相同,但是它们有本质的区别。
结构(struct)是在数据块的声明视图方式或在逻辑块的变量声明表中与别的变量一起定义的,但是udt必须在特殊的数据块内单独定义,并单独存放在一个数据块内。生成udt后,在定义变量时将它作为一个数据类型来多次使用,例如在变量声明表中定义一个变量,其数据类型为udt1,名称为prodata(见图4-10)。由该例可以看出,udt在数据块中的使用方法与其他数据类型(例如int)是一样的。
udt可以在逻辑块(fc、fb和ob)的变量声明表中作为基本数据类型或复杂数据类型来使用,或者在数据块(db)中作为变量的数据类型来使用。
要访问数据块heater中数据类型为udt1的结构prodata中的元素amount,其符号地址为“heater”.prodata.amount。
可以将具有用户定义数据类型的变量作为参数来传递。如果在块的变量声明表中,声明形参的数据类型为udt1,在调用块时应使用具有相同数据类型的变量来传递参数。在调用块时也可以将用户定义数据类型中的元素赋值给同一类型的形参。
用户定义数据类型也可以用来作为生成具有相同数据结构的数据块的摸板。
展开全文