您现在所在的是:

西门子SIEMENS

回帖:0个,阅读:1027 [上一页] [1] [下一页]
939
owjh
文章数:0
年度积分:50
历史总积分:939
注册时间:2007/7/1
发站内信
发表于:2007/7/1 23:51:00
#0楼
我有s7-300 siemens840d source,请哪位高手解释其内容及为什么这么编?

bhg—db

//Achtung: Parameter BHGIn und BHGOut im FB 1 beachten
//Please note FB 1-parmeter BHGIn, BHGOut

DATA_BLOCK "strdat"        //strdat - ist Anwender DB, is User DB
VERSION : 0.0


 STRUCT        
   disp : STRING  [32 ] := 'sunrise                                ';    
       //disp ist Datum fuer Bedienhandgeraet
       //disp is data for the handheld unit
 END_STRUCT ;  
BEGIN
END_DATA_BLOCK

DB120_GUD
DATA_BLOCK DB 120        //Anwender DB

 STRUCT        
   SPDL : STRING  [32 ] := 'SPINDLE';    
   ARM  : STRING  [32 ] := 'ARM';
   MAZ  : STRING  [32 ] := 'MAGAZINE';    
   MAZV : STRING  [32 ] := 'MAZ_CAPACITY';
   TXX  : STRING  [32 ] := 'T_CODE';
   SM19 : STRING  [32 ] := 'VATC_M19';
   ATCX : STRING  [32 ] := 'VATC_X';
   ATCY : STRING  [32 ] := 'VATC_Y';
   ATCZ : STRING  [32 ] := 'VATC_Z';
   PWD : STRING  [32 ] := 'SERVICE_PWD';
   MCSX: STRING  [32 ] := 'MACHINE_X';
   MCSY: STRING  [32 ] := 'MACHINE_Y';
   MCSZ: STRING  [32 ] := 'MACHINE_Z';
   WCSX: STRING  [32 ] := 'RELATIVE_X';
   WCSY: STRING  [32 ] := 'RELATIVE_Y';
   WCSZ: STRING  [32 ] := 'RELATIVE_Z';
   RCX: STRING  [32 ] := 'RC_X';
   RCY: STRING  [32 ] := 'RC_Y';
   RCZ: STRING  [32 ] := 'RC_Z';

 NSP :
 STRUCT
   SYNTAX_ID:BYTE;
   bereich_u_einheit:byte;
   spalte:word;
   zeile:word;
   bausteintyp:byte;
   ZEILENANZAHL:BYTE;
   typ:byte;
   laenge:byte;
   END_STRUCT;

 NARM :
 STRUCT
   SYNTAX_ID:BYTE;
   bereich_u_einheit:byte;
   spalte:word;
   zeile:word;
   bausteintyp:byte;
   ZEILENANZAHL:BYTE;
   typ:byte;
   laenge:byte;
   END_STRUCT;

 NMAZ :
 STRUCT
   SYNTAX_ID:BYTE;
   bereich_u_einheit:byte;
   spalte:word;
   zeile:word;
   bausteintyp:byte;
   ZEILENANZAHL:BYTE;
   typ:byte;
   laenge:byte;
   END_STRUCT;

 NMAZV :
 STRUCT
   SYNTAX_ID:BYTE;
   bereich_u_einheit:byte;
   spalte:word;
   zeile:word;
   bausteintyp:byte;
   ZEILENANZAHL:BYTE;
   typ:byte;
   laenge:byte;
   END_STRUCT;

 NTXX :
 STRUCT
   SYNTAX_ID:BYTE;
   bereich_u_einheit:byte;
   spalte:word;
   zeile:word;
   bausteintyp:byte;
   ZEILENANZAHL:BYTE;
   typ:byte;
   laenge:byte;
   END_STRUCT;

 ASP :
 STRUCT
   SYNTAX_ID:BYTE;
   bereich_u_einheit:byte;
   spalte:word;
   zeile:word;
   bausteintyp:byte;
   ZEILENANZAHL:BYTE;
   typ:byte;
   laenge:byte;
   END_STRUCT;

 AX :
 STRUCT
   SYNTAX_ID:BYTE;
   bereich_u_einheit:byte;
   spalte:word;
   zeile:word;
   bausteintyp:byte;
   ZEILENANZAHL:BYTE;
   typ:byte;
   laenge:byte;
   END_STRUCT;

 AY :
 STRUCT
   SYNTAX_ID:BYTE;
   bereich_u_einheit:byte;
   spalte:word;
   zeile:word;
   bausteintyp:byte;
   ZEILENANZAHL:BYTE;
   typ:byte;
   laenge:byte;
   END_STRUCT;

 AZ :
 STRUCT
   SYNTAX_ID:BYTE;
   bereich_u_einheit:byte;
   spalte:word;
   zeile:word;
   bausteintyp:byte;
   ZEILENANZAHL:BYTE;
   typ:byte;
   laenge:byte;
   END_STRUCT;

 NPWD :
 STRUCT
   SYNTAX_ID:BYTE;
   bereich_u_einheit:byte;
   spalte:word;
   zeile:word;
   bausteintyp:byte;
   ZEILENANZAHL:BYTE;
   typ:byte;
   laenge:byte;
   END_STRUCT;

