文档详情

SIEMENS-840D-NC与PLC之间的数据通讯

cn****1
实名认证
店铺
DOC
33.50KB
约3页
文档ID:419444588
SIEMENS-840D-NC与PLC之间的数据通讯_第1页
1/3

摘要:文章针对SIEMENS 840D NCU与PLC之间数据通讯的实现方法进行详细的说明,包括FB2/FB3、FC21的应用技术,并配合相应的举例关键词:840D 数据交换 FB2  FC21  NC_var selector Data exchange between NC and PLC for SIEMENS 840D HU Guoqing(Wuhan Huazhong Automation Technology Devolopment Ltd.,Wuhan 430077,CHN) 1.前言在数控系统调试过程中,经常需要在NC、PLC之间进行数据交换,以使整个系统都在程序控制之中,作为当今世界优秀的高端数控产品代表SIEMENS 840D,它提供了先进的通道和技术支撑,使你可以轻松地实现数据的畅通交换笔者根据工作过程中积累的设计与编程经验,在此就这个主题与同行探讨经常使用的数据交换包括M代码、T代码、H/F功能传输以及840D系统提供的功能强大的接口信号,不需叙述在这里只是针对一些专用数控功能应用时需用到的数据交换方法进行较详细的说明 2. PLC读/写NC参数/变量在进行数控铣镗床滑枕低头补偿或刀库定位控制编程时,都需要用到PLC读/写NC参数或变量。

SIEMENS的8x0D toolbox中提供了FB2(GET)/FB3(PUT)功能块程序,结合使用配套的NC_var Selector软件就可实现此项功能其中FB2用于读取NC变量(包括MD参数和NC内部变量),FB3用于写NC变量2.1  NC_var Selector的使用对于读取的NC变量,应先使用NC_var Selector软件选择所需的变量,最终建立一个AWL源文件下面就以Ver6.4版为例说明其使用步骤:首先建立一个新的Project,在库文件打开框中根据需要选择ncv_NcData.mdb(读取NC参数)或者ncv_611d.mdb(读取611D驱动参数)等根据需要选择相应的变量为了提高效率,可以双击Unit或Compenent列,等出现Selections on NC-variables对话框时,点击option中selection框,然后在selection parameters方框中选择变量类型选完了变量后,必要时可对各变量名称进行修改,然后保存变量表,命名可以将要生成的DB块名称,如DB150.var等选择Code菜单下Generate功能,生成DB150.awl文件。

请注意文件目录)2.2  Step 7下生成DB块下面以Step 7 V5.1版为例说明其步骤:在Project中Sources目录下,使用菜单Insert下External Source…功能导入DB150.awl文件双击DB150.awl打开文件,在S7 LAD/STL/FBD下进行编译(在File菜单下),生成DB150.stl在Project下选择DB150,将其Download到PLC CPU中在符号表中增加条目:Symbol——NCVAR,Address——DB150,DATA TYPE——DA1502.3  使用FB2功能块在OB1中增加一个网络,调用FB2,调用时需要自动生成一个背景数据块,此时你可以定义一个当前系统中不存在的块名(如DB110)下面说明其各参数的含义以及如何输入其数值 CALL  FB     2 , DB110  Req    :=块操作请求,类型:BOOL每激活一次读操作进行一次1:激活  NumVar :=变量数量输入要读取变量的数量,如B#16#3等  Addr1  :=变量1如DB150中变量1,“NCVAR”.C1_M_AXCONF_MACHAX_1  Unit1  :=       Column1:=       Line1  :=可输入0或实际位置值。

  Addr2  :=变量2如DB150中变量2,“NCVAR”.C1_M_AXCONF_MACHAX_2  ……  RD1    :=变量存放地址1,注意其类型与Addr1对应的变量类型一致如DB129.DB_VAR1等  RD2    :=变量存放地址2,其类型应与Addr2变量类型一致如P#M220.0 INT1等  RD3    :=……Error  :=出错代码,类型:BOOL若数据传输出错,则该位为1,正常为0NDR  :=执行代码,类型:BOOL若数据传输成功,则该位为1,否则为0State  :=状态字,类型:WORD若传输不成功,则通过状态字可判断原因将状态字数值作比较,可以编程输出到自定义报警地址之中NOP   02.4  编程注意事项1)        FB2 /FB3生效的前提是在OB100初始化程序中调用FB1(RUN_UP)时须设置NCKomm=TRUE2)        为了防止因非正常中止(如断电、RESET等)造成通讯中断,致使通讯数据阻塞,应在非正常中止后的第一个OB1循环中屏蔽FB2/FB3的调用(需用到首次循环变量)同样的建议适用于FB4/FB5功能块)3)        对于多通道数控系统而言,若需要读取通道参数,则在一次FB2/FB3调用任务中ADDR1~8中只能出现一个通道的通道参数。

4)        通常一次读/写过程要持续1~2个PLC循环,因此FB2/FB3只能在循环模式下调用2.5  前面主要对读取NC参数进行了阐述,如果需写NC参数,其方法基本一致,FB3的参数也基本相同 3. NC程序读/写PLC数据对于多附件头、自动存取刀具的平面刀库,由于其类型/位置检测信号都是进入PLC的,在用NC子程序编写对刀或专用动作应用程序时,经常需要读取PLC数据SIEMENS的8x0D toolbox中提供了FC21(Transfer)功能块程序,结合NC变量$A_DB*的使用就可实现此项功能3.1  FC21功能块的使用FC21的使用相对比较简单,只需要在程序中调用它,填入相应的参数即可下面说明其各参数的含义CALL  FC    21   Enable :=使能,类型:BOOL1——激活功能块   Funct  :=块功能,类型:BYTE3——读NC变量,4——写NC变量   S7Var  :=PLC数据地址,类型:任意(根据需传送的数据数量而定)如:P#M220.0 BYTE 1,P#DB100.DBX8.0 BYTE 4等注意:起始地址须是指针,后面表示数据长度。

   IVAR1  :=类型:INT对于Funct=3/4时,其含义是位置偏置,即相对起始地址偏置值通常设为0   IVAR2  := 类型:INT对于Funct=3/4时,通常设为-1   Error  := 出错指示,类型:BOOL若数据传输出错,则该位为1,正常为0   ErrCode:=错误代码,类型:INT在PLC程序中对S7Var的数据值分别进行控制,在NC程序中就可得到相应的值3.2  NC编程中$A_DB*变量的使用840D的NC系统变量中有四种用于读/写PLC变量,分别是$A_DBB、$A_DBW、$A_DBD、$A_DBR,分别用于操作8位字节、16位字、32位双字和32位实数变量使用格式:$DB*[n]  n=0,1,2…              例如:其中$DBB[0]对应FC21传送的第一个字节,其中$DBB[1]对应FC21传送的第二个字节,依此类推编程实例1: IF ($A_DBB[0]<>4)AND($A_DBB[0]<>8)GOTOF N3000编程实例2: MSG(“XT_No:“<<$A_DBB[1]<<””) 本文所述的数据交换功能对于840D系统来说仅是凤毛麟角,其更多更简便实用的方法尚需进一步探讨。

文中不恰当之处,敬请同行指正为感。

下载提示
相似文档
正为您匹配相似的精品文档
相关文档