KUKA 微校 | 第七课:信息编程(中)-信息编程步骤(除对话信息)
今天,来讲讲这块的实操性的内容-- “信息编程的步骤(除对话信息)”,因对话信息的编程步骤与之有些区别,所以我们会放到信息编程(下篇)再做具体讲解。
滴!KR C4 Smartpad 上传来一条提示信息“There are 3 cubes moved.”, wow ,是不是迫不及待自己可以编辑出这么一条信息?心动不如手动,以“提示信息”为示例,一起操作起来把!
注意:这个数字3是一个变量,数字3从一个叫 counter 的整型变量获得。在这一次显示的时候 counter是3,则显示“There are 3 cubes moved.”,在下一次,如果 counter 是4,则显示“ There are 4 cubes moved . ” ( counter 的整型变量会在编程初始时候提前设置好)
STEP 1:定义作者(来源)、编号、内容(关键字)
使用系统预定义结构体 KRLMSG_T
■(本章节中所提到的结构体都是系统预先构建好的,直接声明结构体变量使用即可)
decl krlmsg_t mess
mess={ modul[] “KUKA”, nr2019001, msg_txt[] “There are %1 cubes moved”}
上面橙色部分分别为作者、编号、和消息要显示的内容。
编号:由用户自定义,与系统无关,便于用户对信息进行识别。
内容:内容中的%1是占位符,表示这里要显示的是一个变量。内容作为字符串来显示,要显示变量,不可以直接把变量名字填入到字符串中。如果把变量名 counter 直接填入到字符串中,则系统会显示 There are counter cubes moved ,而不是显示 There are 3 cubes moved 。
STEP 2 :定义占位符
■占位符一共有3个,分别是%1、%2、%3。
这一步主要是说明占位符是否有使用。如果使用了,占位符的数值从哪个变量获得。
使用系统预定义结构体 KRLMSGPAR_T
decl krlmsgpar_t para[3]
■ 此处必须是长度为3的数组,因为系统默认有三个占位符。
对于**个占位符%1,上述例子使用了,并且%1的数值来源于叫做counter的int类型变量,所以
para[1]={par_type#value}
para[1].par_int=counter
其中parameter[1]表示%1;#value:表示%1使用了;int和counter:表示%1从一个叫做counter的整型变量获得数值。
对于第二个占位符%2和第三个占位符%3,例子未使用,所以
para[2]={par_type #empty}
para[3]={par_type #empty}
其中para[2]和para[3]分别表示%2和%3;#empty:表示未使用。因为这两个占位符没有使用,所以也不需要规定他们从哪里获得数值。
STEP 3 :定义信息生成后的选项
定义信息生成之后的一些操作选项
使用系统预先定义的结构体 KRLMSGOPT_T
decl krlmsgopt_t option
option={vl_stop true, clear_p_reset true, clear_p_saw true, log_to_db false}
vl_stop: 生成信息时,是否打断预进指针,true为打断;
clear_p_reset:生成信息后,进行程序复位或退出程序操作,这条信息是否删除, true 为删除;
clear_p_saw :生成信息后,进行语句行选择操作后,这条信息是否删除, true 为删除;
log_to_db:是否将信息记录到数据库中,true 为记录。
STEP 4 生成信息
使用系统自带的函数set_krlmsg生成信息。
函数有返回值,返回值是信息在缓存中的地址,类型是int。
int address
address = set_krlmsg( #notify, mess, para[], option)
其中#notify表示要生成提示信息。
如果要生成其他类型信息, #quit :确认信息;#state :状态信息;#waiting :等待信息。