mcgs寄存器赋值的采样值如何求平均值?

君,已阅读到文档的结尾了呢~~
MCGS高级教程,内容包括:动画制作、流程控制策略、设备组态、结合存盘数据提取做复杂的历史报表、配方构件应用及MCGS使用技巧介绍。
&br /&&br /&
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
MCGS高级教程
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口当前位置: >>
相关内容回首页脚本程序语言要素在 MCGS 嵌入版中,脚本程序使用的语言非常类似普通的 Basic 语言,本节将对 脚本程序的语言要素进行详细的说明。数据类型MCGS 嵌入版脚本程序语言使用的数据类型只有三种: ? 开关型:表示开或者关的数据类型,通常 0 表示关,非 0 表示开。也可
以 作为整数使用; ? ? 数值型:值在 3.4E±38 范围内; 字符型:最多 512 个字符组成的字符串。变量、常量及系统函数变量:脚本程序中,用户不能定义子程序和子函数,其中数据对象可以看作是脚 本程序中的全局变量, 在所有的程序段共用。可以用数据对象的名称来读写数据 对象的值,也可以对数据对象的属性进行操作。 开关型、数值型、字符型三种数据对象分别对应于脚本程序中的三种数据类型。 在脚本程序中不能对组对象和事件型数据对象进行读写操作, 但可以对组对象进 行存盘处理。 常量: ? ? ? 开关型常量:0 或非 0 的整数,通常 0 表示关,非 0 表示开; 数值型常量:带小数点或不带小数点的数值,如:12.45, 100 字符型常量:双引号内的字符串,如:“OK”,“正常”系统变量:MCGS 嵌入版系统定义的内部数据对象作为系统内部变量,在脚本程 序中可自由使用,在使用系统变量时,变量的前面必须加“$”符号,如 $Date。 系统函数:MCGS 嵌入版系统定义的内部函数,在脚本程序中可自由使用,在使 用系统函数时,函数的前面必须加“!”符号,如!abs( )。 属性和方法:MCGS 嵌入版系统内的属性和方法都是相对于 MCGS 嵌入版的对象而 说的,引用对象的方法可以参见下个部分。 注: 有关系统变量和系统函数详细的使用方法, 请参见 《MCGS 嵌入版参考手册》MCGS 嵌入版对象MCGS 嵌入版的对象形成一个对象树, MCGS 嵌入版对象的属性就是系统变量, MCGS 嵌入版对象的方法就是系统函数。 MCGS 嵌入版对象下面有 “用户窗口” 对象,“设备”对象,“数据对象” 等子对象。“用户窗口”以各个用户窗口 作为子对象,每个用户窗口对象以这个窗口里的构件作为子对象。 使用对象的方法和属性, 必须要引用对象,然后使用点操作来调用这个对象的方 法或属性。为了引用一个对象,需要从对象根部开始引用,这里的对象根部,是 指可以公开使用的对象。MCGS 嵌入版对象,用户窗口、设备和数据对象都是公 开对象,因此,语句 InputETime = $Time 是正确的,而语句 InputETime = MCGS.$Time 也是正确的, 同样, 调用函数!Beep()时, 也可以采用 MCGS.!Beep() 的形式。可以写:窗口 0.Open(),也可以写:MCGS.用户窗口.窗口 0.Open(),还 可以写:用户窗口.窗口 0.Open()。但是,如果要使用控件,就不能只写:控件 0.Left,而必须写:窗口 0.控件 0.Left,或:用户窗口.窗口 0.控件 0.Left。在对象 列表框中,双击需要的方法和属性,MCGS 将自动生成最小可能的表达式。事件在 MCGS 嵌入版的动画界面组态中,可以组态处理动画事件。动画事件是在某 个对象上发生的,它可能是带参数也可能是不带参数的动作驱动源。如:用户窗 口上可以发生事件:Load,Unload,它们分别在用户窗口打开和关闭时触发。可 以对这两个事件编写一段脚本程序, 当某一事件触发时 (用户窗口打开或关闭时) 其相应脚本程序被执行。 用户窗口的 Load 和 Unload 事件没有参数,而 MouseMove 事件有参数,在组态 这个事件时,可以在参数组态中,选择把 MouseMove 事件的几个参数连接到数 据对象上,这样,当 MouseMove 事件被触发时,就会把 MouseMove 的参数, 包括鼠标位置,按键信息等送到连接的数据对象,然后,在事件连接的脚本程序 中,就可以对这些数据对象进行处理。表达式由数据对象 (包括设计者在实时数据库中定义的数据对象、系统内部数据对象和 系统函数)、括号和各种运算符组成的运算式称为表达式,表达式的计算结果称 为表达式的值。 当表达式中包含有逻辑运算符或比较运算符时,表达式的值只可能为 0(条件不 成立,假)或非 0(条件成立,真),这类表达式称为逻辑表达式;当表达式中 只包含算术运算符, 表达式的运算结果为具体的数值时,这类表达式称为算术表 达式;常量或数据对象是狭义的表达式,这些单个量的值即为表达式的值。表达 式值的类型即为表达式的类型,必须是开关型、数值型、字符型三种类型中的一 种。 表达式是构成脚本程序的最基本元素,在 MCGS 嵌入版的组态过程中,也常常需 要通过表达式来建立实时数据库对象与其它对象的连接关系, 正确输入和构造表 达式是 MCGS 嵌入版的一项重要工作。运算符算术运算符 ? ? ? ? ? ? ? ∧ * / \ + ― Mod 乘方 乘法 除法 整除 加法 减法 取模运算逻辑运算符 ? ? ? ? AND NOT OR XOR 逻辑与 逻辑非 逻辑或 逻辑异或比较运算符 ? ? > >= 大于 大于等于 ? = 接使用 ? ? ? <= < <>等于(注意,字符串比较需要使用字符串函数!StrCmp,不能直 等于运算符) 小于等于 小于 不等于运算符优先级按照优先级从高到低的顺序,各个运算符排列如下: ? ? ? ? ? ? ? ( ) ∧ *,/ ,\,Mod + ,―< , > ,<= ,>=,= ,<> NOT AND,OR,XOR基本辅助函数作为脚本语言的一部分,MCGS 嵌入版提供了几组基本辅助函数,这些函数主要 不是作为组态软件的功能提供的,而是为了完成脚本语言的功能提供的。这些函 数包括以下几类:位操作函数,数学函数,字符串函数,时间函数。 位操作函数提供了对数值型数据中的位进行操作的功能。 可以用开关型变量来提 供这里的数值型数据。在脚本程序编辑器里,位操作函数都列在数学函数中,包 括按位与 (!BitAnd) , 按位或 (!BitOr) ,按位异或 (!BitXor) , 按位取反 (!BitNot) , 清除数据中的某一位或把某一位置 0(!BitClear),设置数据中的某一位或把 某一位置 1(!BitSet),检查数据中某一位是否为 1(!BitTest),左移和右移 (!BitLShift,!BitRShift)。 数学函数提供了常见的数学操作,包括开方,随机数生成以及三角函数等。 字符串函数提供了与字符串相关的操作,包括字符串比较,截取,搜索以及格式 化等。 时间函数提供了和时间计算相关的函数。时间可以以一个字符串的形式表示,但 是,为了方便进行时间计算,在 MCGS 嵌入版中,使用了一种内部格式来保存时 间的值,这种内部格式的时间值可以保存在一个开关型变量中,同时,可以使用 函数!TimeStr2I 和!TimeI2Str 来完成字符串形式时间量和内部格式形式时间量 的转换,如:A1 = !TimeStr2I(“ 12:23:23”),这里 A1 是一个开关 型数据对象,获得了一个内部形式的时间量,而再用 InputETime=!TimeI2Str(A1,&%Y-%m-%d %H:%M:%S &) 又可以把保存在 A1 中的 内部形式的时间量转换为字符串形式。当时间转换为内部格式后,就可以进行时 间的运算。运算完毕后,再转换为字符串形式的时间,以便输出和使用。 具体函数的使用方法,可以参照《MCGS 嵌入版参考手册》中的说明。功能函数为了提供辅助的系统功能, MCGS 嵌入版提供了功能函数。 功能函数主要包括以 下几类: 运行环境函数, 数据对象函数, 系统函数, 用户登录函数, 定时器操作, 文件操作,配方操作函数等。 运行环境函数和数据对象函数主要是提供了对 MCGS 嵌入版内部各个对象操作 的方法。 系统函数提供了系统功能,包括启动程序,发出按键信息等等。 用户登录函数提供了用户登录和管理的功能。包括打开登录对话框,打开用户管 理对话框等等。 定时器提供了 MCGS 嵌入版内建定时器的操作。 包括对内建时钟的启动, 停止, 复位,时间读取等操作。 文件操作提供了对文件的操作,包括删除、拷贝文件,把文件拆开、合并,寻找 文件,遍历文件,在文件中进行读写操作。对 CSV(逗号分割的文本文件)进 行读写操作等等。 具体的函数说明,可以参看《MCGS 嵌入版参考手册》。 回到顶部脚本程序基本语句由于 MCGS 嵌入版脚本程序是为了实现某些多分支流程的控制及操作处理,因此 包括了几种最简单的语句:赋值语句、条件语句、退出语句和注释语句,同时, 为了提供一些高级的循环和遍历功能,还提供了循环语句。所有的脚本程序都可 由这五种语句组成, 当需要在一个程序行中包含多条语句时,各条语句之间须用 “:”分开,程序行也可以是没有任何语句的空行。大多数情况下,一个程序行 只包含一条语句,赋值程序行中根据需要可在一行上放置多条语句。 赋值语句赋值语句的形式为:数据对象 = 表达式。赋值号用“=”表示,它的具体含义 是:把“=”右边表达式的运算值赋给左边的数据对象。赋值号左边必须是能够 读写的数据对象,如:开关型数据、数值型数据以及能进行写操作的内部数据对 象,而组对象、事件型数据对象、只读的内部数据对象、系统函数以及常量,均 不能出现在赋值号的左边,因为不能对这些对象进行写操作。 赋值号的右边为一表达式,表达式的类型必须与左边数据对象值的类型相符合, 否则系统会提示“赋值语句类型不匹配”的错误信息。条件语句条件语句有如下三种形式: If 〖表达式〗 Then 〖赋值语句或退出语句〗If 〖表达式〗 Then 〖语句〗 EndIfIf 〖表达式〗Then 〖语句〗 Else 〖语句〗 EndIf 条件语句中的四个关键字“If”、“Then”、“Else”、“Endif”不分大小写。 如拼写不正确,检查程序会提示出错信息。 条件语句允许多级嵌套, 即条件语句中可以包含新的条件语句, MCGS 脚本程序 的条件语句最多可以有 8 级嵌套,为编制多分支流程的控制程序提供方便。 “IF”语句的表达式一般为逻辑表达式,也可以是值为数值型的表达式,当表达 式的值为非 0 时,条件成立,执行“Then”后的语句,否则,条件不成立,将 不执行该条件块中包含的语句,开始执行该条件块后面的语句。 值为字符型的表达式不能作为“if”语句中的表达式。循环语句循环语句为 While 和 EndWhile,其结构为: While 〖条件表达式〗 ?. EndWhile 当条件表达式成立时(非零),循环执行 While 和 EndWhile 之间的语句。直到 条件表达式不成立(为零),退出。退出语句退出语句为“Exit”,用于中断脚本程序的运行,停止执行其后面的语句。一般 在条件语句中使用退出语句,以便在某种条件下,停止并退出脚本程序的执行。注释语句以单引号“’”开头的语句称为注释语句,注释语句在脚本程序中只起到注释说 明的作用,实际运行时,系统不对注释语句作任何处理。一、数据在存储器中的存储方式 1、数据格式及要求 A〉数据格式:即指数据的长度和表示方式。 B〉要求:S7-200 对数据的格式有一定的 要求,指令与数据之间的格式一致才能正常工作。 2、用一位二进制数表示开关量 A〉一位二进制数:一位二进制数有 0(OFF)和 1(ON)两种不同的取值,分别对应于 开关量(或数字量)的两种不同的状态。 B〉位数据的数据类型:布尔(Bool)型。 C〉 位地址:由存储器标识符、字节地址和位号组成,如 I3.4 等。 D〉其它 CPU 存储区的地 址格式: 由存储器标识符和起始字节号 (一般取藕字节) 组成, 如 V B 100、 V W 100、 V D 100 等。 3、多位二进制数(8421 码) A〉数及数制:数用于表示一个量的具体大小。根据计数方式的不同,有十进制(D) 、二 进制(B) 、十六进制(H)和八进制等不同的计数方式。 B〉二进制数的表示:在 S7-200 中用 2#来表示二进制常数,例如 “2#
” 。 C〉二进制数的大小:将二进制数的 各位(从右往左第 n 位)乘以对应的位权(×2n-1) ,并将结果累加求和可得其大小。例如: 2#
= 1×27+0×26+1×25+1×24+1×23+0×22+1×21+0×20 = 186 4、十六进制 数 A〉十六进制数的引入:将二进制数从右往左每 4 位用一个十六进制数表示,可以实现对 多位二进制数的快速准确的读写。 B〉不同进制数的表示方法: ( 表 3-2-1 不同进制数 的表示方 法 ) C 〉 十 六 进 制 数 的 表 示 : 在 S7-200 中 用 16# 来 表 示 十 六 进 制 常 数 , 例 如 “2# 11 0101 可转换为 16# AEF7 ” 。 D〉十六进制数的大小:将十六进制 数的各位(从右往左第 n 位)乘以对应的位权(×16n-1) ,并将结果累加求和可得其大小。 例如: 16# 2F = 2 × 161+15 × 160 = 47 5 、数据长度:字节( Byte ) 、字( Word ) 、双字 (DoubleWord) A〉字节(B) :从 0 号位开始的连续 8 位二进制数称为一个字节。 B〉字(W) :相邻 的两个字节组成一个字的长度。 C〉 双字 (DW) : 相邻的四个字节组成一个双字的长度。 D〉 字、双字长数据的存储特点:高位存低字节、地位存于高字节。 6、负数(有符号数) 的表示方法 A〉负数的表示:PLC 一般用二进制的补码来表示有符号数,其最高位为符号位(0 ―― 正数、 1 ――负数) 。 B〉 绝对值相等的正负有符号数间的关系: 正数的补码是它本身。 C〉 不同数据的取值范围:( 表 3-2-2 数据的位数与取值范围 ) 7、BCD 码 阅读会员限时特惠 7 大会员特权立即尝鲜注 意 了 2*160 A〉BCD 码释义:BCD 码就是用四位二进制数的组合来表示 1 位十进制数,即用二进制编 码 的 十 进 制 数 ( Binary Coded Decimal Number ) 缩 写 。 例 如 十 进 制 数 23 的 BCD 码 为 2#
或表示为 16# 23 ,但其 8421 码为 2#
。 B〉BCD 码的应用:BCD 码常用于输入输出设备,例如拨码开关输入的是 BCD 码,送给七段显示器的数字也是 BCD 码。 二、CPU 的存储区 1、输入过程映象寄存器(I) A〉输入过程映象寄存器(I)的作用:在每次扫描周期的开始,CPU 对物理输入点进行 采样,并将采样值写入输入过程映象寄存器中。 B〉输入过程映象寄存器(I)的特点: ① 只能由外部驱动,其常开、常闭触点使用次数不受限制;② 可以按位、字节、字或双字 来存取输入过程映象寄存器中的数据: 位: I [字节地址] . [位地址] 如 I0.1 字 节、字或双字: I [长度] [起始字节地址] 如 IB4 2、输出过程映象寄存器(Q) A〉输出过程映象寄存器(Q)的作用:在每次扫描周期的结尾,CPU 将输出过程映象寄 存器中的数值复制到物理输出点上。 B〉输出过程映象寄存器(Q)的特点:①其常开、 常闭触点使用次数不受限制;② 可以按位、字节、字或双字来存取输出过程映象寄存 器: 位: Q [字节地址] . [位地址] 如 Q1.1 字节、字或双字: Q [长度] [起始字 节地址] 如 QB5 3、全局变量存储区(V) A〉变量存储区(V)的作用:用于存储程序执行过程中控制逻辑操作的中间结果, 也可 以用它来保存与工序或任务相关的其它数据。 B〉变量存储区(V)的特点:①变量存储 器在全局有效,可以被所有的 POU 存取;② 可以按位、字节、字或双字来存取 V 存储区中 的数据: 位:V [字节地址] . [位地址] 如 V10.2 字节、 字或双字:V [长度] [起 始字节地址] 如 VW100 4、局部存储器(L) A〉局部存储器(L)的作用:S7-200 有 64 个字节的局部存储器,其中 60 个可以用作临 时存储器或者给子程序传递参数。 B〉局部存储器(L)的特点:① S7--200 给每个 POU (程序组织单元)分配 64 个局部存储器;②局部存储器只在创建它的程序单元中有效,各 程序不能访问别的程序的局部变量存储器。③ 局部存储器在参数传递过程中不传递值,在 分配时不被初始化,可能包含任意数 值。 位: L [字节地址] . [位地址] 如 L0.0 字节、字或双字: L [长度] [起始字节 地址]如 LB335、模拟量输入(AI)A〉模拟量输入(AI)的作用:S7-200 将输入的模拟量值(如温度或电压)转换成 1 个字 长(16 位)的数字量,并将其存入(AI)区占一个字长的地址中。 B〉模拟量输入(AI) 的作用:① 可以用区域标识符(AI) 、数据长度(W)及字节的起始地址(必须用偶数字节 地址如 AIW0, AIW2, AIW4) 来存取这些值。 ② 模拟量输入值为只读数据。 格式:AIW [起 始字节地址] 如 AIW4 6、模拟量输出(AQ) A〉模拟量输出(AQ)的作用:S7-200 把 1 个字长(16 位)数字值按比例转换为相应大 小的电流或电压输出。 B〉模拟量输出(AQ)的特点:① 可以用区域标识符(AQ) 、数 据长度(W)及字节的起始地址(必须用偶数字节地址如 AQW0,AQW2,AQW4)来改变这 些值。② 模拟量输出值是只写数据。 格式: AQW [起始字节地址] 如 AQW4 7、 定时器存储区(T) A〉定时器的作用:定时器可用于时间累计,S7-200 CPU 中,有 256 个的定时器,其分辨 率(时基增量)分为 1ms、10ms 和 100ms 三种。 B〉定时器有两个变量:① 当前值―― 16 位有符号整数,存储定时器所累计的时间。 ② 定时器位――按照当前值和预置值的比较 结果置位或者复位。 C〉定时器存储区(T)的特点:① 可以用定时器地址(T+定时器 号,如 T37、T3 等)来存取当前值和定时器位数据。②位操作指令则是存取定时器位;如果 使用字操作指令,则是存取定时器当前值。 格式: T [定时器号] 如 T24 8、计 数器存储区(C) A〉 计数器的作用: 计数器可以用于累计其输入端脉冲电平由低到高的次数。 在 S7-200 CPU 中,有 256 个的计数器,分为三种类型―增计数;减计数;增/减计数。 B〉计数器有两 种变量:① 当前值――16 位有符号整数,存储累计值。② 计数器位――按照当前值和预置 值的比较结果置位或者复位。 C〉计数器存储区(C)的特点:① 可以用计数器地址(C +计数器号)来存取计数器的当前值和计数器位数据;② 使用位操作指令则是存取计数器 位;如果使用字操作指令,则是存取计数器当前值。 格式: C[计数器 号] 如 C24 9、高速计数器(HC) A〉高速计数器(HC)的作用:用于对高速事件计数;S7-200 CPU222 以上提供了 6 个高 速计数器(HC0~HC5)供用户使用。 B〉高速计数器(HC)的特点:① 它独立于 CPU 的 扫描周期;② 高速计数器的当前计数值(32 位的有符号整数)是只读数据,仅可以作为双 字(32 位)来寻址;③用指定存储器类型(HC)加上计数器号(如 HC0)的寻址方式来存 取高速计数器中的值; 格式: HC [高速计数器号] 如 HC1 10、累加器(AC) A〉累加器(AC)的作用:累加器是可以象存储器一样使用的读写设备。例如,可以用它 来向子程序传递参数,也可以从子程序返回参数,以及用来存储计算的中间结果。 S7--200 提供 4 个 32 位累加器(AC0,AC1,AC2 和 AC3) 。 B〉累加器(AC)的特点:① 可以按 字节、字或双字的形式来存取累加器中的数值;② 被访问的数据长度取决于存取累加器时 所使用的指令。 格式: AC [累加器号] 如 AC0 11、特殊存储器(SM) A〉特殊存储器(SM)的作用:SM 位为 CPU 与用户程序之间传递信息提供了一种手段。 可以用这些位选择和控制 S7-200 CPU 的一些特殊功能。 B〉特殊存储器(SM)的特点: 可以按位、字节、字或双字来存取 SM 位: 位: SM [字节地址] . [位地址] 如 SM0.1 字节、字或者双字: SM [长度] [起 始字节地址] 如 SMB86 12、位存储区(M) A〉位存储(M)的作用:可以用位存储区作为控制继电器来存储中间操作状态和控制信 息。 B〉 位存储 (M) 的特点: 可以按位、 字节、 字或双字来存取位存储区: 位:M [字 节地址].[位地址] 如 M26.7 字节、字或双字: M[长度][起始字节地 址] 如 MD20 13、顺控继电器存储器(S) A〉顺控继电器(SCR)的作用:SCR 提供控制程序的逻辑分段,用于组织设备的顺序操 作。 B〉顺控继电器存储器(S)的特点:① 可用作顺控编程元件与顺序控制继电器指令 配合使用;② 或用作辅助继电器,可按位、字节、字或双字来存取 S 位。 位: S [字 节地址].[位地址] 如 S3.1 字节、字或者双字: S[长度][起始字节地 址] 如 SB4 14、实数的格式 A〉 实数及其应用: 实数 (浮点数) 可以表示为 1.m×2e (式中 m――尾数、 e――指数) , 由 32 位单精度数表示,最高位为符号位,按照双字长度来存取;借助浮点数,S7-200 可以 表示范围在±1.-38~±3.+38 内的任何一个数。 B〉实数的运算精 度:对于 S7--200 来说,浮点数精确到小数点后第六位。 15、字符串的格式 字符串指的是一系列字符,每个字符以字节的形式存储。字符串的第一个字节定义了字 符串的长度,也就是字符的个数。一个字符串的长度可以是 0 到 254 个字符,再加上长度字 节, 一个字符串的最大长度为 255 个字节。 而一个字符串常量的最大长度为 126 字节。 16、 常数表示法及范围在 S7--200 的许多指令中,都可以使用常数值。常数值可以是字节、字或者双字。S7--200 以二进制数的形式存储常数,也可以用十进制数、 十六进制数、 ASCII 码或者实数(浮点数) 来表示。( 表 3-2-3 常数表示法 ) 17、CPU 存储器的范围和特性 A〉S7-200 CPU 存储器的范围:( 表 3-2-4 S7-200 CPU 存储器的范围与特性 ) B〉S7-200 操作数范围:( 表 3-2-5 S7-200 CPU 操作数的范围 ) 三、直接寻址和间接寻址 1、寻址 的概念 在 PLC 中地址是访问数据的依据,通过地址来访问数据的过程称为“寻址” 。几乎所有的 指令和功能都与各种形式的寻址有关。 2、直接寻址 直接寻址即为指定了存储器的区域、长度和位置的寻址方式,用于 一般的数字量控制系 统的编程中。如 VW100 表示存取 VB100、VB101 组成的两个字。 3、用指针对 S7-200 存 储区间接寻址 A〉间接寻址:①间接寻址的概念――是指用指针来访问存储区数据。②指针作用及其特 点:指针以双字的形式存储其它存储区的地址,指针也可以作为参数传递到子程序中。只能 用 V 存储器、L 存储器或者累加器寄存器(AC1、AC2、AC3)作为指针。S7-200 允许指针访 问以下存储区: I、Q、V、M、S、AI、AQ、SMT(仅限于当前值)和 C(仅限于当前值) ; 但不能访问单独的位,也不能访问 HC 或者 L 存储区。 B〉建立间接寻址的指针:要建立 一个指针,必须以双字的形式,将需要间接寻址的存储器地址移动到指针中;具体做法是用 “&”符号加上要访问的存储区地址来建立一个指针。 ( “&”符号开头表明指令的操作数 是存储区的地址, 而不是将其内容。 ) C〉 用指针存取数据: 当指令中的操作数是指针时, 应该在操作数前面加上“*”号。 D〉修改指针:由于指针是一个 32 位的数据,要用双 字指令来改变指针的数值;简单的数学运算,如加法指令或者增加指令,可用于改变指针的 数值。 E〉应用举例――[例 3-1]:用于非线性校正的表格的数据存放在 VW0 开始的 100 字中,表格的偏移量(表格中字的序号,第 1 个字的序号为 0)在 VD200 中,在 I0.0 的上升 沿,用间接寻址将表格中相对于偏移量的数据值传送到 VW210 中去。 [提示]: 按照所 访问的数据长度使用不同的指令:当访问字节时,使用增加指令使指针值加 1;当访问字或 者计数器、定时器的当前值时,用加法或者增加指令使指针值加 2;当访问双字时,使用加 法或者增加指令使指针值加 4。 S7-300 的数据类型分以下三种:基本数据类型、复合数据类型和参数类型。 一、基本数据 类型 1、位(bit) 常称为 BOOL(布尔型) ,只有两个值:0 或 1。如:I0.0,Q0.1,M0.0,V0.1 等。 2、字节(Byte) 一个字节(Byte)等于 8 位(Bit) ,其中 0 位为最低位,7 位为最高位。如:IB0(包括 I0.0~ I0.7 位) , QB0 (包括 Q0.0~Q0.7 位) , MB0, VB0 等。 范围: 00~FF (十进制的 0~255) 。 3、 字(Word) 相邻的两字节(Byte)组成一个字(Word) ,来表示一个无符号数,因此,字为 16 位。如: IW0 是由 IB0 和 IB1 组成的,其中 I 是区域标识符,W 表示字,0 是字的起始字节。需要注 意的是,字的起始字节(如上例中的“0” )都必须是偶数。字的范围为十六进制的 0000~ FFFF(即十进制的 0~65536) 。在编程时要注意,如果已经用了 IW0,如再用 IB0 或 IB1 要 特别加以小心。 4、双字(Double Word) 相邻的两个字(Word)组成一个双字,来表示一个无符号数。因此,双字为 32 位。如: MD100 是由 MW100 和 MW102 组成的,其中 M 是区域标识符,D 表示双字,100 是双字的 起始字节。需要注意的是,双字的起始字节(如上例中的“100” )和字一样,必须是偶数。 双字的范围为十六进制的 0000~FFFFFFFF (即十进制的 0~) 。 在编程时要注意, 如果已经用了 MD100,如再用 MW100 或 MW102 要特别加以小心。阅读会员限时特惠 7 大会员特权立即尝鲜以上的字节、 字和双字数据类型均为无符号数, 即只有正数, 没有负数。 5、 16 位整数 (INT, Integer) 整数为有符号数,最高位为符号位,1 表示负数,0 表示正数。范围为-3。 6、32 位整数(DINT,Double Integer) 32 位整数和 16 位整数一样,为有符号数,最高位为符号位,1 表示负数,0 表示正数。范 围为-~。 7、浮点数(R,Real) 浮点数为 32 位,可以用来表示小数。浮点数可以为:1.m×2e,其存储结构如图所示: 8、常数的表示方法 常数可以是字节、字或双字,CPU 以二进制方式存储,也可以用十进制,十六进制 ASCII 码或浮点数形式来表示。如下图所示: 说明: (1)S5T#格式为:S5T#aD_bH_cM_dS_eMS,其中 a,b,c,d,e 分别是日,小时, 分,秒和毫秒的数值,输入时可以省掉下划线,如表中所示。 (2)D#取值范围为:D# ~D#。二、复合数据类型 用户通过复合基本数据类型而生成就是复合数据类型。 复合数据类型包括以下几种: 1、 数组(ARRAY) 将一组同一类型的数据组合在一起组成一个单位就是数组。 2、结构(STRUCT) 将一组同不同类型的数据组合在一起组成一个单位就是结构。 3、字符串(STRING) 字符串是由最多 254 个字符组成的一维数组。 4、日期和时间(DATE-AND-TIME) 用于存储年、月、日、时、分、秒、毫秒和星期的数据。占用 8 个字节,BCD 编码。星期 天代码为 1,星期一~星期六代码分别是 2~7。 如:DT#_12:30:15.200 为 2004 年 7 月 15 日 12 时 30 分 15.2 秒。 5、用户定义的数据类型(UDT,User-Defined Data Types) 由用户将基本数据类型和复合 数据类型组合在一起形成的数据类型。 可以在数据块 DB 和变量声明表中定义复合数据类 型。动画显示构件运行时的功能 动画显示构件用于实现动画显示和多态显示的效果。 通过和显示变量建立连接, 动画显示构 件用显示变量的值来驱动切换显示多幅图像、文字。在多态显示方式下,构件用显示变量的 值来寻找分段点,显示指定分段点对应的图像、文字。在动画显示方式下,当显示变量的值 为非 0 时,构件按指定的频率,循环顺序切换显示所有分段点对应的图像。多幅图像、文字 的动态切换显示就实现了特定的动画效果。 动画显示构件具有可见与不可见两种显示状态, 当指定的可见度表达式被满足时, 动画显示 构件将呈现可见状态,否则,处于不可见状态。 组成: 动画显示构件的组成和动画按钮一样,具体参见动画按钮。 组态时的属性设置 组态时用鼠标双击动画显示构件,弹出构件的属性设置对话框。本构件包括基本属性、显示 属性和可见度属性三个属性窗口页。 基本属性页 分段点:?分段点:一个段点对应于动画按钮构件的一种状态,运行时,用户的按钮动作使得 构件根据设置的显示变量值在设定的多种状态之间切换, 同时可以通过设置变量执 行一定的操作。每个分段点可以对应于一个数值和多幅位图、多个文字。当构件所 连接显示变量值发生变化时, 构件也自动调整到相应的段点状态, 如果对应的显示 变量的值与所有的段点值都不相同,则构件的状态不发生变化。应当指出,如果动 画按钮构件所连接的数据对象是开关型数据对象的位,则构件只有两种状态:非 0 状态(开状态)和 0 状态(关状态)。此时分段点只能有 2 个。在分段点列表中选 定不同的段点,可显示其对应的图像、文字。?增加段点:按此按钮,在分段点列表中增加一个段点,用鼠标双击段点的值,可激 活段点,进入编辑状态,修改或输入新的段点值,按“Enter”键,接受新的段点 值。段点值可以为正数、负数、小数。系统默认段点值从第一个段点开始按从小到 大的顺序排列,如果顺序混乱,可能不会被识别,组工程时请注意这一点。一个构 件最多允许 50 个分段点。?删除段点:按此按钮,删除分段点列表中所选定的段点,同时,与该段点对应的图 像、文字也被删除。一个构件至少有 1 个分段点。外形选项页: ? 图像列表:一个段点默认只对应一个图像,但是可以通过两种方式添加多个图像。 一种是点击图像列表下方的 “增加” 按钮; 一种是鼠标右键点击图像列表空白区域, 在弹出的快捷菜单中选择插入, 这两种方式都可以添加一个默认的图像到图像列表。 图像列表允许的最多图像个数为 15。用鼠标双击图像名,可激活图像名,进入编 辑状态,修改或输入新的图像名,按“Enter”键,接受新的图像名。同时,通过 鼠标拖动的方式改变图像的顺序可以实现图像在构件区域的显示层次, 默认图像列 表中的第一个图像显示在最上层。点击“删除”按钮或者是用鼠标右键点击图像列 表空白区域,在弹出的快捷菜单中选择删除,可以删除图像。 ? ? ? 效果预览:通过此项可以查看图像效果。 类型:显示效果预览中显示的图像类型。图像类型包括位图和矢量图两类。 位图:按动此按钮,可以把对象元件库中的位图装入到指定的段点。通过效果预览 可以查看添加位图之后的效果。 ? 矢量图:按动此按钮,可以把对象元件库中的矢量图装入到指定的段点。通过效果 预览可以查看添加矢量图之后的效果。 ? 图像大小:包括“任意大小”、“实际大小”、“充满按钮”三个选项。选择“任 意大小” 项, 可以随意改变图像的大小; 选择 “实际大小” , 图像以实际大小显示; 选择“充满按钮”,图像将以充满按钮的形式显示。选择“任意大小”、“实际大 小“项时,都可以在组态时改变图像大小,但选择”充满按钮“项,无法改变图象 大小,只能通过改变构件大小来改变图像大小。 ? 透明:勾选此项后,可以选择透明色,使位图上的相应颜色透明。此选项只对位图 有效。 ? 背景类型:此项用来设置构件区域背景。它包括“细框按钮”、 “粗框按钮”、 “填 充颜色”三个选项。“细框按钮”、“粗框按钮”又可以分为“抬起”“按下”两 种状态。 ? 对齐方式:此项用来设置图像对齐方式。它分为垂直对齐、水平对齐。垂直对齐包 括:上对齐、中对齐、下对齐、任意对齐。水平对齐包括:左对齐、中对齐、右对 齐、任意对齐。任意对齐默认是中对齐。文字选项页 ? 文本列表:一个段点默认只对应一个文本,但是可以通过两种方式添加多个文本。 一种是点击文本列表下方的 “增加” 按钮; 一种是鼠标右键点击文本列表空白区域, 在弹出的快捷菜单中选择插入, 这两种方式都可以添加一个默认的文本到文本列表。 文本列表允许的最多文本个数为 15。用鼠标双击文本名,可激活文本名,进入编 辑状态,修改或输入新的文本名,按“Enter”键,接受新的文本名。同时,通过 鼠标拖动的方式改变文本的顺序可以改变文本的显示层次, 默认文本列表中的第一 个文本显示在最上层。 点击 “删除” 按钮或者是用鼠标右键点击文本列表空白区域, 在弹出的快捷菜单中选择删除,可以删除文本。 ? ? 效果预览:此项可以预览文本内容编辑后的效果。 文本内容: 此项可以对段点对应的文本列表中的文本进行编辑。 它支持 Ctrl+C (复 制)、Ctrl+V(粘贴)、Ctrl+X(剪切)、Delete(删除)操作,也可以通过鼠标 右键点击空白区域,用弹出的快捷菜单进行相应的操作。文本内容较多时,可以通 过上下、左右滚动条查看。 ? 对齐方式:此项用来设置文本的对齐方式。它分为垂直对齐、水平对齐。垂直对齐 包括:上对齐、中对齐、下对齐、任意对齐。水平对齐包括:左对齐、中对齐、右 对齐、任意对齐。任意对齐默认是中对齐。 ? ? ? ? ? ? 前景色:设置文字的颜色。 背景色:设置文字背景色。 3D 效果:设置文字的 3D 立体效果。 字体:设置文字的字体、字形、大小。 使用相同字体: 选择此按钮, 所有文本字体都变为在文本列表中选中的文本的字体。 使用相同文字:选择此按钮,所有文本内容都变为在文本列表中选中的文本内容, 设置的文本格式效果不受影响。显示属性页 ? 显示变量: 动画显示构件通过关联显示变量实现图像的切换显示。 显示变量的类型 包括:数值型、开关型、开关型的位。当显示变量类型为开关型的位时,分段点只 能为 2 个。位的范围为 0-31。 ? 动画显示的实现: 可用两种不同的方法来实现动画显示效果, 一种是用表达式的值 来驱动,当表达式的值发生变化时,构件用表达式的值来寻找对应的分段点,同时 显示与分段点对应的图像, 如找不到对应的分段点, 则构件显示最后一个分段点的 图像、文字;另一种是由构件自己驱动实现,按设定的频率,自动循环显示各分段 点对应的图像、文字,当显示变量的值为非 0 时,开始切换显示,当显示变量的值 为 0 时,停止切换显示。如果用多幅图像来表示一个物理对象的不同状态,那么, 不停地切换显示代表不同状态的图像和文字, 就可以模拟物理对象不断变化的动态 效果。 可见度属性页 动画显示构件的可见度属性页设置方法和意义与输入框构件相同。系统变量MCGS 嵌入版内部定义了一些数据对象,我们称之为 MCGS 嵌入版系统变量。在进 行组态时,可直接使用这些系统变量。为了和用户自定义的数据对象相区别,系 统变量的名称一律以“$”符号开头。MCGS 嵌入版系统变量多数用于读取系统内 部设定的参数,它们只有值的属性,没有最大值、最小值及报警属性。下面分别 介绍各个系统变量的意义和用法。$Year对象意义:读取计算机系统内部的当前时间:“年”() 对象类型:数值型 读写属性:只读$Month对象意义:读取计算机系统内部的当前时间:“月”(1~12) 对象类型:数值型 读写属性:只读$Day对象意义:读取计算机系统内部的当前时间:“日”(1~31) 对象类型:数值型 读写属性:只读$Hour对象意义:读取计算机系统内部的当前时间:“小时”(0~24) 对象类型:数值型 读写属性:只读$Minute 对象意义:读取计算机系统内部的当前时间:“分钟”(0~59) 对象类型:数值型 读写属性:只读$Second对象意义:读取当前时间:“秒数”(0~59) 对象类型:数值型 读写属性:只读$Week对象意义:读取计算机系统内部的当前时间:“星期”(1~7) 对象类型:数值型 读写属性:只读$Date对象意义:读取当前时间:“日期”,字符串格式为:(年-月-日),年用四位 数表示,月日用两位数表示,如:。 对象类型:字符型 读写属性:只读$Time对象意义:读取当前时间:“时刻”,字符串格式为:(时:分:秒),时、分、 秒均用两位数表示,如:20:12:39。 对象类型:字符型 读写属性:只读$Timer对象意义:读取自午夜以来所经过的秒数 对象类型:数值型 读写属性:只读 $RunTime对象意义:读取应用系统启动后所运行的秒数 对象类型:数值型 读写属性:只读$PageNum对象意义:表示打印时的页号,当系统打印完一个用户窗口后,$PageNum 值自 动加 1。用户可在用户窗口中用此数据对象来组态打印页的页号。 对象类型:数值型 读写属性:读写$UserName对象意义:在程序运行时记录当前用户的名字。若没有用户登录或用户已退出登 录,“$ UserName”为空字符串。 对象类型:内存字符串型变量 读写属性:只读}

我要回帖

更多关于 采样寄存器 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信