MX :
STRUCT
   SYNTAX_ID:BYTE;
   bereich_u_einheit:byte;
   spalte:word;
   zeile:word;
   bausteintyp:byte;
   ZEILENANZAHL:BYTE;
   typ:byte;
   laenge:byte;
END_STRUCT;

MY:
STRUCT
   SYNTAX_ID:BYTE;
   bereich_u_einheit:byte;
   spalte:word;
   zeile:word;
   bausteintyp:byte;
   ZEILENANZAHL:BYTE;
   typ:byte;
   laenge:byte;
END_STRUCT;

MZ :
STRUCT
   SYNTAX_ID:BYTE;
   bereich_u_einheit:byte;
   spalte:word;
   zeile:word;
   bausteintyp:byte;
   ZEILENANZAHL:BYTE;
   typ:byte;
   laenge:byte;
END_STRUCT;

WX :
STRUCT
   SYNTAX_ID:BYTE;
   bereich_u_einheit:byte;
   spalte:word;
   zeile:word;
   bausteintyp:byte;
   ZEILENANZAHL:BYTE;
   typ:byte;
   laenge:byte;
END_STRUCT;

WY :
STRUCT
   SYNTAX_ID:BYTE;
   bereich_u_einheit:byte;
   spalte:word;
   zeile:word;
   bausteintyp:byte;
   ZEILENANZAHL:BYTE;
   typ:byte;
   laenge:byte;
END_STRUCT;

WZ :
STRUCT
   SYNTAX_ID:BYTE;
   bereich_u_einheit:byte;
   spalte:word;
   zeile:word;
   bausteintyp:byte;
   ZEILENANZAHL:BYTE;
   typ:byte;
   laenge:byte;
END_STRUCT;

CX :
STRUCT
   SYNTAX_ID:BYTE;
   bereich_u_einheit:byte;
   spalte:word;
   zeile:word;
   bausteintyp:byte;
   ZEILENANZAHL:BYTE;
   typ:byte;
   laenge:byte;
END_STRUCT;

CY :
STRUCT
   SYNTAX_ID:BYTE;
   bereich_u_einheit:byte;
   spalte:word;
   zeile:word;
   bausteintyp:byte;
   ZEILENANZAHL:BYTE;
   typ:byte;
   laenge:byte;
END_STRUCT;

CZ :
STRUCT
   SYNTAX_ID:BYTE;
   bereich_u_einheit:byte;
   spalte:word;
   zeile:word;
   bausteintyp:byte;
   ZEILENANZAHL:BYTE;
   typ:byte;
   laenge:byte;
END_STRUCT;

END_STRUCT;
BEGIN
END_DATA_BLOCK

gpob840d
//840D


ORGANIZATION_BLOCK OB 1

   VERSION: 2.0
VAR_TEMP

   OB1_EV_CLASS : BYTE;
   OB1_SCAN_1 : BYTE;
   OB1_PRIORITY : BYTE;
   OB1_OB_NUMBR : BYTE;
   OB1_RESERVED_1 : BYTE;
   OB1_RESERVED_2 : BYTE;
   OB1_PREV_CYCLE : INT;
   OB1_MIN_CYCLE : INT;
   OB1_MAX_CYCLE : INT;
   OB1_DATE_TIME : DATE_AND_TIME;
END_VAR

BEGIN

   CALL FC 2;

   //HIER ANWENDERPROGRAMM EINFUEGEN
   //Insert Userprogram from here


END_ORGANIZATION_BLOCK


//*************************************************************
ORGANIZATION_BLOCK OB 100

   VERSION: 2.3


