我在系统上定义了一个全局变量,怎么在PLC里读取这个值,谢谢
最佳答案
楼组的问题比较典型,在 NC 高级编程中经常要读写 PLC 变量。具体如下:
1、$A_IN [ ] 或 $A_OUT 语句:读取或写 NC 的快速输入输出。如果没有硬件上的输入输出,那么在NC 中就是读取或写 DB10中的对应位了,
2、 $A_DBB[ ] 此语句的含义:读取 PLC 变量。例如 $A_DBB[112] 读取 NC内存区域中的 DBB112 ,此区域的大小在做内存配置时被指定。此区域专门用来和PLC 交换数据。必须要分清,这些区域是连贯的,DBB[112]是指区域 中的第112个字节。它可以存储 PLC 中任何区域的内容例如: M、Q、I、 DB 、L区域 。
PLC 是通过FC21读取和写这个区域的,
3、直接读写PLC 输入输出变量:
读输入
$A_PBB_IN[n]
$A_PBW_IN[n]
$A_PBD_IN[n]
写输出
$A_PBB_OUT[n] = XX
$A_PBW_OUT[n] = XX
$A_PBD_OUT[n] = XX
上述语句中的n 是指读写plc 中的哪一输入输出,记住是输入输出,不是过程印象区 例如:$A_PBB_OUT[1] = 1 在 plc 中的表现就是 PQB1=1。
具体可以参阅西门子权威资料包光盘 DOCONCD 2006 中的
SINUMERIK 840Dsl/840D/840Di
SINUMERIK 810D
Special *s (Part 3)一节内容,其中 FB1 这一章中的FC21 对自定义变量的如何使用读写介绍的非常详细。
提问者对于答案的评价:
非常感谢,我的目的是想问用FB5如何来读取自定义的全局用户变量(这个变量我已经激活了,可以看到,并赋值了)然后再用FB3给这个变量来赋值,我自己做的的程序如下: CALL FB 5 , DB132
Req :=I6.3
Addr :="read_GUD".hk10
Area :=B#16#0
Unit :=B#16#1
Index1 :=
Index2 :=
CnvtToken:=
VarToken :=
Error :=M47.4
Done :=M47.5
State :=MW52
RD :=MD105
"read_GUD".hk10 是自建的DB块,read_GUD是DB块名称,hk10是变量名,变量格式是STRING[32]的。
这个程序下进去后没出错,M47.5=1了,但MD105里没值进来,OB100里的NCKomm=TRUE了,但MD105里就是没值,郁闷,
关于这个块能解释下吗?或者说那块应该注意下,谢谢
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc210906.html