在PLC读取NC数据——R参数时,我始终读取不成功。在此完整记录下我的试验过程,请各位高手帮忙分析一下问题所在,新手可以来参考一下

在PLC读取NC——R参数时,利用了NCVAR,始终读取不成功。我在附件中完成的记录了我的实验过程,在此希望各位高手们能帮忙分析一下问题所在,做这个的新手们也可以进来学习一下,做个参考。我的QQ:1015115760,需要新手可以和我交流一下
      不管我对R1(之前看到别人在这里出现问题,R参数号码弄错,所以我试过多个R参数,R0,R1,R2等等,结果还是一样读不到)中的数值做何修改,MD200和DB37.DBB19中的数值都不做改变。恳请各位帮我看看,我的问题出在哪里,为什么就读不到R参数中的数值,工作不易,在下万分感激!也是将我的坎坷经验分享给各位同行们,以后做这个能省事些!
      我这里用到的机床是840D系统的,PLC是S7-300,step7是用的5.4,toolbox版本为6.5.
1, 利用NC-VAR将R参数生成DB块
    1.1 新建项目,选择R参数所在的变量目录,选择“ncv_ncdata”,然后点击确定
    1.2 在出现的NC变量表中选择130号变量——R参数(toolbox版本不同,R参数的序号不同。另外,R参数中是选择R[ ]还是选择rpa[ ]是有区别的,好像也是依版本而定,此处我也不太清楚)。双击选择的R参数,出现通道号和轴号的选择界面。此处可以先都填“0”,在调用FB2时再具体填写,点击确定,然后进行保存。
     1.3 点击菜单栏中的“code”,在下拉选项中选择”selection”,然后在出现的界面中编辑所要生成DB块的序号和符号,BD块的序号必须是西门子对用户开放的(>>120),此处选择为DB150,符号选择默认的”ncvar“,点击”OK”.(此处还有其他两个属性栏,我不太清楚作用,这里没有管他)。
    1.4 接着在“code”下拉选项中选择“generate”,在出现的弹窗中为即将生成的,awl文件命名,此处名为“xiaohu”,点击确定。到此已经将R参数生成为.awl格式的文件。
1.5 打开step7,新建项目,将机床PLC中的程序上传到新建的项目中。选中“program”,点击右键,选择“insert new object”,接着选择“external source…”,然后选择之前生成的.awl文件,此处选择”xiaohu.awl”点击确定,这时在”source”目录下会出现名为“xiaohu”的STL文件。
     1.6 双击1.5中生成的名为“xiaohu”的STL文件,然后在出现的窗口中选择”file”下的“compile”对“xioahu”文件进行编译,编译结果显示没有错误和警告,则到此DB块生成成功。早“block”目录下也会出现生成的DB150。
      1.7 在符号表中添加DB150的符号,此处为“ncvar”,然后保存
2, 利用FB2读取DB150中的数值
      2.1 首先打开OB100,将FB1下的“NCKomm”输入处置位,填写“TRUE”.此处的含义是允许NC和PLC之间交换数据
      2.2 在OB1中调用FB2。FB2生效的方式是需要一个上升沿的信号,此处我试过了两种方式生成上升沿的信号。
第一种: AN    M     85.0
         S     M     85.0
         O     M     85.1
         O     M     85.2
         R     M     85.0
在FB2中rep:=M 85.0,这个用的是西门子工业论坛中“西范斯”大侠给的
第二种:在MCP上使用用户按钮,其信号地址是I 5.3,然后FB2中的rep出输入
 rep:=I 5.3;
这个触发方式也试过了,在MCP上按I 5.3按钮也没有作用(该按钮是有效地,我OB1中添加“A I 5.3
= Q 3.4”,LED灯亮)
另外,R参数是real型数据,也就是32为的浮点型数据,在FB2中读取的数据输出要填写32为的PLC数据类型,如MD,DBD…
以下是我完整的PLC程序
AN    M     85.0
      S     M     85.0
      O     M     85.1
      O     M     85.2
      R     M     85.0
      CALL  FB     2 , DB131
       IN0  :=M85.0
       IN1  :=1
       IN2  :=“ncvar”.C0_RP_R0_1
       IN3  :=B#16#1           ’选择通道1
       IN4  :=
       IN5  :=W#16#1          ‘选择读取R1
       IN6  :=
       IN7  :=
       IN8  :=
       IN9  :=
       IN10 :=
       IN11 :=
       IN12 :=
       IN13 :=
       IN14 :=
       IN15 :=
       IN16 :=
       IN17 :=
       IN18 :=
       IN19 :=
       IN20 :=
       IN21 :=
       IN22 :=
       IN23 :=
       IN24 :=
       IN25 :=
       IN26 :=
       IN27 :=
       IN28 :=
       IN29 :=
       IN30 :=
       IN31 :=
       IN32 :=
       IN33 :=
       OUT34:=M100.0
       OUT35:=M100.1
       OUT36:=MW120
       IO37 :=MD200
       IO38 :=
       IO39 :=
       IO40 :=
       IO41 :=
       IO42 :=
       IO43 :=
       IO44 :=
  L    MD200
  T    DB37.DBB19

谢谢大家了!

图片说明:

在PLC读取NC数据——R参数时,我始终读取不成功。在此完整记录下我的试验过程,请各位高手帮忙分析一下问题所在,新手可以来参考一下   

最佳答案

我觉得你还是FB3上的时序处理的有问题吧?

提问者对于答案的评价:
谢谢你的热情回答!

最佳答案作者回复:
不知道对您有没有帮助,如果还没有成功,可以发邮件给我,cheng_sky@163.com, 我们再讨论。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc160102.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年6月8日 下午5:58
下一篇 2017年6月8日 下午5:59

相关推荐