FB2功能块的使用说明.doc
-作者xxxx-日期xxxxFB2功能块的使用说明【精品文档】FB2 GET (可用于读取NC变量功能)FB2功能块可以使PLC程序从NC读取相应的变量,为了能正确的引导NCK变量,所需要通过“NC VAR Selector”软件在数据块中生成源数据块STL。下面以读取机床轴位置来介绍使用FB2功能,在使用FB2功能时需要现将FB1里面的参数设置为“NCKomm=1”一, 打开“NC VAR Selector”软件,新建一个项目。搜索到一个“SMA”的变量然后“确定”二,找到代号为“988”“actToolbasepos”的选项,双击,出现下图这里面“Unit-No”是将要选着的通道号,Line是所要选着的轴号,单击OK 这里我们生成3个项目 如下图3 图3二, 单击菜单Code中的Selection选项,输入最后要生成的数据块号,默认为DB120,即生成DB120块,然后单击保存,找到所要保存到哪里的路径,这是会生成一个后缀名为“.var”的文件,名字可以自由取,这里以“zhoupos”为名三, 单击菜单Code中的Generate生成后缀名为“.awl”这里以“zhoupos”为名字。这个后缀名为“.awl”的文件是将来被PLC所认可的文件四, 打开STEP7 在其源文件的跟目录下右键 Insert new objectexternal source 找到刚才保存的文件然后打开,这时就会在STEP7的源文件里生成一个STL的源文件,双击打开,然后编译,如果没有发生错误则会在STEP7里生成一个DB120的数据块,五, 在符号表里给DB120数据块定义注释,例如本例为 zhoupos DB120 保存六, 在OB1里调用FB2块,然后定义背景数据块 例如DB121,下面将FB2的各输入输出参数说明如下1) 输入参数Req: 正向脉冲沿启动任务,只有当Rep端产生一个上升沿变换时,才可以启动它的一个任务,也就是读取NC轴的一个位置变量,布尔型数据类型MunVar: 读取的数据数量,范围18,整型数据类型Addr1Addr8:DBName.VarName;这是“NC VAR Selector”软件提供的NC变量标识符;数组型数据类型;例如本例为"zhoupos".C0_SMA_actToolBasePos0_2其中"zhoupos"就是刚才在符号表里定义的DB120的注释Unit1Unit8: 变量地址中的区域地址;在这里就是“所要的通道”是那个,例如本例是通道1,就定义B#16#1, 字节型数据类型Columnl1Columnl8:变量地址中的列地址,字型数据类型。Line1Line8:变量地址中的行地址,这里就是指的“轴号”例如读取第一根的位置则需要写成W#16#1,:注意这个轴号其实是跟生成的STL源程序文件有关系的,字型数据类型。2) 输出参数Error:出错代码,类型BOOL,若数据传输出错,则该位为1,正常为0NDR:执行代码,类型BOOL,若数据传送成功,则该位为1,否则为0State:状态字,字型数据类型其含义如下1, 低字节为1时表示接口出错;高字节表示发生错误的数据代码(18)2, 低字节为2时表示任务错误;高字节表示在任务中存在编译错误3, 低字节为3时表示负向确认不能执行;内部故障,按下“NC reser”可以消除4, 低字节为4时表示读取的数据长度大于数据的存储区域;高字节数据表示故障发生的位置(RD1RD8)5, 低字节为5时表示变量转换数据类型错误;6, 低字节为6时表示FIFO满;队列排满了,任务必须重复7, 低字节为7时表示“NCKomm”没有赋值为1,注:NCKomm在NCK复位生效8, 低字节为8时表示无效的本地目标区域,可能RD1RD8指定的区域不是本地区域;高字节表示发生故障的位置(RD1RD8)9, 低字节为9时表示传输任务已被请求了,任务必须重新执行10, 低字节为10时表示变量地址错误,单元或者行列号是0,高字节表示变量号。11, 低字节为11时表示变量地址无效12, 低字节为12时表示参数NumVar为03) 输入、输出参数 RD1RD8: 这个是读取目标区域的值,ADDR1ADDR8指定的NCK变量的值并把它们复制到指定的PLC数据区 例如,MD100,这样就会将某跟轴的位置值储存到MD100里面去。ANY数组数据类型最后需要将0B1,0B100,DB120,DB121下载到PLC里,NCK复位,这样才能生效下面讲生成的STL源程序简单说明一下DATA_BLOCK DB 120 这里是用“NC VAR Selector”软件生成是那个数据块STRUCT C0_SMA_actToolBasePos0_2: STRUCT SYNTAX_ID : BYTE := B#16#82; bereich_u_einheit : BYTE := B#16#40; spalte : WORD := W#16#2; zeile : WORD := W#16#0; 这个值Line1Line8输入端输入将要读取的那根轴的位置,例如W#16#1就是读取通道第一号轴的位置值,W#16#2就是读取通道的第二号轴的位置值 如果这个值是1,则只能读取通道的第一号轴的位置值,就算Line1Line8输入端写成W#16#2也不能将第二号轴的位置值读取出来,就算Line1Line8输入端不写任何数据,其结果还是读取第二号轴的位置值的。 bausteintyp : BYTE := B#16#74; ZEILENANZAHL : BYTE := B#16#1; typ : BYTE := B#16#F; laenge : BYTE := B#16#8; END_STRUCT ; C1_SMA_actToolBasePos1_2: STRUCT SYNTAX_ID : BYTE := B#16#82; bereich_u_einheit : BYTE := B#16#41; spalte : WORD := W#16#2; zeile : WORD := W#16#1; 这里只能读取通道的第一号轴的位置值。 bausteintyp : BYTE := B#16#74; ZEILENANZAHL : BYTE := B#16#1; typ : BYTE := B#16#F; laenge : BYTE := B#16#8; END_STRUCT ; C1_SMA_actToolBasePos2_2: STRUCT SYNTAX_ID : BYTE := B#16#82; bereich_u_einheit : BYTE := B#16#41; spalte : WORD := W#16#2; zeile : WORD := W#16#2; 这里只能读取通道的第二号轴的位置值。 bausteintyp : BYTE := B#16#74; ZEILENANZAHL : BYTE := B#16#1; typ : BYTE := B#16#F; laenge : BYTE := B#16#8; END_STRUCT ; END_STRUCT ;BEGINEND_DATA_BLOCK注:经常用的两个参数 在“NC VAR Selector”软件里面 RP 代号326 rpa.是读取NC里的R参数的 SMA 代号988 actToolBasePos.是读取通道里的轴位置当前值的【精品文档】