您好,欢迎访问三七文档
GD语言中文说明目录一.引言二.概述三.语言结构3.1语法元素3.1.1被接受字符的设定3.1.2标识符3.1.3保留字d隔离符e数字常数f字符串g注释(2)数据结构a.GDL目标A)目标类型B)说明参数目录C)状态变量关键字D)运算符(操作码)E)激励关键字b目标间的层次关系A)数据类型和访问类型(3)过程a.激励条件b.可执行指令(4)GDL应用程序结构四.语言句法(1)GDL文件(2)GDL模块(3)目标说明a说明一个局部目标A)数组型目标B)定义文一子关系b说明一个外部目标(4)过程a激励器目录b表达式A)代数表达式B)关系C)布尔表达式C可执行指令:赋值与操作符调用A)赋值B)目标操作符调用d可执行指令:控制处理流程A)“IF”指令B)“WHILE”指令C)“RETURN”指令五、一个简单的程序例一、引言由于包装机不断加快,包装机日趋复杂化以及对于内设本机生产数据处理的机床需求量日益增加,基于使用大功率控制器微处理设备的设计就必不可少了。然而,CPU的特点是,控制器软件是用特殊且适应微处理器的语言书写的,就其本性而言,该语言是复杂的,要求专业人员来使用。用户在车间实际安装的是功率强大的尖端系统,具有高性能,但是,在执行维修操作或者修改机床配置时,该系统又是很复杂的。况且机床用户还日益面临着更加复杂的市场需求,这种需求产生了生产适应性问题,面临着生产批量的不断减少及机床型号繁多的数量和种类,这种形式就更加迫切需要有一种控制系统,可以让本厂人员能进行简便的再配置,而不必依靠制造商的专业操作人员来操作。为满足这一需求,对自动包装机械已开发出一种新的控制系统,即使在使用极大功率CPU时,也可以通过一种专门的程序语言与用户接口,这就是GD(GDLanguage)语言。实际上,GD语言(GDL),结构化语句(structuredtext)描述程序设计语言,是一种高级结构程序语言,它是模块化的、能以一种简单而又快捷的方式对所有组成被控制系统的实际逻辑设备进行描述,然后,执行控制算法、过程可以在这些设备上运行。二、概述GDL允许对数据结构(称为GDL目标)定义,它们代表在机床上须受控制的实际部分或逻辑部分,GDL还可以对控制算法(称为GDL过程)的定义,它们为使系统在控制状态下作出所需要的行为而建立的目标应执行的动作。这样,以说明目标和过程的说明指令以及目标本身的操作指令都定义为构成过程本身的可执行指令。一个GDL应用程序表示一套用来控制机床的所有目标和过程,在广义上来说是由一定的模块组成。每一个模块内含有一定的目标所需要的说明,而对于过程,则可有可无。在一个模块中定义的目标通常可以与在其他模块中的目标有逻辑联系。例如:其中一个目标的特性可以根据另一个目标的特性进行独特的定义,或者一个过程的可执行指令可以参考在别处说明的目标。对于软件本身的发展速度和维修方面说来,发展使用复合、分离模块的应用程序的可能性是主要优点之一,但是有一个有限。在应用程序参考表示机床实际部分的条件下,识别存在目标的名称必须在整个应用程序中是唯一的,相应地,用户应当为过程的名称和模块的名称使用唯一的标识符(名称)。三、语言结构在这一章里,总体上对描写GDL的元素作分析,即是基本概念,但不作详细说明。首先,分析GDL语法元素,然后是数据结构及意义,接着是GDL过程的概念与执行方法,最后是浏览应用程序软件包的总体结构。在第四章里,详细说明写一个程序所使用的语句。3.1语法元素在这一节里,要说明GDL编译程序所接受的字符设定及语言元素的语法类型(单词),这些元素包括:标识符、保留字、隔离符、数字常量、字符串。属于这其中一类的序列单词组成GDL指令。表示指令结束并属于隔离符类的单词是“;”。3.1.1被接受字符的设定可以使用的字符是下列ASCII码A………………Za……………….z0………………9特殊的字符是&=+-*/(),;$[]{}‘_字符设定包括空格(SP),回车(CR),换行(CF),横向制表符(HT)。如果在一个字符串中(即包括在二个单括号内的一组字符)插入一个横向制表符,这个制表符将转换成一个空格。要得到所需要的空格,应当插入所需要的空格数,而不是制表键。如果在源程序中所包含的字符有一个不属于被接受的字符,那么一个语法出错信息便会显示。在字符串及注解中,可以有不属于被接受的字符存在。3.1.2标识符标识符是定义模块名、过程名及GDL目标名的单词。标识符的长度可达40个字符长度,第一个字符必须是字母或一个划线字符首字符后面的字符可以是字母、数字和划线符。所有的标识符必须与保留字不同,参见所附的保留字目录。3.1.3保留字保留字是编译程序为识别指令的语法而为其本身保留的单词,每一个保留字都不能与任何一个标识符相同,而且不能使用缩写形式。参见附录中的保留字。3.1.4隔离符几乎所有的特殊字符均为隔离符,它们分为二类:单隔离符=+-*/(),;|[]{}‘双隔离符==在写双隔离符时,他们之间或他们与其他控制符之间不留空格,如:一个回车(CR),否则这个双隔离符将被解释成两个单隔离符。3.1.5数字常量数字常量是一列数字字符,最长可达九个字符(最大允许值为999999999),在执行过程中,他们的值不变。当“减号”属于隔离符类时,放在常量前面的一个最终“一目减号”(一)不是该常量的组成部分。GDL不接受实数型常量,只接受整数,即十进位小数点不能使用。3.1.6字符串字符串是括在一个单引号(‘)内的可打印ASCII码序列,因此(‘)字符不是字符串一部分,注意不要把单引号(‘)字符与重音符号(`)混淆,字符串的长度允许达40个字符。若在一个字符内含有一个注解,这个注解就成为该字符串的一部分。字符串还可以含有一个横向制表字符(HT)。但是,该字符将转换为串内的一个空格。因此,即使在模块目录中呈现一个带有四个空格的字符串,但是程序运行中,控制系统会读已被转换的字符串,由此生成的正文显示出只带一个空格。为避免这种情况的发生,只要不在字符串使用制表字符就可以了,以和实际需要相符的空格数来代替制表字符。要把一个字符串拆为二行,击ENTER键,移至下一行,然后继续该串的后一部分,在这新的一行里,要重复单个的起始引号(‘),并用单引号(’)结束该字符串。若要把字符串拆成二行,单个结束引号(’)只能在该串结尾处使用。字符串的显示是不留空格的。但可以在续行引号(‘)左面插入空格,(如,产生一个缩进的第二行部分)其他非空格字符则不能插入。几个正确的例子:‘stringsplit‘ontotwolines’‘stringsplit‘ontothree‘lines’3.1.7注解注解的开始和结束都用特殊字符‘│’,注解可以含有无数个ASCII码,包括CR,LF及HT控制字符。在一个注解中不能插入另一个注解。但可以插入一个字符串(该字符串就成为注解的一部分)。编译程序对所有组成注解的字符不予理睬。注解可以在原程序的任何点出现,甚至在构成一个指令的两个单词之间也可以插入。注解还能用来分隔二个其他符号,就好象是一串空格。3.2数据结构如前所述,GDL提供特有的数据结构。其中一些结构使得对受控机器的配置(‘GDL目标’)变得简单有效,而其他结构则是用来控制和检测的实际装置(‘GDL过程’)。这一节对GDL目标基础的基本概念作一说明,各特征的详细列表在具体细则中介绍。3.3节描述‘GDL过程’。3.2.1GDL目标程序员能够处理的GDL目标是对机床的实际部分或者不是实际硬件装置但表示软件结构部分的描述。按照需要,使用说明指令,在特定情况的基础上定义特性。借助于组成GDL过程体的执行指令可对状态进行修正。GDL目标描述一个机器实际器件的例子是STEPPER$MOTER(步进电机),GDL目标描述一个软件装置的例子是SYNOPTIC(概要)。目标既可以是向量,也可以是数组。一个数组目录代表一组称为数组元素的向量目标。每一个数组元素有它自己的下标。下标括在大括弧内,它须设定为正整数值,即数组中第一个元素的下标是1而不是0。可以说明一个数组目标,但不能说明它的单个的元素。所以在写说明时,决不要指明下标。反之,在可执行指令中,根据对下标的需要与否,可以参考全局数组及单一个别的目标。目标类型有两大类:第一类是我们已经描述过的,即一组硬件或软件目标类型,它们描述受控系统或允许写控制过程(标准目标)。第二大类(用户目标)含有专用软件目标类型,它们不直接控制机器,而是定义在GDL程序中有意义的变量及用于写程序的变量。这类用户目标类型有:—DIGITAL$VARIABLE—INTEGER$CONSTANT—INTEGER$VARIABLE一个INTEGER$VARIABLE类型目标是一个程序变量,用以存入一个完整的整型值。与之相仿,一个DIGITAL$VARIABLE类型目标可以含有一个数字值,而一个INTEGER$CONSTANT类型目标含有一个在说明阶段被赋于的整型值,该值在程序执行过程中不能改变。标准目标与用户目标之间的区别仅仅是语义上的不同。假定编译程序对这二大类不作正式的区分,而且程序员只见到一组数据结构,那么我们从现在起只讲‘GDL目标’,不再区分这二大类。GDL目标不是一组目标,而是一组目标类型,程序员可以定义任意量的目标,即属于其中一种允许类型的单个目标,要用不同的名称去标识各单个目标。每个名必须是唯一的,就是说,再回到前面的例子,STEPPER$MOTOR和SYNOPTIC是二类目标,它们可以用来定义,如‘main_motor’和‘carriage_advance_motor’为属于第一类的二个目标。现在让我们来分析描述一个通用类型目标的元素。在为此类目标作说明时,就获得到达它所有元素的通道路,这样便可以与该目标本身相互配合。3.2.1.1目标类型目标类型是这一范畴的具体特征,它用GDL语言的一个保留字来表示。几个例子如:STEPPER$MOTOR,DIGITAL$INPUT,MACHINE.3.2.1.2说明参数目录属于某一类的所有元素由一列标识特征的参数作完整的描述。这些值可以是数字常量,字符串,关键字或标识符,按需而定,一般来说,目标有所需要的特征。要考虑到每类目标赋值的一个极限。在某些情况下,同一目标的参数间存在着逻辑关系。如:对于STP$MOTOR$AXIS来说,LOWERTRAVELLIMIT(运行下限)参数必须小于或等于UPPERTRAVELLIMIT(运行上限),否则会触发一个错误信息。字符串类型参数是双份的,以允许字符串以二种不同语言显示。通过专用指令由控制台执行对语言的选择。3.2.1.3状态变量关键字这些是关键字(状态变量关键字),当它们与标识属于此类范畴的一个目标名有关时,便为目标生成一个状态变量。如:CONSTANT$STATUS是一个状态变量关键字‘CONSTANT$STATUSOFmain_motor组合是目标‘main_motor’的状态变量。整组状态变量描述了某一时刻一个目标的特定状态,并由操作系统运行时间支持(RTS)控制器作不断的修正,以响应机器上发生的事件。这就是说,目标的状态是在不断更新的,它所表示的是系统真实的状态。而GDL程序员双能介入每一个单一的变量,根据目标本身的控制要求对变量作出修改,即,当一个特定事件发生时,GDL程序员可以改变状态并执行所需的控制功能。如:对‘CONSTANT$STATUSOFmain_motor’赋值,结果是电动机操作条件的修正,这表示,电动机可以被启动来接收能量,也可以被切断电源。GDL接受5种不同的数据(V、3、2、2、1)每个状态变量只能取它的类型所许可的值,对于许可类型值的某一子集可能有进一步极限。在整数值是,这一极限可以是静态的,也是可以是动态的。在前一种情况中,极限对该目标类型是典型的。因此,这些极限在手册是标明相同类型的所有目标都有相同的极限(例如:对PWM$OUTPUT,变量VALUE表达一个值‘每一千’)。所以赋值不能大于1000或小于0),而在后一种情况中,赋于说明参数的值为
本文标题:gd语言中文说明
链接地址:https://www.777doc.com/doc-2873639 .html