电动机功率 | 5kW | 外形尺寸 | 4mm |
---|---|---|---|
应用领域 | 环保,食品/农产品,地矿,包装/造纸/印刷,纺织/印染 | 重量 | 7kg |
西门子S7-1200PLC系统有五种不同模块,分别为 CPU 1211C、CPU 1212C 、 CPU 1214C、CPU1215C和CPU1217C。其中的每一种模块都可以进行扩展,以*您的系统需要。可在任何 CPU 的前方加入一个信号板,轻松扩展数字或模拟量 I/O,同时不影响控制器的实际大小。
![]() |
参考价 | ¥344 |
订货量 | 1 |
更新时间:2019-06-18 11:13:01浏览次数:211
联系我们时请说明是化工仪器网上看到的信息,谢谢!
西门子S7-1200PLC模块浙江代理商
西门子S7-300/400的局部变量
双击生成的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)。用类似的方法生成其他局部变量,FB1的背景数据块中的变量与变量声明表中的局部变量(不包括临时变量)相同。
块的局部变量名必须以字母开始,只能由英语字母、数字和下划线组成,不能使用汉字,但是在符号表中定义的共享数据的符号名可以使用其他字符(包括汉字)。
在变量声明表中赋值时,不需要存储器地址;根据各变量的数据类型,程序编辑器自动地为所有的局部变量存储器地址。
块的输入参数、输出参数的数据类型可以是基本数据类型、复杂数据类型、Timer(定时器)、Counter(计数器)、块(FB、FC、DB)、Pointer(指针)和ANY等。
选中SIMATIC管理器左边窗口中的“块”图标,用鼠标右键点击右边窗口,执行出现的快捷菜单中的“插入新对象”→“功能块”,生成一个新的功能块。在出现的功能块属性对话框中,采用系统自动生成的功能块的名称FB1,选择梯形图(LAD)为默认的编程语言。点击“多情景标题”前面的复选框,使其中的“√”消失(没有多重背景功能)。点击“确认”按钮后返回SIMATIC管理器,可以看到右边窗口中新生成的功能块FB1。
选中SIMATIC管理器左边窗口中的“块”,执行菜单命令“插入”→“S7块”→“数据类型”,生成新的UDT。在生成UDT的元素时,可以设置它的初始值和加上注释。从表面上看,图4-9的UDT1与图4-7中定义的结构STACK*相同,但是它们有本质的区别。
结构( STRUCT)是在数据块的声明视图方式或在逻辑块的变量声明表中与别的变量一起定义的,但是UDT必须在特殊的数据块内单独定义,并单独存放在一个数据块内。生成UDT后,在定义变量时将它作为一个数据类型来多次使用,例如在变量声明表中定义一个变量,其数据类型为UDT1,名称为ProData(见图4-10)。由该例可以看出,UDT在数据块中的使用方法与其他数据类型(例如INT)是一样的。
图4-9 用户定义数据结构UDT
图4-10 在数据块中使用UDT的例子
UDT可以在逻辑块(FC、FB和OB)的变量声明表中作为基本数据类型或复杂数据类型来使用,或者在数据块(DB)中作为变量的数据类型来使用。
要访问数据块Heater中数据类型为UDT1的结构ProData中的元素AMOUNT,其符号地址为“Heater”.ProData. AMOUNT。
可以将具有用户定义数据类型的变量作为参数来传递。如果在块的变量声明表中,声明形参的数据类型为UDT1,在调用块时应使用具有相同数据类型的变量来传递参数。在调用块时也可以将用户定义数据类型中的元素赋值给同一类型的形参。
用户定义数据类型也可以用来作为生成具有相同数据结构的数据块的摸板。
复杂数据类型包括日期和时间( DATE_AND_TIME)、字符串(String)、数组(Array)、结构( Struct)和用户定义的数据类型(UDT)。
(1)日期和时间
日期和时间(DATE_AND_TIME,缩写为DT)占用8个字节的BCD码。第1~6个字节分别存储年、月、日、时、分和秒,毫秒存储在整个第7个字节和第8个字节的高4位,星期存放在第8个字节的低4位。星期日的代码为1,星期一…星期六的代码为2~7。例如2010年7月27日12点30分25. 123秒可以表示为DT#10 - 07 - 27 - 12:30:25. 123,可以省略毫秒部分。
通过调用程序编辑器的文件夹“\Libraries\Standard Library\IEC Function Block”中的IEC功能(见附表B-4),可以实现DATE_AND_TIME数据类型与基本数据类型之间的相互转换、日期时间的比较和加、减,具体的使用方法见在线帮助。
调用SFC 0”SET_CLK”,可以设置和启动CPU时钟的时间和日期。调用SFC 1”READ_CLK”,可以读取CPU系统时钟当前的日期和时间。
(2)字符串
字符串( String)是字符(Char)组成的一维数组,每个字节存放1个字符。第1个字节是字符串的大字符长度,第2个字节是字符串当前有效字符的个数,字符从第3个字节开始存放,一个字符串多有254个字符。字符串的默认长度为254B,在DB4中定义字符串Fault的长度为20个字符(见图4-7),它只占用从DB4. DBB20开始的22B,其初值只有4个字符‘Over’。String变量中未使用的字节地址被初始化为B#16#00。
将DB4下载到仿真PLC,用变量表监控DB4. DBB20和DB4. DBB21,它们的值分别为20(字符串Fault的长度为20)和4(当前有4个字符)。还可以看到从DB4. DBB22开始的4个字节中字符‘Over’的ASCII码。可以用语句表中的基本指令访问字符串中的字符,例如用指令“L DB4. Fault[3]”来访问字符串Fadt的第3个字符。
可以用标准库的IEC库中的21个功能来处理字符串变量(见附表B-4),包括字符串与其他数据类型的转换、字符串的比较和字符串的编辑,具体的使用方法见在线帮助。
(3)数组
数组( ARRAY)是同一类型的数据组合而成的一个单元,数组的维数多为6维。图4-6给出了一个二维数组ARRAY[1..2,1..3]的内部结构,它共有6个字节元素,图中的每一小格为二进制的1位,每个元素占一行(一个字节)。ARRAY后面的方括号中的数字用来定义每一维的起始元素和结束元素在该维中的编号,可以取-32768~32767之间的整数。各维之间的数字用逗号隔开,每一维开始和结束的编号用两个小数点隔开。如果某一维有n个元素,该维的起始元素和结束元素的编号可以采用1和n,例如AR-RAY[1..100]。
图4-6 二维数组的结构
(4)结构
结构( STRUCT)可以是不同类型的数据的组合。可以用基本数据类型、复杂数据类型(包括数组和结构)和用户定义数据类型( UDT)作为结构中的元素,例如一个结构可以由数组和结构组成,结构可以嵌套8层。用户可以把过程控制中有关的数据统一组织在一个结构中,作为一个数据单元来使用,而不是使用大量的单个的元素,为统一处理不同类型的数据或参数提供了方便。
(5)用户定义数据类型
用户定义数据类型( User - Defined Data Types)简称为UDT,是一种特殊的数据结构,用户只需要对它定义一次,定义好以后可以在用户程序中作为数据类型使用。可以用它来产生大量的具有相同数据结构的数据块,用这些数据块来输入用于不同目的的实际数据。例如生成用于颜料混合配方的UDT后,可以用它生成用于不同颜色配方的数据组合。用户定义数据类型由基本数据类型和(或)复杂数据类型组成。定义好以后可以在符号表中为它一个符号名,使用UDT可以节约录入数据的时间。
西门子S7-1200PLC模块浙江代理商