使用NC VAR Selector”软件读取轴位置的应用

已锁定

隐身人

版主 西门子1847工业学习平台

  • 帖子

    10348
  • 精华

    72
  • 被关注

    532

论坛等级:至圣

注册时间:2005-12-20

钻石 钻石 如何晋级?

使用NC VAR Selector”软件读取轴位置的应用

3407

18

2022-04-12 07:35:02

  昨天一朋友向我索求840系统读取轴位置的文本,我告诉他,要想读取轴位置,不单单需要S7软件还需要NC VAR Selector”软件。这软件功能强大,我们第一次应用的时候是在使用滑枕垂度补偿时使用,用它来通过数字量来实现相应模拟量的转换。该功能我曾发过帖子。

  既然说到这,我就把文档以分享帖形式发给坛友共同参考,本文档来自于多方面收集,仅供技术参考。

 实现该功能需使用 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

一,单击菜单Code中的Selection选项,输入最后要生成的数据块号,默认为DB120,即生成DB120块,然后单击保存,找到所要保存到哪里的路径,这是会生成一个后缀名为“.var”的文件,名字可以自由取,这里以“zhoupos”为名

二,单击菜单Code中的Generate生成后缀名为“.awl”这里以“zhoupos”为名字。这个后缀名为“.awl”的文件是将来被PLC所认可的文件

打开STEP7 在其源文件的跟目录下右键 Insert new object—external source 找到刚才保存的文件

一,然后打开,这时就会在STEP7的源文件里生成一个STL的源文件,双击打开,然后编译,如果没有发生错误则会在STEP7里生成一个DB120的数据块,

二,在符号表里给DB120数据块定义注释,例如本例为 zhoupos DB120 保存

三,在OB1里调用FB2块,然后定义背景数据块 例如DB121,下面将FB2的各输入输出参数说明如下

1) 输入参数

Req:        正向脉冲沿启动任务,只有当Rep端产生一个上升沿变换时,才可以启动它的一个任务,也就是读取NC轴的一个位置变量,布尔型数据类型

MunVar:     读取的数据数量,范围1—8,整型数据类型

Addr1~Addr8:[DBName].[VarName];这是“NC VAR Selector”软件提供的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,正常为0

NDR:执行代码,类型BOOL,若数据传送成功,则该位为1,否则为0

State:状态字,字型数据类型其含义如下

1,  低字节为1时表示接口出错;高字节表示发生错误的数据代码(1~8)

2,  低字节为2时表示任务错误;高字节表示在任务中存在编译错误

3,  低字节为3时表示负向确认不能执行;内部故障,按下“NC reser”可以消除

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为0

3) 输入、输出参数

   RD1~RD8: 这个是读取目标区域的值,ADDR1~ADDR8指定的NCK变量的值并把它们复制到指定的PLC数据区 例如,MD100,这样就会将某跟轴的位置值储存到MD100里面去。ANY数组数据类型

最后需要将0B1,0B100,DB120,DB121下载到PLC里,NCK复位,这样才能生效

 

下面讲生成的STL源程序简单说明一下

DATA_BLOCK DB  120      这里是用“NC VAR Selector”软件生成是那个数据块

VERSION : 0.0

 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; 这个值如果是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:

   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 ;

 BEGIN

END_DATA_BLOCK

 注:经常用的两个参数

在“NC VAR Selector”软件里面 RP 代号326 rpa[..]是读取NC里的R参数的

                            SMA 代号988 actToolBasePos[..]是读取通道里的轴位置当前值的。

笔记就是这样,我们实际操作时不一定想笔记写的那样顺利,总会有这样那样的问题,总之,了解原理遇到问题解决问题就是了。


使用NC VAR Selector”软件读取轴位置的应用 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SINUMERIK

共有24789条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。