您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > FB2功能块的使用说明
FB2GET(可用于读取NC变量功能)FB2功能块可以使PLC程序从NC读取相应的变量,为了能正确的引导NCK变量,所需要通过“NCVARSelector”软件在数据块中生成源数据块STL。下面以读取机床轴位置来介绍使用FB2功能,在使用FB2功能时需要现将FB1里面的参数设置为“NCKomm=1”一,打开“NCVARSelector”软件,新建一个项目。搜索到一个“SMA”的变量然后“确定”二,找到代号为“988”“actToolbasepos”的选项,双击,出现下图这里面“Unit-No”是将要选着的通道号,Line是所要选着的轴号,单击OK这里我们生成3个项目如下图3图3二,单击菜单Code中的Selection选项,输入最后要生成的数据块号,默认为DB120,即生成DB120块,然后单击保存,找到所要保存到哪里的路径,这是会生成一个后缀名为“.var”的文件,名字可以自由取,这里以“zhoupos”为名三,单击菜单Code中的Generate生成后缀名为“.awl”这里以“zhoupos”为名字。这个后缀名为“.awl”的文件是将来被PLC所认可的文件四,打开STEP7在其源文件的跟目录下右键Insertnewobject—externalsource找到刚才保存的文件然后打开,这时就会在STEP7的源文件里生成一个STL的源文件,双击打开,然后编译,如果没有发生错误则会在STEP7里生成一个DB120的数据块,五,在符号表里给DB120数据块定义注释,例如本例为zhouposDB120保存六,在OB1里调用FB2块,然后定义背景数据块例如DB121,下面将FB2的各输入输出参数说明如下1)输入参数Req:正向脉冲沿启动任务,只有当Rep端产生一个上升沿变换时,才可以启动它的一个任务,也就是读取NC轴的一个位置变量,布尔型数据类型MunVar:读取的数据数量,范围1—8,整型数据类型Addr1~Addr8:[DBName].[VarName];这是“NCVARSelector”软件提供的NC变量标识符;数组型数据类型;例如本例为zhoupos.C0_SMA_actToolBasePos0_2其中zhoupos就是刚才在符号表里定义的DB120的注释Unit1~Unit8:变量地址中的区域地址;在这里就是“所要的通道”是那个,例如本例是通道1,就定义B#16#1,字节型数据类型Columnl1~Columnl8:变量地址中的列地址,字型数据类型。Line1~Line8:变量地址中的行地址,这里就是指的“轴号”例如读取第一根的位置则需要写成W#16#1,:注意这个轴号其实是跟生成的STL源程序文件有关系的,字型数据类型。2)输出参数Error:出错代码,类型BOOL,若数据传输出错,则该位为1,正常为0NDR:执行代码,类型BOOL,若数据传送成功,则该位为1,否则为0State:状态字,字型数据类型其含义如下1,低字节为1时表示接口出错;高字节表示发生错误的数据代码(1~8)2,低字节为2时表示任务错误;高字节表示在任务中存在编译错误3,低字节为3时表示负向确认不能执行;内部故障,按下“NCreser”可以消除4,低字节为4时表示读取的数据长度大于数据的存储区域;高字节数据表示故障发生的位置(RD1~RD8)5,低字节为5时表示变量转换数据类型错误;6,低字节为6时表示FIFO满;队列排满了,任务必须重复7,低字节为7时表示“NCKomm”没有赋值为1,注:NCKomm在NCK复位生效8,低字节为8时表示无效的本地目标区域,可能RD1~RD8指定的区域不是本地区域;高字节表示发生故障的位置(RD1~RD8)9,低字节为9时表示传输任务已被请求了,任务必须重新执行10,低字节为10时表示变量地址错误,单元或者行列号是0,高字节表示变量号。11,低字节为11时表示变量地址无效12,低字节为12时表示参数NumVar为03)输入、输出参数RD1~RD8:这个是读取目标区域的值,ADDR1~ADDR8指定的NCK变量的值并把它们复制到指定的PLC数据区例如,MD100,这样就会将某跟轴的位置值储存到MD100里面去。ANY数组数据类型最后需要将0B1,0B100,DB120,DB121下载到PLC里,NCK复位,这样才能生效下面讲生成的STL源程序简单说明一下DATA_BLOCKDB120这里是用“NCVARSelector”软件生成是那个数据块VERSION:0.0STRUCTC0_SMA_actToolBasePos0_2:STRUCTSYNTAX_ID:BYTE:=B#16#82;bereich_u_einheit:BYTE:=B#16#40;spalte:WORD:=W#16#2;zeile:WORD:=W#16#0;这个值如果是0.则可以在FB2的Line1~Line8输入端输入将要读取的那根轴的位置,例如W#16#1就是读取通道第一号轴的位置值,W#16#2就是读取通道的第二号轴的位置值如果这个值是1,则只能读取通道的第一号轴的位置值,就算Line1~Line8输入端写成W#16#2也不能将第二号轴的位置值读取出来,就算Line1~Line8输入端不写任何数据,其结果还是读取第二号轴的位置值的。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:STRUCTSYNTAX_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:STRUCTSYNTAX_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注:经常用的两个参数在“NCVARSelector”软件里面RP代号326rpa[..]是读取NC里的R参数的SMA代号988actToolBasePos[..]是读取通道里的轴位置当前值的
本文标题:FB2功能块的使用说明
链接地址:https://www.777doc.com/doc-2871472 .html