2022年ASCL控制语言基础[参 .pdf

上传人:Che****ry 文档编号:27260986 上传时间:2022-07-23 格式:PDF 页数:13 大小:97.65KB
返回 下载 相关 举报
2022年ASCL控制语言基础[参 .pdf_第1页
第1页 / 共13页
2022年ASCL控制语言基础[参 .pdf_第2页
第2页 / 共13页
点击查看更多>>
资源描述

《2022年ASCL控制语言基础[参 .pdf》由会员分享,可在线阅读,更多相关《2022年ASCL控制语言基础[参 .pdf(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、AS/400 CL 控制语言基础课程大纲:l 第一章概述l 第二章CL 编程l 第三章程序间的通讯l 第四章测试功能第一章概述提要:* CL 命令的作用* CL 命令的分类* 系统菜单1.1 CL 命令的作用CL (Control Language) 控制语言是用户与操作系统之间的主要接口。可以说用户管理和操作AS/400 系统,均可以通过CL 实现。用户在不同的工作站或客户端可以同时使用CL ,其输入方式有五种 : * 在命令行输入* 在菜单画面选择* 在 work with 菜单中, option 选项* 在 CL 程序中执行* 远程调用前三种输入方式给用户提供一种交互式的操作方法,只执行

2、一条命令;第四种方式给用户提供一种操作,并包含逻辑控制 ,可以完整地实现一项功能; 第五种方式给用户提供在客户端直接执行主机操作的接口。由于 CL 使用了统一的命名方法, 提供 prompt 式的提示功能和具体到域值的在线帮助,以及自动生成命令参数的缺省值, 再加上有效性检查, 从而使得CL 的使用变得非常简单、方便和灵活。1.2 CL 命令的参数CL 使用了一种很科学,较为成功的命名方法。每条命令由命令名和一系列参数组成。命令名通常由动词加上接受动词的名词(定义为目标Object)组成,单词通常缩写为三个字母。例如:CL 命令命令名Send Message SNDMSG 名师资料总结 - -

3、 -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 13 页 - - - - - - - - - Copy File CPYF Work with Device Desripyions WRKDEVD CL 的参数由关键字和参数值组成,关键字通常和命令一样缩写,它用于说明参数的作用,在命令输入屏,按F11 键,即可看到关键字。在命令行输入命令时,如果参数是按照固定的顺序输入,则可以省略关键字。例如: SNDMSG MSG (HOLLEO) TOUSR (LENG) 命令名关键字 参数值大多数 C

4、L 都是 针对目标而言,目标是一个占据了一定存储空间的实体,它包括自身属性及其数据特征的描述,系统可以对它进行操作。目标的属性包括名字、类型、长度、建立日期及其它属性。不同目标具有不同的属性描述,大部分属性是可以修改的,而不需要重新建立。目标的数据值是储存于目标中的信息集合,例如 : 程序的值是组成程序的执行码,文件的值是组成文件的记录。目标的类型很多,常用的几种包括:* LIB 库* FILE 文件* MSGF 信息文件* PGM 程序* CMD 命令* JOBQ 作业队列* DTAQ 数据队列* MSGQ 信息队列* OUTQ 输出队列* DTAARA 数据域* JRN 日志* JRNRC

5、V 日志接受器* USRPRF 用户简要表* SBSD 子系统描述* JOBD 作业描述* LIND 线路描述* CTLD 控制器描述* DEVD 设备描述一个具体目标是由目标名和目标类型来唯一标识的,不同的目标类型可以使用同一个目标名。目标名由用户指定,目标类型由生成它的命令决定。不同类型的目标具有不同的操作。例如:CALL 命令只针对*PGM 目标进行操作。关于目标的操作,系统也进行了统一的规范,常用的几种包括:* WRK 工作* CRT 建立* ADD 增加名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 -

6、- - - - - - 第 2 页,共 13 页 - - - - - - - - - * CHG 改变* DLT 删除* DSP 显示* EDT 编辑* CPY 拷贝* MOV 移动* RNM 变名* SAV 备份* RST 恢复* RTV 获取* GRT 授权* DMP 转储第二章CL 编程提要:* CL 程序的作用* CL 程序的结构* CL 程序中的命令2.1 CL 程序的作用CL 程序是由 CL 命令组成,这些命令被编译成可供随时调用的程序。使用 CL 程序的优点包括:* CL 程序比单独输入和运行命令快,因为命令被编译成能够立即运行的形式。* 有些功能需要多条CL 命令一起完成。*

7、参数可以传递给 CL 程序,CL 程序内部也接收变量的定义,以适应特殊需要的程序操作。* CL 程序能够像其它高级语言程序一样被测试和监控。CL 程序可以应用到许多方面,包括:* 通过 CL 程序完成单独输入CL 命令所不能完成的功能,例如,人工或者定时提交批作用完成一项工作,如启动子系统, 进行文件备份, 整顿系统资源。* 给交互式或批处理的应用程序提供一个接口,使得在应用程序中直接进行系统操作或者获取系统参数。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 13 页

8、- - - - - - - - - * 在网络通信方面, CL 程序往往承担应用主控程序的角色。2.2 CL 程序的结构CL 程序是借助于ADT 工具中的SEU 输入的,在输入过程中,键入一条命令并按F4 键,就会显示出这条命令的提示画面,方便用户输入相应的参数值。CL 源程序主要分为以下几个部分:* 程序的开始和结束:PGM PARM(&A &B ) 开始 CL 程序END PGM 结束程序* 变量定义:DCL 定义变量DCLF 定义文件* CL 处理命令:CHGVAR 变量赋值MONMSG 监控错误信息SNDPGMMSG 传送程序信息RTVJOBA 获取作业属性值* 逻辑控制命令:IF T

9、HEN ELSE DO ENDDO GOTO * 内部函数:% SST 取子串名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 13 页 - - - - - - - - - * CAT 连接字符* 程序控制命令:CALL 调用子程序RETURN 返回调用程序2.3 CL 程序的命令CL 程序中仅可包含CL 命令,由系统提供的大多数CL 命令可用于CL 程序,而有些 CL 命令是专门用在CL 程序中的。下面是一张用在CL 程序中的部分命令清单,其中带有星号的表示该命令仅能用于

10、CL 程序内部。2.3.1 变量的使用* 变量说明,使用 DCL 命令来定义变量及其属性、 长度和初值。 标准格式如下:* CHAR DCL VAR (变量名) TYPE * DEC LEN (长度) VALUE( 初值) * LGL 使用 DCL 命令时,必须遵循的规则如下:#CL 变量名必须以& 开始,后跟字符不多于10 个,& 后的第一个字符必须是字母,其余的可以是字母或数字。#CL 变量值必须是:字符型最长为9999 个字符;数值型为压缩十进制数,最长为 15 位,其中小数位最长为9 位;逻辑型为“ 0”或“ 1” ,表示假或真。#CL 变量的缺省初值为:字符型为空,数值型为0,逻辑型

11、为“ 0” 。#对于字符型和数值型, 如果指定了初值而未指定长度, 则缺省长度为初值长度。* 变量值中小写字符的限制名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 13 页 - - - - - - - - - 用作变量的保留值必须用大写字母表示, 特别是当它们用引号括起来的时候。例如:DCL VAR(&LIB) TYPE(*CHAR) LEN(10) VALUE(*LIBL) DLTPGM &LIB/MY PROG 注意:如果 VALUE 参数不使用引号, 则小写是正确的

12、。 因为使用 SEU 编辑会自动转换成大写。* 变量赋值,使用CHGVAR 命令给变量赋值,其值可改变成:#常量:CHGVAR VAR(&A ) VALUE (0)#变量:CHGVAR VAR(&A ) VALUE (&B )#计算量: CHGVAR VAR(&A ) VALUE (&A+1 )#函数量: CHGVAR VAR(&A ) VALUE(%SST(&B 1 5) CHGVAR VAR(%SST(&A 1 5) VALUE(&B) 赋值时应注意以下几点:#对逻辑变量,被改变的值必须是一个逻辑值。#对数值变量,只能赋予十进制数,或者数字字符变量(包括小数点和正负号) 。#对字符变量,

13、既可接受字符, 也可接受十进制数。 赋十进制数时, 该字符变量的值是右对齐,前导补零,负号放在最左边。* CL 程序中注解的书写,在命令的头尾使用一对符号:/* 和*/。如果一行写不下一条命令,使用+。2.3.2 CL 程序内部的逻辑控制* 条件转移命令:IF COND(条件)THEN(一条命令)ELSE CMD(一条命令)或者IF COND(条件)THEN(DO)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 13 页 - - - - - - - - - . ENDDO

14、 ELSE CMD (DO). ENDDO * 无条件转移命令: GOTO LABEL * 操作符:逻辑的 *AND *OR *NOT 算术的 + - * / 字符的 *CAT *TCAT 关系的 *EQ *GT *LT *GE *LE *NE * 监视信息命令: MONMSG MONMSG MSGID(信息标识1 ,信息标识 50)+ EXEC(CL 命令)系统对于 CL 命令执行错误所送出的信息都具有唯一的标识符,如果不进行监视,则系统会终断程序,自动显示错误信息。2.3.3 系统资源的获取* 日期格式转换命令: CVTDAT CVTDAT DATE(被转换日期)TOVAR(转换后日期)

15、+ FROMFMT (原格式)TOFMT(新格式)TOSEP(新分隔符)其中:转换后日期的长度至少是:#对儒略日期(如YMD ,DMY 或 JUL 格式) ,不使用分隔符为5 个字符,使用分隔符为6 个字符。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 13 页 - - - - - - - - - #对非儒略日期,不使用分隔符为6 个字符,使用分隔符为8 个字符。日期格式和分隔符可以通过按F4 键选择。* 检索系统值命令: RTVSYSVAL RTVSYSVAL SYS

16、VAL (系统值名) RTNVAR(CL 变量名)其中:系统值名可以通过按F4 键选择,如:系统当前日期的系统值是QDATE。变量名必须和系统值的类型匹配,对字符型和逻辑型系统值而言,变量名的长度必须相符,对数字型,则长度不小于系统值长度。* 检索配置源命令: RTVCFGSRC 用于将现有配置的描述存放到源文件成员中。* 配置状态检索命令: RTVCFGSTS 用于获取各类配置描述的现行状态,放入CL 变量。* 检索网络属性的命令: RTVNETA 用于获取系统的网络属性,放入相应的CL 变量。如:系统名 SYSNAME ,本地网络标识LCLNETID 。* 检索作业属性命令: RTVJOB

17、A 用于获取当前运行作业的属性,放入相应的CL 变量。如:作业名JOB,用户名 USER。* 检索目标描述命令: RTVOBJD 用于获取指定目标的描述属性,放入相应的CL 变量。* 检索用户档案命令: RTVUSRPRF 用于获取指定用户的档案资料,放入相应的CL 变量。第三章程序间的通讯程序间的通讯是指不同程序之间数据或参数的传递和交流。这种通讯可以出现在不同种类的程序中。如:RPG 与 C 语言,也可以出现在不同机器上,如:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页

18、,共 13 页 - - - - - - - - - PC 与 AS/400。针对 OS/400 而言,通常程序间的通讯具有三种方式:* CALL 、RETURN 命令* 数据队列通讯* 数据域通讯3.1 CALL 命令的使用调用程序:CALL PGM(PGMA) PARM(&A &B )被调用程序: PGM PARM(&C &D )有关 CALL 命令使用的几点说明:* 参数值可以是字符常量、数值常量、逻辑常量或CL 常量,最多可达40 个。* 参数值以CALL 命令中出现的顺序传送,这必须与被调用程序的参数顺序相匹配,变量名不一定相同。* 被调程序中的接收参数必须说明,但接收值不受变量说明中

19、初值的影响。* 接收参数值的改变会反映到调用程序中,但常量传送不会改变。* 字符常量通常以32 个字节传送,数字常量以15.5 长度压缩格式传送。3.2 数据队列的程序通讯数据队列( *DTAQ )是系统目标中的一种类型,当建立了这种目标后,一个程序可以发送数据给它,另一个程序再从中接收数据,从而达到程序之间的数据通讯。3.2.1 数据队列的优点* 数据队列是两个作业之间进行异步通讯的最快方法。相对数据库文件、 消息队列或数据域而言,它需要较少的额外开销。* 多个作业可以向相同的数据队列送数据和取数据,而数据队列的先进先出、后进先出或关键字顺序排列属性,能够保证数据送取的正确性。* 在任何高级

20、语言程序中, 通过调用系统提供的程序, 就可以对数据队列进行操作,而且操作方法灵活方便。数据队列的操作和使用包括两类:第一类使用CL 命令;第二类调用系统程序。CL 命令:CRTDTAQ 建立数据队列DLTDTAQ 删除数据队列名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 13 页 - - - - - - - - - WRKDTAQ 工作数据队列系统程序:QSNDDTAQ 发送数据队列QRCVDTAQ 接收数据队列QCLRDTAQ 清除数据队列QMHQRDQD 检索数据

21、队列3.2.2 数据队列的发送需要将数据发送给数据队列, 只要在程序中调用QSNDDTAQ 。在 CL 程序中,调用的格式如下:CALL PGM(QSNDDTAQ) PARM(&QNAME &LIB &FLDLEN &FIELD +&KEYLEN &KEY) &QNAME :是长度为 10 的字符型,它命名了数据队列,如:IN_Q。&LIB :是长度为 10 的字符型,它命名了数据队列所在的库,如:*LIBL 。&FLDLEN : 是长度为 5 的数字型,它规定了发送给数据队列的字符数,如:100。&FIELD : 是长度为 &FLDLEN 的字符型,它包含了具体发送给数据队列的数据。&KEY

22、LEN : 是长度为 3 的数字型 ,它说明了传送给数据队列的关键字长度,如:6。&KEY :是长度为 &KEYLEN的字符型,它包含了传送给数据队列的关键字数据。注:后两个参数可以自选,如果说明了一个,则必须说明另一个。3.2.3 数据队列的接收需要从数据队列中接收数据, 只要在程序中调用QRCVDTAQ 。在 CL 程序中,调用的格式如下:CALL PGM(QRCVDTAQ) PARM(&QNAME &LIB &FLDLEN + &FIELD &WAIT &ORDER KEYLEN &KEY &SNDRLEN &SNDR) &QNAME :是长度为 10 的字符型,它命名了数据队列。如:O

23、UT_Q。&LIB :是长度为 10 的字符型, 它命名了数据队列所在的库。 如:*LIBL 。&FLDLEN : 是长度为 5 的数字型,它规定了发送给数据队列的字符数。&FIELD :是长度为 &FLDLEN 的字符型,它包含了从数据队列中接收到的具体数据。&WAIT :是长度为 5 的数字型,它说明了等待接收数据的时间。负数表示无限制的等待;零表示不等待;正数示要等待的秒数,最大值是9999。这个参名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 13 页 - -

24、- - - - - - - 数只有在数据队列中无满足条件的数据时, 才起作用。&ORDER:是长度为 2 的字符型,它说明了按关键字接收数据的条件。可用的字符值是: GT、LT、EQ、GE、LE。&KEYLEN :是长度为 3 的数字型 ,它说明了接收数据队列的关键字长度。&KEY :是长度为 &KEYLEN的字符型,它标识了用于从数据队列中接收数据的关键字变量。&SNDRLEN :是长度为 3 的数字型,它规定了发送者标识的长度。&SNDR:是长度为 &SNDRLEN 的字符型,它包含了发送者标识的数据。注:后三个参数可以任选, 但是&ORDER、&KEYLEN 和&KEY 必须同时说明。3

25、.2.4 数据队列的清除需要从数据队列中清除数据,只要在程序中调用QCLRDTAQ 在 CL 程序中,调用的格式如下:CALL PGM(QCLRDTAQ ) PARMM(&QNAME &LIB )3.2.5 数据队列的检索需要检索一个数据队列的描述项,只要在程序中调用QMHQRDQD 。在 CL 程序中,调用的格式如下:CALL PGM(QMHQRDQD ) PARM(&RCVR &RCVRLEN + &FORMAT &DQNAME )&RCVR :是长度为 &RCVRLEN的字符型,它标识了含有数据队列性的变量。&RCVRLEN : 是长度为 4 的数字型,它说明了 &RCVR 长度。&FO

26、RMAT : 是长度为 8 的字符型,它定义了接收模板的格式。&DQNAME : 是长度为 20 的字符型,它标识了数据队列和所在库,前十个字符是队列名字,后十个字符是库名。3.3 数据域的程序通讯数据域( *DTAARA )是系统目标中的一种类型。当建立了这种目标后,可以用来存入数据,以便任何程序进行读取和修改。数据域的典型用途如下:* 提供用于几个程序中的常数字段,易于共享和修改。如:标题、说明等。* 在一个作业中提供一个传递信息的区域。* 在一个作业中提供一个字段作为控制参数,以便容易地得到修改。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - -

27、 - - - - - 名师精心整理 - - - - - - - 第 11 页,共 13 页 - - - - - - - - - 数据域的CL 命令包括:CRTDTAARA 建立数据域,长度不超过2000 CHGDTAARA 改变数据域,改变时数据域被锁定DSPDTAARA 显示数据域,可以以十六进制方式显示RTVDTAARA 检索数据域,检索值需要存入CL 变量DLTDTAARA 删除数据域WRKDTAARA 工作数据域第四章测试功能提要:* CL 程序的编译* CL 程序的测试4.1 CL 程序的编译CL 源程序必须经过编译,生成*PGM 方可运行。建立程序的方法有两种:一是,使用CL 命令

28、 CRTCLPGM,二是,使用PDM 菜单选项14,按 F4 键即可对命令参数进行选择。系统编译的情况全部记录在编译清单中,通过WRKSPLF 即可看到。编译过程中的错误被列在相应命令后面,以及文件的最后,方便用户查找。下列类型的错误将停止程序的建立:* 值错* 句法错* 命令内部与参数间不符* 有效性检查有错CL 程序可以通过反编译命令RTVCLSRC,重新建立CL 源程序。使用该命令时,必须满足建立编译程序的参数ALWRTVSRC 为 *YES。 当源程序被反编后,任何注释信息不再重新产生,以下程序序言将被建立:* 所有者名* 源程序的最终修改日期* 源程序的重建日期和时间* 最初编译时的

29、许可程序级名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 13 页 - - - - - - - - - 4.2 CL 程序的测试对于 CL 程序在编译和运行中的错误,系统提供以下几种测试功能:* 程序转储。在 CL 源程序中输入命令DMPCLPGM ,运行后通过WRKSPLF 即可看到转储内容。包括程序信息队列的全部信息和全部变量的数值。如果程序运行出错,出现提示画面时,输入D 也可进行程序转储。* 设置断点。第一步,启动测试环境, 使用命令STRDBG PGM (PGMA) ;第二步,设置断点,使用命令ADDBKP STMT (1500) PGMVAR( &A &B); 第三步,运行程序,显示断点信息; 第四步,结束测试环境, 使用命令ENDDBG。* 设置跟踪。跟踪是记录程序中语句执行顺序的过程。系统并不自动显示跟踪信息,而须使用命令DSPTRCDTA 请求显示跟踪信息,信息包括语句执行的顺序和 ADDTRC 命令中指定的变量值。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 13 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