VAR_TEMP
   OB100_EV_CLASS : BYTE;
   OB100_STRTUP : BYTE;
   OB100_PRIORITY : BYTE;
   OB100_OB_NUMBR : BYTE;
   OB100_RESERVED_1 : BYTE;
   OB100_RESERVED_2 : BYTE;
   OB100_STOP : WORD;
   OB100_RESERVED_3 : WORD;
   OB100_RESERVED_4 : WORD;
   OB100_DATE_TIME : DATE_AND_TIME;
END_VAR

BEGIN
Call fb 1, db 7(
   MCPNum :=1,
   MCP1In :=P#E0.0,
   MCP1Out        :=P#A0.0,
       MCP1StatSend  :=P#A8.0,
   MCP1StatRec    :=P#A12.0,
       MCP1BusAdr    :=6,
       MCP1Timeout    :=S5T#700MS,
       MCP1Cycl      :=S5T#200MS,
       NCCyclTimeout  :=S5T#200MS,
   NCRunupTimeout    :=S5T#50S);

   //HIER ANWENDERPROGRAMM EINFUEGEN
   //Insert Userprogram from here


END_ORGANIZATION_BLOCK

//*************************************************************
ORGANIZATION_BLOCK OB 40

   VERSION: 3.2
VAR_TEMP

   OB40_EV_CLASS : BYTE;
   OB40_STRT_INF : BYTE;
   OB40_PRIORITY : BYTE;
   OB40_OB_NUMBR : BYTE;
   OB40_RESERVED_1 : BYTE;
   OB40_MDL_ID : BYTE;
   OB40_MDL_ADDR : INT;
   OB40_POINT_ADDR : DWORD;
   OB40_DATE_TIME : DATE_AND_TIME;

//Belegung durch das Grundprogramm
//data for the Basicprogram
   GP_IRFromNCK : BOOL;        //Interrupt from NCK
   GP_TM : BOOL;            //Toolmanagment
       GP_InPosition : ARRAY [1..31] OF BOOL;  //InPos Signal from FC15,16,18
   GP_AuxFunction : ARRAY [1..10] OF BOOL;    //Auxilary functions
   GP_FMBlock : ARRAY [1..10] OF BOOL;    //not used

//HIER ANWENDER-Lokaldaten EINFUEGEN
//Insert User-data from here

END_VAR

BEGIN

   CALL FC 3;

   //HIER ANWENDERPROGRAMM EINFUEGEN
   //Insert Userprogram from here


END_ORGANIZATION_BLOCK


还有 比如说:块OB40:
CALL  FB    1 , DB7
     MCPNum        :=1
     MCP1In        :=P#I 0.0
     MCP1Out      :=P#Q 0.0
     MCP1StatSend  :=P#Q 8.0
     MCP1StatRec  :=P#Q 12.0
     MCP1BusAdr    :=6
     MCP1Timeout  :=S5T#700MS
     MCP1Cycl      :=S5T#200MS
     MCP2In        :=
     MCP2Out      :=
     MCP2StatSend  :=
     MCP2StatRec  :=
     MCP2BusAdr    :=
     MCP2Timeout  :=
     MCP2Cycl      :=
     MCPMPI        :=
     MCP1Stop      :=
     MCP2Stop      :=
     MCP1NotSend  :=
     MCP2NotSend  :=
     BHG          :=
     BHGIn        :=
     BHGOut        :=
     BHGStatSend  :=
     BHGStatRec    :=
     BHGInLen      :=
     BHGOutLen    :=
     BHGTimeout    :=
     BHGCycl      :=
     BHGRecGDNo    :=
     BHGRecGBZNo  :=
     BHGRecObjNo  :=
     BHGSendGDNo  :=
     BHGSendGBZNo  :=
     BHGSendObjNo  :=
     BHGMPI        :=
     BHGStop      :=
     BHGNotSend    :=
     NCCyclTimeout :=S5T#200MS
     NCRunupTimeout:=S5T#50S
     ListMDecGrp  :=
     NCKomm        :=TRUE
     MMCToIF      :=
     HWheelMMC    :=FALSE
     MsgUser      :=
     UserIR        :=
     IRAuxfuT      :=
     IRAuxfuH      :=
     IRAuxfuE      :=
     UserVersion  :=
     MaxBAG        :=
     MaxChan      :=
     MaxAxis      :=
     ActivChan    :=
     ActivAxis    :=
     UDInt        :=
     UDHex        :=
     UDReal        :=
//HIER ANWENDERPROGRAMM EINFUEGEN
//Insert Userprogram from here
     SET  
     =    DB10.DBX  56.1


等等



关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

62.4004