1、 高级手册( 下)1普洛菲斯国际贸易(上海)有限公司Pro-face China International Trading (shanghai) Co., LtdGP-PRO/PB for windows 高级应用手册(下)上海市浦东大道 138 号永华大厦 7 楼 F 座TEL:021-68889825FAX:021-68889826http:/高级手册( 下)2目 录1 D 脚本编程语言(D-SCRIPT) .31.1 选择 special(特殊)下拉菜单 31.2 选择 D-Script(D 脚本) 弹出 D-Script(D 脚本列表) .31.3 Add(添加)按扭,编辑增加 D-
2、Script(D 脚本对话框) 41.4 Options(设置)下拉菜单 51.5 Trigger(触发栏 )51.5.1 定时周期触发 .51.5.2 位边沿触发 51.5.3 表达式触发 61.6 D-Script Toolbox(D 脚本工具箱 )61.6.1 Functions(功能)下拉列表框 .71.6.2 Statements(编程语句) .141.6.3 operators(运算操作符) .151.6.4 Compare (比较命令) 182 弹出键盘窗口 192.1 弹出键盘的应用 .192.2 自动弹出键盘(v 60 以后) 192.3 U-tag 实现弹出键盘的制作过程
3、.192.4 窗口使用的限制 .233 密码制作 .243.1 一级密码制作的效果 243.2 一级密码制作的具体介绍 .243.3 多级密码制作 .274 扩展串口的应用 .294.1 接收功能 294.2 发送功能 294.3 控制 .294.4 状态 .314.5 接收数据的大小 .324.6 扩展通讯口的设置 324.7 通讯举例 32高级手册( 下)31 D 脚本编程语言(D-Script)在用 GP 软件制作画面的过程之中,根据实际情况,有时候需要对一些数据进行处理,包括判断、运算、转移、复位,甚至包括一些动画的绘制,如果将这些数据全部交给 PLC 处理,必然大大增加 PLC 的负
4、担,减缓通讯速率,并且给 PLC 编程人员加大了编程的难度,为此,GP 提供了一项特殊功能:D 脚本编程语言 (D-Script)。使用D 脚本编写程序,使 GP 本身能够完成一些数据处理,从而协调好与 PLC 的通讯工作。1.1 选择 special(特殊)下拉菜单D-script(D 脚本 )仅仅针对当前画面有效。Global D-Script(全局 D 脚本)对所有画面均有效,适用于 GP77 和 GPZ000 系列。高级手册( 下)41.2 选择 D-Script(D 脚本) 弹出 D-Script(D 脚本列表)1.3 Add(添加 )按扭,编辑增加 D-Script(D 脚本对话框
5、)File (文件)下拉采单:高级手册( 下)5Export Text File (导出文本文件):将公式编辑栏里的内容转化为 txt 文本文件后保存到 指定目录。Import Text File (导入文本文件): 将指定目录中的 txt 文本文件内容打开在公式编辑栏里。 高级手册( 下)61.4 Options(设置)下拉菜单 use syntax Guide (语法导向 ):可以抽取公式编辑栏中的数据。use syntax Guide (语法检查 ):自动检查公式编辑栏中的语句是否合法。1.5 Trigger(触发栏)触发栏用于设置启动程序的触发条件,当触发条件成立,便执行公式编辑栏中的
6、程序。触发条件有三种形式:定时周期触发、位边沿触发和表达式条件触发。1.5.1 定时周期触发选择定时周期触发时,设置触发时间(秒) ,则每隔这一段时间,程序执行一次。1.5.2 位边沿触发高级手册( 下)7:在设定位地址的上升沿触发。:在设定位地址的下降沿触发。:在设定位地址的上升沿和下降沿均触发。1.5.3 表达式触发:当 Action(操作)栏中的表达式为由假(0)变真(1) 时,程序执行一次。:当 Action(操作)栏中的表达式为由真(1)变假(0) 时,程序执行一次。1.6 D-Script Toolbox(D 脚本工具箱)当 Show Toolbox 被选中时,弹出右图所示 D 脚
7、本工具箱,在此工具箱中包含了 D 脚本所用到的所有指令。高级手册( 下)81.6.1 Functions(功能)下拉列表框在 Functions 下拉菜单中有五大部分:Data Set(数据设置) 、Draw( 绘图)、Memory Ops.(内存操作)、SIO Port Ops.(SIO 口操作)、Bit Ops.(位操作)。1.6.1.1Dataset(数据设置) Bit Address:设置位地址。Constant:设置常量,有 Dec(十进制)、Oct(八进制) 、Hex(十六进制)三种数据格式。Temp. Address:设置临时地址。Word Address:字地址。1.6.1.2
8、Draw(绘图)Call Screen:调用一个画面,需要设置画面号以及目标画面中心所放置的坐标。Circle:绘制圆,需要设置圆中心坐标以及半径。Dot:绘制点,需要设置点放置的坐标。Line:绘制线段,需要设置线段放置的起始以及终结坐标。Rectangle:绘制矩形,需要设置矩形的左上角和右下角坐标。高级手册( 下)91.6.1.3Memory0Ps.(内存操作)Memory Copy(内存复制):该功能可以将字地址区段复制。格式:memcpy(w:DI Word Address,w:SI Word Address,Copy Size)DI Word Address:内存复制的目标起始字地
9、址。SI Word Address:内存复制的源起始字地址。Copy Size:设置区段 (范围在 1 640 之内)。范例: Memory Copy(variable):间接可更改的内存复制。格式:_memcpy_EX(Parameter1,Parameter2,Parameter3)Parameter1:带偏移量的目标起始字地址,偏移量在临时字地址中设置。Parameter2:带偏移量的源起始字地址,偏移量在临时字地址中设置。Parameter3:设置区段,可以直接用常数给定,也可以用 LS 字地址或者临时字地 址设置(范围在 1 640 之内 )。范例:高级手册( 下)10Memory
10、Set(内存设定):可以将字地址区间赋值。Set Word Address:设置起始字地址。Set Data:给字地址赋值。Set Size:设置区段(范围在 1 640 之内)。范例:该语句将字地址 LS0020 LS0024 赋常量 8。Memory Set(Variable):间接可更改的字地址区间赋值(仅使用于 GP2000 系列,GP2301和 GP2501 除外) 。高级手册( 下)11Parameter1:目标起始字地址,在临时字地址中设定偏移量。Parameter2:赋值。可以在 LS 区或者临时字地址设置,或者直接输入常量设置。Parameter3:设置区段,可以在 LS 区
11、或者临时字地址设置,或者直接输入常量设置(范围在 1 640 之内) 。范例:该语句执行下列功能: 将常量 80 赋于字地址 D0108 一 D0113。Offset Address:字地址偏移,该功能适用于 GP77R 系列、 377 系列和 GPZ000 系列。高级手册( 下)12格式:Word Address # Temporary Work,该语句表示一个新的字地址,即旧地址Word Address + Temporary Work 的数值而生成的新地址。范例:该语句表示:将字地址 LS0105 的内容赋给字地址 LS0100。1.6.1.4 S1O Port OPs.(扩展串口,适用
12、 GP2000 系列)Label Setting 该功能可写,用于清空输出、清空输入、复位错误状态。格式:以“位” 为对象时:c: EXT SIO CTRL* *代表 00 15以“字” 为对象时:c: EXT SIO CTRLEXT SIO CTRL(扩展口清空控制 ) 高级手册( 下)13注意:当 EXT SIO CTRL 被设定后,程序将以如下顺序执行:复位错误-清空输入-清空输出。EXT SIO STAT(扩展口状态)该功能只读,包括如下一些内容。高级手册( 下)14注意:保留位留待以后设定,勿占用。数据传输错误有两种:传输间歇和数据堵塞。当两种错误同时存在的时候,传输错误位 ON。数
13、据接受错误有四种:奇偶错误、满载错误、桢错误、溢出错误。只要其中之一发生,数据接收错误位 0N。EXT SIO RECV(扩展口输入)该功能只读,显示接收到的字节数。格式:r: EXT_SIO_RECVSTR ERR STAT(字符串错误状态)SIO Receive(扩展口数据接收)从扩展口读入数据写入指定地址寄存器。高级手册( 下)15格式:IO_READ( p: SIO Port No.,w: Receive Buffer Top Address,10)SIO Port No.(扩展口):指定接收数据的扩展口。.Receive Buffer ToP Address(数据接收始地址):起始地
14、址存储接收数据的数量,其后连续地址存放数据。Receive Size(数据大小 ):设定接收数据的数量。范例:该程序执行:SIO Send(扩展口数据发送)从指定寄存器写入数据到扩展口,然后由扩展口发送高级手册( 下)16格式:IO_WRITE(p: SIO Port No.,w: Send Buffer Top Address,Send Size)SIO Port No. (扩展口):指定发送数据的扩展口。Send Buffer Top Address(数据发送始地址):指定发送数据的起始源地址。Send Size(数据大小):指定发送数据的数量。范例:该程序执行:1.6.1.5 Bit O
15、ps.(位操作)Clear Bit:将指定的位置“0”。Set Bit:将指定的位置“1”。高级手册( 下)17Toggle Bit:将指定的位状态转换,0-1 或者 1-0。1.6.2 Statements(编程语句)当( )中的条件为真,则执行 中的命令。当( )中的条件为真,则执行命令 1,否则执行命令 2。.循环执行 中的命令,循环次数设定于临时地址中。高级手册( 下)18.在执行完命令 1 之后,不执行命令 2,结束循环。Break 指令适用于 GP77R、GP377和 GPZ000 系列。1.6.3 operators(运算操作符):左移位。将左边的数据向左移位,移的位数由右边的数
16、据决定。范例:高级手册( 下)19:右移位。将左边的数据向右移位,移的位数右右边的数据决定。:字的与运算。将两个字的对应位进行“与” 运算。范例:W0020T0000W0020:字的或运算。将两个高级手册( 下)20字的对应位进行“或”运算。范例:W0020T0000W0020:字的或非运算。将两个字的对应位进行“或非” 运算。范例:W0020T0000运 算 后W0020:字取非。将一个字的所有位进行“非” 运算。高级手册( 下)21范例:W0020W00201.6.4 Compare (比较命令)2.7 功能块在写 D 脚本的时候,可以将一些常用的功能写成一个功能 块,以便在其他 D 脚本
17、中调用(GP270 不支持该功能)。Call:调用一个功能块。New:新建一个功能块。Edit:编辑选中的功能块。Delete:册除选中的功能块。Copy:复制选中的功能块。Paste:粘贴选中的功能块。如何编辑功能块,请参照 D 脚本编辑器。高级手册( 下)222 弹出键盘窗口2.1 弹出键盘的应用 弹出键盘在实际应用中,可以使画面美观简洁紧凑。 GP-PRO/PB V5.05 及以前支持不自动弹出键盘,可以用 U-TAG 实现弹出键盘。 GP-PRO/PB V6.0 以后支持自动弹出键盘。2.2 自动弹出键盘 (v 60 以后)这是 GP-PRO/PB V6.O 以后版本的。在parts(
18、部品)菜单中选择“Keypad Input Display(键盘输入显示器 )”,出现“K eypad Input Display(键盘输入显示器 )”设定对话框中 (如图 2-2-1)。高级手册( 下)23(图 2-2-l)在图上如果选择“Use Pop-up Keypad(用自动弹出键盘)”就可以实现自动弹出键盘功能。而在 GP-PRO/PB V6.0 以前的版本就没有这个选项。如不选择或没有这一选项,就要用U-TAG 来实现。下面主要介绍如何用 U-TAG 来实现这一功能。2.3 U-tag 实现弹出键盘的制作过程1.新建一工程文件,打开画面编辑器窗口。2.制作一键盘画面。新开一个基本画
19、面,然后从Parts(部品)菜单中选择KeyPad(键盘) ,放置到画面,并保存画面( 例如保存为画面 2),如图 2-3-1。(图 2-3-1)3.将上面的键盘进行窗口注册,从Screen(画面)下拉菜单中选择Window Registering(窗口注册) ,出现一个对话框( 图 2-3-2),点击 ADD(添加) 把键盘窗口注册为窗口,本例高级手册( 下)24子注册为“窗口 1”(*具体的窗口注册请参阅操作手册第 98 页)。(图 2-3-2)4.键盘输入显示。再新建一基本画面,在Parts( 部品)下拉菜单中选择KeyPad InPutDisplay(键盘输入显示器 ),出现如下对话框
20、:(图 2-3-3)KeyPad InPut Display(键盘输入显示器)放置到画面后,画面如下 :图 2-3-4: KeyPad InPut Display(键盘输入显示器)放置到画面图(图 2-3-4)5.按图 2-3-3 所示的设置地址例子,要输入数据时,须使键盘输入功能被激活,即要使LS0020 地址为 ON,可以在 “KeyPad InPut Display(键盘输入显示器)” 上面叠加一个输入用于存储显示数据的字地址触发位地址高级手册( 下)25Bit Switch(位开关 )(*要透明的 ),地址设置为:LS100100。如图 2-3-5:叠加一个透明的位开关(图 2-3-5
21、)6.用 U-Tag 去调用键盘窗口。从Tags下拉菜单选择U-tag,弹出对话框 ,然后进行设置。U-Tag 有两种方式。Direct 方式用一个寄存器(bit0)控制窗口的显示与消失,哪个窗口出现以及窗口显示的位置是固定的。Direct 方式下还可以选择“High speed”方式,通过一个 Bit Address 来控制窗口的显示与消失。Indirect 方式用四个连续寄存器控制窗口的显示与消失、窗口号、窗口 X 坐标、窗口 Y 坐标。因此可以改变窗口显示的内容、移动窗口的位置。例子我们用 Direct 方式。“Designated Window(指定窗口)”里直接选择 Direct(直
22、接)方式。“Word Address(字地址)”设置为:LS1000。“window Registration No.(窗口注册号)”选择 1,如图 2-3-6 的对话框。U-Tag 设置的对话框。U-Tag 设置高级手册( 下)26(图 2-3-6)设置好 U-TAG 并放置在“基本画面 1”上( 自己认为比较理想的地方 )。如图 2-3-7 红色区域所示。U-TAG 的位置(图 2-3-7)7.当然要想让 U-tag 动作,也要对其进行触发。 因为前面的例子,U-Tag 是 Direct 方式控制,所以在基本画面 1 中的“KeyPad Input Display(键盘输入显示器 )”上再
23、叠加一个开关,按下该开关时将地址 LS1001 置为 1,控制窗口显示。8.弹出键盘输入数据以后,要让键盘窗口自动消失,只要把 U-tag 的触发位进行复位。在 GP 系统数据区,Enter 键输入数据时,LS0006 的 bit03 位对应发生状态反转。我们可以根据这个 bit 的状态变化,增加一个 D-SCRIPT 程序,来使 LS0200 复位。注意选择 Trigger 为“上、下沿”。此外,我们也可以在键盘 Enter 键的下面,叠加一个开关,按下该开关时将地址LS0200 置为 0(当然这需要在键盘画面里做!)。Enter 键使 U-Tag 触发复位的 D-SCRIPT 程序。高级手
24、册( 下)27(图 2-3-8)9.OK但是,还有可以简化的地方。如果 U-TAG 是用 High Speed 方式,即用一个 bit Address来控制窗口的显示与消失。我们想到“KeyPad InPut Display(键盘输入显示器)” 也是用一个 bit Address 来触发输入状态的。因此我们可以公用同一个 bit Address 来控制输入、U-TAG。这样就省了 LS1001 地址的使用、以及对 LS1001 操作的相关设置! 但是 U-TAG 采用 High speed 方式是有限制的。2.4 窗口使用的限制在使用 U-TAG 时当然也会有一些限制: 在同一窗口上不能同时执
25、行 U-TAG,K-TAG 及 V-TAG。 请勿在窗口上显示 Trend Graph(趋势图)。 有选择 High speed 选项和没有选择 High speed 选项的 U-TAG 不能在同一个画面显示。当选择 High speed 选项虽然窗口尚未显示,但资料写入的 TAG(如 W-TAG,D-Script 等)触发发生时,将会动作。如果你希望先显示窗口后,再执行资料写入的 TAG,请不要选择“High Speed”。 如果当前基本画面上的 TAG 和窗口数超过了 256,则第 257 开始的 TAG 不起作用(GP270/G P370/GPH70 为 128 个) 。 再同一个画面中
26、,最多可以设定两个使用“High speed”的 U-TAG。 如果当前画面及它调用的窗口上,所有的 R-TAG 中设定的显示位置数超过了 512,则第 513 开始的位置不会显示(GP270/GP370/GP470 只有 256)。3 密码制作密码在实际应用中是很有用的,许多地方需要进行加密码保护,这样为了防止重要的操作参数被修改不便于机器工作。高级手册( 下)28下面主要进行介绍密码(及多级密码)制作过程:3.1 一级密码制作的效果举一个简单的例子:如下图 4-1 所示:3.2 一级密码制作的具体介绍1. 先建一基本画面,为了要输入密码,就要有一个键盘输入显示窗口。在窗口上放置一个 K-T
27、AG(如图 4-2)就可以实现。本例中 K-TAG 的地址设置如下图 4-2,字地址设为:数据输入到 1000,触发位地址设为:110000。(图 4-2)2. 当然要输入密码就要有个键盘,可以在部品中直接选择,形状可以自己按照需要改动。3. 在实际输入密码时我们当然不想让别人知道,在输入密码时用*号来表示,这个功能可以用部品中的“Message Display(信息显示)” 来实现。本例为四位密码。 “Message Display(信息显示)” 的字地址设为:LS0200。用 LS0200对键盘按键的次数进行统计。按一下键时 LS0200=l,就显示一个 *号;按两下键时高级手册( 下)2
28、9LS0200=2,就显示两个 *号,依此类推。Message Display 的设定如下图 4-3 所示,图中 NO.of message(信息数)选择 8 以上都可以。message 所对应的每一条信息在 selected message 中输入,0 对应的信息输入空白内容,l/2/3/4 分别对应输入“*” 、 “*”、 “*”、 “*”。(图 4-3) 4. 下面就要实现用 LS0200 对按键次数的计数。l)为配合 *号显示,在键盘上叠加放置透明的开关按钮,对按键次数的计数。2)数字键上透明的字开关,按下时“次数加 1”,设置如下图(4-4),字地址是 LS200(同 Message
29、 display 相对应) ,按下时内容加 l(如果 l 个*号按一下就 2 个*号) ;3) DEL 键上透明字开关,按下时“次数减 1”,设置如图 (4-5);4) CLR 键上透明字开关,按下时“ 次数清零”,设置如图 (4-6);5) ENTER 键上的透明开关是为了实现输入密码后判断密码是否正确。ENTER 键上透明位开关设置,位地址:LS10001,5. 当输入错误的密码时需要弹出一个报警对话框,提示密码错误。这可以用 U-TAG 实现(U-TAG 的使用在上一章中也有介绍)。 l) 先在另外的一个 BASE 画面里制作报警内容。 2) 将它注册为一个报警窗口如图 4-7。3) 在
30、密码输入画面,使用 U-TAG。U-TAG 的字地址:LS0201 ;放在画面 5 上自己认为可以的地方。6. 相关的 D-SCRIPT 脚本D 脚本编程是此例中最主要的,可以在基本画面 5 上,菜单栏选择 Special 的下拉菜高级手册( 下)30单D-Script,再选择 ADD,就可以进行编程了。本例包括进入画面时初始化、密码判断、关闭报警窗口几个脚本。 进入画面时初始化。如图 4-8(图 4-8)图中当画面跳到基本画面 5 (LS0000 是系统区地址它的内容显示的是画面号,本例是第 5 画面) 时,信息显示(LS0200) 为零,报警信息 (LS020l U-TAG) 不触发,键盘
31、输入显示 (LS1000) 为空,set(LS010000)使键盘输入处于待输入状态。 密码判断。如图 4-9本例固定密码为:1234if(w:LS1000=1234)/如果密码为 1234w:LS0008=2/画面就切换到基本画面 2clear(b:LS020100)/清报警w:LS0200=0/清信息b:LS020100=0endifif(w:LS10001234)/如果密码不是 1234set(b:LS020100)/弹出报警endif*图 4-9 中 Edge Bit Address(边缘位地址)为:LS010001,同 ENTER 键上的透明的位开关相对应,当 ENTER 键按下后就执行这个脚本进行判断。