NC与PLC的数据交换

在西门子802d数控系统中,有一个nc-plc数据交换区,但是在840dsl中,好像没有。我现在需要在840dsl的nc加工程序中设一个变量,来读取plc中的一个变量值。当nc加工程序变量为“1”时,nc加工程序发生跳转。请问nc与plc中的变量应当如何编制程序?
答:楼主的问题,具有一定代表性,涉及到数控系统的主要内容,这里举两例说明,
1.如在磨床中探头的应用:
探头触发信号直接送到nc内部处理,即不经过plc输入映像缓冲区,因此,这些信号在nc程序中是以变量形式出现的,840dsl系统提供了nck的外部数字输入(db10)信号,其中就有探头测量工件功能,地址对应db10.db107.0,db10.db107.1,即探测器激活,db10.db107.0对应probe探测器1,db10.db107.1,即对应probe探测器2,当nc加工程序中的变量以上信号为“1”时,nc加工程序发生跳转。
2.用pi服务即西门子的step-7功能块fb4的pi服务功能来完成,fb4的pi_serv被用于nck内部零件加工程序与外部开关量即plc的输入输出接口建立连接,从而达到内外部转换的过程。当内部某中间继电器为有效脉冲后,强制方式组转换到auto方式,同时启*能fb4,程序功能会自动寻找db91(事先做好)的指定外部零件加工程序的地址路径,自动执行该零件程序,执行完毕后自动转回到方式组初始状态。例如在一个加载到nck的程序中,借助于piservice的申请,可以借助于机床检测开关或者一个面板上的按键执行一个特殊的功能。
注意在调用fb4时,必须分配一个单独的db区,楼主可以参考step-7的帮助获得较为详细建立数据块的信息。
借助于piservice的参数,可以实现指定的服务。
在调用fb4时,“db-name.pi-name”作为实参用于pi服务的传送。
举例如下:
callfb4,db100
req:=i6.3
piservice:=pi.asup
unit:=1
addr1:=new.p1_path//new是定义的字符,数据块是db101,用来存
放程序属性-路径、名字等
addr2:=new.p1_name
addr3:=
addr4:=
wvar1:=
wvar2:=
wvar3:=
wvar4:=
wvar5:=
wvar6:=
wvar7:=
wvar8:=
wvar9:=
wvar10:=
error:=m200.0
done:=m200.1
state:=mw201
此调用fb4的目的在于,当按下i6.3时(可将其定义为机床检测开关),系统执行程序p1,p1的内容由用户自行定义。如伺服电机的低速运动。