• 1.18 MB
  • 2022-04-22 13:36:54 发布

GBT19769.1-2005(3)工业过程测量和控制系统用功能块第1部分结构.pdf

  • 25页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'免费标准下载网(www.freebz.net)GB/T19769.1-2005ALGORITHMRESETINST:(*ResetQ,)Q:=FALSE;ENDALGORITHMEND-FUNCTION-BLOCKFUNCTION-BLOCKE_SELECT(*Selectionbetweentwoevents二)EVENT_INPUTEIOWITHG;(‘Inputevent,selectedwhenG二0)EllWITHG;(*Inputevent,selectedwhenG=1‘)END-EVENTEVENT-OUTPUTEO;(,OutputEvent*)ENDesEVENTVAR-INPUTG:BOOL;(*SelectEIOwhenG二0,EllwhenG=1,)ENDVARECSTATESSTART;(二InitialState*)EO:一>EO;(‘IssueOutputEvent‘)EIO;(*EIOarrived,)Ell;(二Ellarrived,)END一STATESEC_TRANSITIONSSTARTTOEIO:=EIO;STARTTOEll:=Ell;EIOTOEO:=NOTG;EIOTOSTART:=G;EllTOEO:=G;EllTOSTART:=NOTG;EOTOSTART:=1;END一TRANSITIONSEND-FUNCTION-BLOCKFUNCTION-BLOCKE-SPLIT(,Splitanevent‘)EVENT_INPUTEl;(‘Inputevent‘)END-EVENTEVENT_OUTPUTEOl;(‘Firstoutputevent二)E02;(‘Secondoutputevent,etc.‘)ENDEVENTEC_STATESSTART;(*InitialState二)EO:(二Extensible*)免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)GB/T19769.1-2005一>EOl,(*Outputfirstevent‘)一>E02;(‘Outputsecondevent,etc.‘)END一STATESECesTRANSITIONSSTARTTOEO:=El;EOTOSTART:=1;ENDTRANSITIONSENDLFUNCTION_BLOCKFUNCTION-BLOCKE_SR(*Event-drivenbistable,Setdominant,)EVENTesINPUTS;(二SetEvent*)R;(二ResetEvent*)END一EVENTEVENTeeOUTPUTEOWITHQ;(*OutputEvent‘)ENDseEVENTVAR-OUTPUTQ;BOOL;(*CurrentOutputState*)ENDVARECeeSTATESQO;(,QisFALSE,)RESET:RESET一>EO;(,ResetQandissueEO*)Ql;(二QisTRUE二)NULL;(*NoactionwhenQisTRUE二)SET:SET一>EO;(*SetQandissueEO,)NULO;(*NoactionwhenQisFALSE*)ENDSTATESECeeTRANSITIONSQOTONULO:=R&NOTS;NULOTOQO:=1;QOTOSET:=S&(RORNOTR);SETTOQl:=1;QlTONUL1:=S&(RORNOTR);NULLTOQl:=1;QlTORESET:=R&NOTS;RESETTOQO:=1;END-TRANSITIONSALGORITHMSETINST:(,SetQ二)Q:=TRUE;ENDesALGORITHMALGORITHMRESETINST:(二ResetQ‘)Q:=FALSE;ENDesALGORITHM免费标准下载网(www.freebz.net)无需注册即可下载标准下载网(www.bzxzw.com) 免费标准下载网(www.freebz.net)GB/T19769.1-2005END-FUNCTION-BLOCKFUNCTION-BLOCKE_SWITCH(*Switch(demultiplex)anevent*)EVENT-INPUTEIWITHG;(二EventInput,)END-EVENTEVENTesOUTPUTEOO;(*Output,switchedfromElwhenG=0二)EOl;(*Output,switchedfromElwhenG=1,)ENDEVENTVAR-INPUTG:BOOL;(二SwitchEltoEIOwhenG=0,toElIwhenG=1二)ENDVAREC_STATESSTART;(二InitialState*)GO:(*IssueEOOwhenElarriveswithG=0*)一>EOO;G1:(,IssueEOlwhenElarriveswithG=1二)一>EO1;ENDeeSTATESEC_TRANSITIONSSTARTTOGO:=El&NOTG;GOTOSTART:=1;STARTTOG1:=EI&G;G1TOSTART:=1;ENDeeTRANSITIONSEND-FUNCTION-BLOCKFUNCTION_BLOCKE-TABLE(二Generationofafinitetrainofevents,tabledriven,)EVENTseINPUTSTARTWITHDT,N;STOP;(二Cancel‘)ENDEVENTEVENT-OUTPUTEOWITHCV;(*NeventsatperiodsDT,startingatDT[0]afterSTART*)ENDEVENTVAR_INPUTDT;TIME[4];(*Periodsbetweenevents‘)N:UINT;(*Numberofeventstogenerate‘)ENDVARVAR一OUTPUTCV:UINT;(*Currenteventindex,0..N-1*)ENDweVARFBSCTRL:E_TABLE_CTRI.;免费标准下载网(www.freebz.net)无需注册即可下载标准下载网(www.bzxzw.com) 免费标准下载网(www.freebz.net)GB/T19769.1-2005DLY:E-DELAY;END一FBSEVENT-CONNECTIONSSTARTTOCTRL.INIT;CTRL.CLKOTODLY.START;DLY.EOTOEO;DLY.EOTOCTRL.CLK;STOPTODLY.STOP;END-CONNECTIONSDATA-CONNECTIONSDTTOCTRL.DT;NTOCTRL.N;CTRL.DTOTODLY.DT;CTRL.CVTOCV;ENDesCONNECTIONSEND-FUNCTION-BLOCKFUNCTION-BLOCKE_TABLE_CTRL(二ControlforE_TABLE二)EVENT-INPUTINITWITHDT,N;CLK;ENDesEVENTEVENT_OUTPUTCLKOWITHDTO,CV;ENDweEVENTVARINPUTDT:TIME[4];(二Arraylengthisimplementationdependent*)N:DINT;(二Actualnumberoftimesteps二)ENI)一VARVAR_OUTPUTDTO:TIME;(*Currentdelayinterval*)CV:UINT;(二Currenteventindex,0..N-1*)END一VARECSTATESSTART;INITO:INIT;INITI:一>CLKO;CLOCKED;STEP:STEP一>CLKO;ENDSTATESEC-TRANSITIONSSTARTTOINITO:二INIT;INITOTOINITI:一N>O;免费标准下载网(www.freebz.net)无需注册即可下载标准下载网(www.bzxzw.com) 免费标准下载网(www.freebz.net)GB/T19769.1-2005INITOTOSTART:=N=0;(,Don"trunifN=0*)INIT1TOSTART:=1;STARTTOCLOCKED:=CLK;CLOCKEDTOSTEP:=CV<MIN(3,N-1);(‘CVmustnotexceedDTarraysize)CLOCKEDTOSTART:=CV>=MIN(3,N-1);STEPTOSTART:=1;END-TRANSITIONSALGORITHMSTEPINST,CV:=CV+1;DTO:=DT[CV];ENDALGORITHMALGORITHMINITINST;CV:=0;DTO:=DT[0];ENDesALGORITHMEND-FUNCTION-BLOCKFUNCTION-BLOCKE_TRAIN(*Generationofafinitetrainofevents*)EVENT_INPUTSTARTWITHDT,N;STOP;ENDEVENTEVENTweOUTPUTEOWITHCV;(‘NeventsatperiodDT,startingatDTafterSTART‘)ENDEVENTVAR_INPUTDT,TIME;(*Periodbetweenevents二)N;UINT;(二Numberofeventstogenerate二)ENDVARVAR-OUTPUTCV:UINT;(*EOindex(0..N-1),)ENDVARFBSCTR:E_CTU;GATE:E_SWITCH;DLY:E-DELAY;END_FBSEVENT_CONNECTIONSSTARTTOCTR.R;STOPTODLY.STOP;DLY.EOTOEO;DLY.EOTOCTR.CU;CTR.CUOTOGATE.El;免费标准下载网(www.freebz.net)无需注册即可下载标准下载网(www.bzxzw.com) 免费标准下载网(www.freebz.net)GB/T19769.1-2005CTR.ROTOGATE.El;GATE.E00TODLY.START;END-CONNECTIONSDATA_CONNECTIONSDTTODLY.DT;NTOCTR.PV;CTR.QTOGATE.G;CTR.CVTOCV;ENDeeCONNECTIONSEND一FUNCTION_BLOCKFUNCTION-BLOCKFB_ADD_INT(二INTAddition,)EVENTeeINPUTREQWITHQI,IN1,IN2;ENDesEVENTEVENTesOUTPUTCNFWITHQO,STATUS,OUT;ENDEVENTVAR_INPUTQI:BOOL;(,EventQualifier‘)IN1:INT;(*Augend‘)IN2:INT;(*Addend*)ENDweVARVAR_OUTPUTQO:BOOL;(*OutputQualifier‘)STATUS:UINT;(‘OperationStatus*)OUT:INT;(*Sum*)ENDtoVARVARRESULT:DINT;ENDVAREC_STATESSTART;REQ:REQ一>CNF;END-STATESECeeTRANSITIONSSTARTTOREQ:=REQ;REQTOSTART:=1;ENDesTRANSITIONSALGORITHMREQINST:QO:=QI;IFQITHEN免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)GB/T19769.1-2005STATUS:=0;RESULT:=INT_TO_DINTGN1)+INT_TO_DINT(IN2);IF(RESULT>32767)OR(RESULT<-32768)THENQO=FALSE;STATUS=3;IF(RESULT>32767)THENOUT:=32767;ELSEOUT:=一32768;END-IF;ELSEOUT:=RESULT;ENDesIF;ELSESTATUS=1;END-IF;END-ALGORITHMEND-FUNCTION-BLOCKFUNCTION-BLOCKINTEGRAL-REALEVENTINPUTINIT:INIT_EVENTWITHCYCLE;EXWITHHOLD,XIN;ENDEVENTEVENT-OUTPUTINITO:INIT_EVENTWITHXOUT;EXOWITHXOUT;ENDEVENTVARseINPUTHOLD:BOOL;(*0=Run,I=Hold*)XIN:REAL;(二Integrand‘)CYCLE:TIME;(*Samplingperiod,)ENDVARVAR-OUTPUTXOUT:REAL;(‘Integratedoutput‘)ENDVARVARDT:REAL;END-VAREC_STATESSTART;(*ECInitialstate*)INIT:INIT一>INITO;(*ECStatewithAlgorithmandECAction*)MAIN:MAIN一>EXO;ENDeeSTATESEC_TRANSITIONSSTARTTOINIT:=INIT;(*AnECTransition‘)STARTTOMAIN:=EX;INITTOSTART:=1;MAINTOSTART:=1;免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)GB/T19769.1-2005ENDesTRANSITIONSALGORITHMINITINST:XOUT:=0.0;DT:=TIME-TO-REAL(CYCLE);EN几ALGORITHMALGORITHMMAININST:IFNOTHOLDTHENXOUT:=XOUT+XIN*DT;ENDesIF;ENI)一ALGORITHMEND-FUNCTION-BLOCKADAPTERL几UNLD(*LOAD/UNLOADAdapterInterface‘)EVENT_INPUTUNLD;(二UNLOADRequest‘)ENDEVENTEVENT_OUTPUTLDWITHWO,WKPC;(*LOADRequest‘)CNFWITHWO,WKPC;(,UNLDConfirm二)ENDEVENTVAR-OUTPUTWO:BOOL;(二Workpiecepresent*)WKPC:COLOR;(*WorkpieceColor二)ENDseVARSERVICEPLUG/SOCKETSEQUENCEnormal-operationPLUG.LD(WO,WKPC)一>SOCKET.I_D(WO,WKPC);SOCKET.UNLD()一>PLUG.UNLD();PLUG.CNF()一>SOCKET.CNF();END-SEQUENCEENDweSERVICEENDseADAPTERFUNCTION_BLOCKLOOP_DISPLAY(‘ControlLoopOperatorInterface‘)EVENT_INPUTINITWITHPARAMS;(二DisplayInitialization*)RSPWITHPV,XOUT;(‘Responsewithdata‘)END-EVENTEVENT_OUTPUTINITO;(二InitializationConfirm‘)INDWITHSP;(*DisplayUpdateIndication)ENDEVENT免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)GB/T19769.1-2005VAR_INPUTPARAMS:ANY;(*DisplayParameters‘)PV:REAL;(*ProcessVariablevalue*)XOUT:REAL;(‘PIOutputvalue‘)ENDesVARVAR_OUTPUTSP:ANY;(*Receiveddata,extensible*)ENDeeVARSERVICEPI-DISPLAY/APPLICATIONSEQUENCEnormal-establishmentAPPLICATION.INIT(PARAMS)一>APPLICATION.INITO();END-SEQUENCESEQUENCEnormal_operation一>APPLICATION.IND(SP);APPLICATION.RSP(PV,XOUT);END-SEQUENCEENDSERVICEEND-FUNCTION-BLOCKFUNCTION_BLOCKMANAGER(‘ManagementServiceInterface*)EVENT一INPUTINITWITHQI,PARAMS;(二ServiceInitialization,)REQWITHQI,CMD,OBJECT;(,ServiceRequest*)END-EVENTEVENT_OUTPUTINITOWITHQO,STATUS;(二InitializationConfirm二)CNFWITHQO,STATUS,RESULT;(,ServiceConfirmation*)ENI)一EVENTVARINPUTQI:BOOL;(*EventInputQualifier‘)PARAMS:WSTRING;(*ServiceParameters,)CMD:UINT;(二EnumeratedCommand*)OBJECT:BYTE[512];(二CommandObject二)ENDeeVARVAR-OUTPUTQO:BOOL;(*EventOutputQualifier*)STATUS:UINT;(二ServiceStatus*)RESULT:BYTE[5121;(二ResultObject二)END-VARSERVICEMANAGER/resourceSEQUENCEnormal-establishmentMANAGER.INIT+(PARAMS)一>resource.initManagement()一>MANAGER.INITO+();END-SEQUENCE免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)GB/T19769.1-2005SEQUENCEunsuccessful-establishmentMANAGER.INIT+(PARAMS)一>resource.initManagement(PARAMS)一>MANAGER.INITO-(STATUS);END-SEQUENCESEQUENCEnormal-command-sequenceMANAGER.REQ+(CMD,OBJECT)一>resource.performCommand(CMD,OBJECT)一>MANAGER.CNF+(STATUS,RESULT);END_SEQUENCESEQUENCEcommand-errorMANAGER.REQ+(CMD,OBJECT)一>resource.performCommand(CMD,OBJECT)一>MANAGER.IND-(STATUS);END-SEQUENCESEQUENCEapplication-initiated-terminationMANAGER.INIT-()一>resource.terminateService()一>MANAGER.INITO-(STATUS);END-SEQUENCESEQUENCEresource_initiated_terminationresource.serviceTerminated(STATUS)一>MANAGER.INITO-(STATUS);END_SEQUENCEENDesSERVICEEND-FUNCTION--BLOCKFUNCTION_BLOCKPI_REALEVENTINPUTINIT;EXWITHHOLD,PV,SP,KP,KI,CYCLE;ENDEVENTEVENT_OUTPUTINITOWITHXOUT;EXOWITHXOUT;ENDEVENTVAR_INPUTHOLD;BOOL;(*HoldwhenTRUE*)PV:REAL;(*Processvariable二)SP:REAL;(*Setpoint‘)KP:REAL;(二Proportionalityconstant*)KI:REAL;(*Integralconstant,I/sec*)CYCLE:TIME;(二Samplingperiod*)ENDVARVAR_OUTPUTXOUT:REAL;END_VARFBSCALC:PID-CALC;INTEGRALTERM:INTEGRAL-REAL;ENDFBS免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)GB/T19769.1-2005EVENT-CONNECTIONSINITTOCALC.INIT;EXTOCALC.PRE;CALC.POSTOTOEXO;INTEGRAL-TERM.INITOTOINITO;CALC.INITOTOINTEGRAL-TERM.INIT;CALC.PREOTOINTEGRAL-TERM.EX;INTEGRAL-TERM.EXOTOCALC.POST;ENDweCONNECTIONSDATA-CONNECTIONSHOLDTOINTEGRAL-TERM.HOLD;PVTOCALC.PV;SPTOCALC.SP;KPTOCALC.KP;KITOCALC.KI;CYCLETOINTEGRAL-TERM.CYCLE;CALC.XOUTTOXOUT;CALC.ETERMTOINTEGRAL-TERM.XIN;INTEGRAL-TERM.XOUTTOCALC.ITERM;0.0TOCALC.TD;0.0TOCALC.DTERM;ENDesCONNECTIONSEND-FUNCTION-BLOCKSUBAPPLICATIONPI_REAL_APPL(*ASubapplication‘)EVENTesINPUTINIT;EX;ENDseEVENTEVENT_OUTPUTINITO;EXO;ENDEVENTVAR_INPUTHOLD:BOOL;(二HoldwhenTRUE‘)PV:REAL;(*Processvariable‘)SP:REAL;(*Setpoint‘)KP:REAL;(二Proportionalgain)KI:REAL;(*Integralgain=Sampleperiod/Resettime‘)X0:REAL;(*Initialintegratoroutput二)END一VARVAR_OUTPUTXOUT:REAL;END_VARFBS免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)GB/T19769.1-2005ETERM:FB_SUB_REAL;INTEGRATOR:ACCUM_REAL;CALC:PI_CALC;END_FBSEVENT-CONNECTIONSINITTOINTEGRATOR.INIT;INTEGRATOR.INITOTOINITO;EXTOETERM.REQ;ETERM.CNFTOINTEGRATOR.EX;INTEGRATOR.EXOTOCALC.EX;CALC.EXOTOEXO;ENDLCONNECTIONSDATA-CONNECTIONSXOTOINTEGRATOR.XO;HOLDTOINTEGRATOR.HOLD;PVTOETERM.INI;SPTOETERM.IN2;KPTOCALC.KP;KITOCALC.KI;ETERM.OUTTOINTEGRATOR.XIN;ETERM.OUTTOCALC.ETERM;INTEGRATOR.XOUTTOCALC.ITERM;CALC.XOUTTOXOUT;1TOETERM.Q1;ENDLCONNECTIONSEND_SUBAPPLICATIONFUNCTION-BLOCKPID_CALCEVENT_INPUTINIT;PREWITHPV,SP,KP,KI,TD;POSTWITHITERM,DTERM;END-EVENTEVENT-OUTPUTINITOWITHXOUT;PREOWITHETERM;POSTOWITHXOUT;END_EVENTVAR_INPUTPV:REAL;(*Processvariable,)SP:REAL;(*Setpoint二)KP:REAL;(,Proportionalityconstant*)KI:REAL;(‘Integrationconstant,1/sec,)TD:REAL;(*Derivativetime,sec)免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)GB/T19769.1-2005ITERM:REAL.;(二Integralof(ETERM)dt,)DTERM:REAL;(,d(ETERM)/dt二)END-VARVAR-OUTPUTETERM:REAL;XOUT:REAL;END-VAREC-STATESSTART;(*InitialState二)INIT:INIT一>INITO;(二Initialization,)PRE:PRE一>PREO;(‘Pre-integrationcalculations,)POST:POST一>POSTO;(*Post-integrationcalculations二)END_STATESEC_TRANSITIONSSTARTTOINIT:=INIT;INITTOSTART:=1;STARTTOPRE:=PRE;PRETOSTART:=1;STARTTOPOST:=POST;POSTTOSTART:=1;ENI〕一TRANSITIONSALGORITHMINITINST:XOUT:=0.0;END_ALGORITHMALGORITHMPREINST:ETERM:=SP一PV;ENDALGORITHMALGORITHMPOSTINST:XOUT:=(ETERM十KI*DTERM十TD*DTERM)二KP;ENDesALGORITHMEND-FUNCTION-BLOCKFUNCTION_BLOCKPUBLISH(*DataPublicationServiceInterface二)EVENT_INPUTINITWITHQI,PARAMS;(*ServiceInitialization‘)REQWITHQI,S几1,SD-m;(二ServiceRequest‘)ENDEVENTEVENT_OUTPUTINITOWITHQO,STATUS;(,InitializationConfirm*)CNFWITHQO,STATUS;(*ServiceConfirmation*)ENDEVENTVARINPUTQI:BOOL;(*EventInputQualifier‘)免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)GB/T19769.1-2005PARAMS:ANY;(,ServiceParameters‘)S几1:ANY;(,Datatosend,extensible‘)S几m:ANY;(*Lastdataitemtosend‘)ENDweVARVAR-OUTPUTQO:BOOL;(二EventOutputQualifier,)STATUS:ANY;(二ServiceStatus‘)ENDVARSERVICEPUBLISH/SUBSCRIBE(*DataPublicationService)SEQUENCEnormal-establishmentPUBLISH.INIT十(PARAMS)一>PUBLISH.INITO+();SUBSCRIBE.INIT十(PARAMS)一>SUBSCRIBE.INITO+();END-SEQUENCESEQUENCEpublisher-rejected-establishmentPUBLISH.INIT十(PARAMS)一>PUBLISH.INITO-(STATUS);END_SEQUENCESEQUENCEsubscriber-rejected-establishmentSUBSCRIBE.INIT+(PARAMS)一>SUBSCRIBE.INITO-(STATUS);END-SQUNCSEQUENCEnormal-data-transferPUBLISH.REQ+(SD_1,⋯,SD_m)一>SUBSCRIBE.IND+(RD-1,⋯,RD-m);一>PUBLISH.CNF+();SUBSCRIBE.RSP+();ENI〕一SEQUENCESEQUENCEdata-transfer-errorPUBLISH.REQ+(SD_1,⋯,SD_m)一>SUBSCRIBE.IND-(STATUS);一>PUBLISH.CNF+();END-SEQUENCESEQUENCEpublisher_initiated-disconnectPUBLISH.INIT-()一>SUBSCRIBE.INITO-(STATUS);一>PUBLISH.INIT(?-(STATUS);END-SEQUENCESEQUENCEsubscriber-initiated-disconnectSUBSCRIBE.INIT-()一>SUBSCRIBE.INITO-(STATUS);END-SEQUENCESEQUENCEsystem-publisher-disconnect一>PUBLISH.INITO-(STATUS);一>SUBSCRIBE.INIT()一(STATUS);END-SEQUENCESEQUENCEsystem-subscriber-disconnect一>SUBSCRIBE.INITO-(STATUS);END-SEQUENCE免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)GB/T19769.1-2005END一SERVICEENDseFUNCTION_BLOCKFUNCTION-BLOCKREQUESTER(‘ServiceRequesterInterface‘)EVENT_INPUTINITWITHQI,PARAMS;(*ServiceInitialization二)REQWITHQI,SD-1,SD-m;(,ServiceRequest‘)ENDEVENTEVENT_OUTPUTINITOWITHQO,STATUS;(二InitializationConfirm,)CNFWITHQO,STATUS,RD-1,RD-n;(*ServiceConfirmation*)ENDseEVENTVARINPUTQI:BOOL;(‘EventInputQualifier‘)PARAMS:ANY;(二ServiceParameters,)SD-1:ANY;(*Datatotransfer,extensible二)S几m:ANY;(*Lastdataitemtotransfer*)END一VARVAR-OUTPUTQO:BOOL;(‘EventOutputQualifier‘)STATUS:ANY;(*ServiceStatus二)RD-1:ANY;(*Receiveddata,extensible*)RD-n:ANY;(*Lastreceiveddataitem二)END一VARSERVICEREQUESTER/RESOURCESEQUENCEnormal-establishmentREQUESTER.INIT+(PARAMS)一>REQUESTER.INITO+();END-SEQUENCESEQUENCEunsuccessful-establishmentREQUESTER.INIT+(PARAMS)一>REQUESTER.INITO-(STATUS);END-SEQUENCESEQUENCEnormal-data-transferREQUESTER.REQ+(SD-1,⋯,SD_m)一>REQUESTER.CNF+(RD_1,⋯,RP-n);END-SEQUENCESEQUENCEdata-transfer-errorREQUESTER.REQ+(SD_1,⋯,SD_m)一>REQUESTER.CNF-(STATUS);END_SEQUENCESEQUENCEapplication-initiated-terminationREQUESTER.INIT-()一>REQUESTER.INITO-(STATUS);END-SEQUENCESEQUENCEresource-initiated-termination一>REQUESTER.INITO-(STATUS);免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)GB/T19769.1-2005END-SEQUENCEENDSERVICEEND-FUNCTION-BLOCKFUNCTION-BLOCKRESPONDER(二ServiceResponderInterface二)EVENTesINPUTINITWITHQI,PARAMS;(,ServiceInitialization*)RSPWITHQI,SD_1,SR-M;(‘ServiceResponse‘)ENDesEVENTEVENTeeOUTPUTINITOWITHQO,STATUS;(二InitializationConfirm*)INDWITHQO,STATUS,RD-1,RD-n;(‘ServiceIndication*)ENDweEVENTVAR_INPUTQI:BOOL;(*EventInputQualifier‘)PARAMS:ANY;(*ServiceParameters*)SI)一1:ANY;(*Responsedata,extensible,)SD_m:ANY;(‘Lastresponsedataitem‘)ENDesVARVAR_OUTPUTQO:BOOL;(‘EventOutputQualifier*)STATUS:ANY;(‘ServiceStatus*)RD_I:ANY;(二Receiveddata,extensible*)RD_n:ANY;(*Lastreceiveddataitem,)ENDVARSERVICERESOURCE/RESPONDERSEQUENCEnormal-establishmentRESPONDER.INIT+(PARAMS)一>RESPONDER.INITO+();END-SQUNCSEQUENCEunsuccessful-establishmentRESPONDER.INIT+(PARAMS)一>RESPONDER.INITO-(STATUS);END-SEQUENCESEQUENCEnormal-data-transfer一>RESPONDER.IND+(RD-1,⋯,RD-n);RESPONDER.RSP十(SD-1,⋯,SP-M);END-SEQUENCESEQUENCEapp]ication-detected-error一>RESPONDER.IND+(RI)一I,⋯,RD-n);RESPONDER.RSP-();END-SEQUENCESEQUENCEresource-detected-error一>RESPONDER.INI}(STATUS);免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)GB/T19769.1-2005END-SEQUENCESEQUENCEapplication-initiated-terminationRESPONDER.INIT-()一>RESPONDER.INITO-(STATUS);END-SEQUENCESEQUENCEresource-initiated-termination一>RESPONDER.INITO-(STATUS);END-SEQUENCEEND_SERVICEEND-FUNCTION-BLOCKFUNCTION-BLOCKSERVER(‘DataExchangeServerInterface,)EVENTINPUTINITWITHQI,ID;(,ServiceInitialization*)RSPWITHQI,SD1,SD_n;(,ServiceResponse,)ENDEVENTEVENT_OUTPUTINITOWITHQO,STATUS;(,InitializationConfirm,)INDWITHQO,STATUS,RD-1,RV-m;(,ServiceIndication‘)ENDEVENTVARINPUTQ1:BOOL;(‘EventInputQualifier,)ID:STRING;(二ServiceParameters‘)SD-1:ANY;(‘Responsedata,extensible)SD_n:ANY;(‘LastResponsedataitem,)ENDVARVAR_OUTPUTQO:BOOL;(‘EventOutputQualifier*)STATUS:STRING;(*ServiceStatus一implementationdependent*)RD_I:ANY;(*Receiveddata,extensible,)RD-m:ANY;(,Lastreceiveddataitem,)ENDVARSERVICECLIENT/SERVER(*DataPublicationService)SEQUENCEnormal-establishmentSERVER.INIT+(ID)一>SERVER.INITO十();CLIENT.INIT+(ID)一>SERVER.NULL()一>CLIENT.INITO-1-();END-SEQUENCESEQUENCEserver-rejected-establishmentSERVER.INIT+(ID)一>SERVER.INITO-(STATUS);END-SEQUENCESEQUENCEclient-rejected-establishmentCLIENT.INIT+(ID)一>CLIENT.INITO-(STATUS);免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)GB/T19769.1-2005END_SEQUENCESEQUENCEremote-establishment-rejection(‘Serverunavailableordatainconsistency‘)CLIENT.INIT+(ID)一>SERVER.NULL()一>CLIENT.INITO-(STATUS);END-SEQUENCESEQUENCEnormal-data-transferCLIENT.REQ十(SD_1,⋯,SD_m)一>SERVER.IND+(RD_l,⋯,RD-m);SERVER.RSP+(SI)一1,⋯,SD_n)一>CLIENT.CNF+(RD_1,⋯,RD-n);END-SEQUENCESEQUENCEclient-data-transfer-errorCLIENT.REQ十(SD-1,⋯,SD_m)一>SERVER.IND-(STATUS)一>CLIENT.CNF-(STATUS)END-SEQUENCESEQUENCEserver-data-transfer-errorCLIENT.REQ+(SD_1,⋯,SD_m)一>SERVER.IND十(RD-1,⋯,RDLm);SERVER.RSP十(SD_1,⋯,SD_n)一>CLIENT.CNF-(STATUS);END-SEQUENCESEQUENCEclient_initiated_disconnectCLIENT.INIT-()一>SERVER.NULL()一>CLIENT.INITO-(STATUS);END-SEQUENCESEQUENCEserver-initiated-disconnectSERVER.INIT-()一>CLIENT.INITO-(STATUS)一>SERVER.INITO-(STATUS);END-SEQUENCESEQUENCEsytem-initiate走disconnect一>CLIENT.INITO-(STATUS);一>SERVER.INITO-(STATUS);END-SEQUENCEENDeeSERVICEEND_FUNCTION_BLOCKFUNCTION_BLOCKSUBSCRIBE(‘DataSubscriptionServiceInterface‘)EVENT一INPUTINITWITHQI,PARAMS;(,ServiceInitialization,)RSPWITHQI;(‘ServiceResponse‘)END一EVENTEVENT-OUTPUTINITOWITHQO,STATUS;(*InitializationConfirm二)INDWITHQO,STATUS,RD_1,RD-m;(,ServiceIndication‘)ENDEVENTVARINPUTQI:BOOL;(‘EventInputQualifier‘)PARAMS:ANY;(*ServiceParameters一implementationdependent*)END一VAR免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)GB/T19769.1-2005VAR_OUTPUTQO:BOOL;(*EventOutputQualifier‘)STATUS:ANY;(二ServiceStatus,)RD-1:ANY;(*Receiveddata,extensible‘)RD-m:ANY;(*Lastdataitemtoreceive‘)END-VARSERVICEPUBLISH/SUBSCRIBE(*DataPublicationService*)SEQUENCEnormal-establishmentPUBLISH.INIT+(PARAMS)一>PUBLISH.INITO+();SUBSCRIBE.INIT+(PARAMS);PUBLISH.REQ+(SD_1,⋯,SD_m)一>SUBSCRIBE.INITO十();END-SEQUENCESEQUENCEpublisher-rejected-establishmentPUBLISH.INIT+(PARAMS)一>PUBLISH.INITO-(STATUS);END-SEQUENCESEQUENCEsubscriber-rejected-establishmentSUBSCRIBE.INIT+(PARAMS)一>SUBSCRIBE.INITO-(STATUS);END-SEQUENCESEQUENCEdata-inconsistency_rejected-establishmentSUBSCRIBE.INIT+(PARAMS);PUBLISH.REQ+(SI)一1,⋯,SD-m)一>SUBSCRIBE.INITO-(STATUS);END-SEQUENCESEQUENCEnormal-data-transferPUBLISH.REQ十(SD-1,⋯,SD_m)一>SUBSCRIBE.IND+(RD-1,⋯,RD-m);一>PUBLISH.CNF+();SUBSCRIBE.RSP+();END-SEQUENCESEQUENCEdata-transfer-errorPUBLISH.REQ+(SD_1,⋯,SD_m)一>SUBSCRIBE.IND-(STATUS);一>PUBLISH.CNF+();END-SEQUENCESEQUENCEpublisher-initiated-disconnectPUBLISH.INIT-()一>SUBSCRIBE.INIT()一(STATUS);一>PUBLISH.INITO-(STATUS);END-SEQUENCESEQUENCEsubscriber-initiated-disconnectSUBSCRIBE.INIT-()一>SUBSCRIBE.INIT()一(STATUS);END-SEQUENCESEQUENCEsystem-publisher-disconnect一>PUBLISH.INITO-(STATUS);一>SUBSCRIBE.INITO-(STATUS);END_SEQUENCE免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)GB/T19769.1-2005SEQUENCEsystem-subscriber-disconnect一>SUBSCRIBE.INITO-(STATUS);END-SEQUENCEENDSERVICEEND-FUNCTION-BLOCKFUNCTION_BLOCKXBAR_MVCA(*XBAR_MVC+Adapters‘)EVENTINPUTINITWITHVF,VR,DTL,DT,BKGD,LEN,DIA,DIR;(二Initialize*)ENDEVENTEVENTOUTPUTINITO;ENDEVENTVARINPUTVF:INT:二20;(,ADVANCEspeedin+%/sec,)VR:INT:=-40;(二RETRACTspeedin一%/sec,)DTL:TIME:=t#750ms;(二LOADDelay*)DT:TIME:=t#250ms;(*SimulationInterval,)BKGD:COLOR:=COLOR#blue;(*TransferBarColor*)LEN:UINT:=5;(*BarLengthinDiameters)DIA,UINT:=20;(*Workpiecediameter二)DIR:UINT;(*Orientation:0=L/R,1=T/B,2=R/L,3=B/T)ENDVARSOCKETSI,DU_SKT:LD_UNLD;ENDseSOCKETSPLUGSI.DU_PLG:I_D_UNLD;END一PLUGSFBSMVC:XBAR_MVC;ENDeeFBSEVENT-CONNECTIONSINITTOMVC.INIT;MVC.INITOTOINITO;MVC.LOADEDTOI.DU_SKT.UNLD;LDU_SKT.LDTOMVC.LOAD;MVC.ADVANCEDTOLDU_PLG.LD;LDU_PI_G.UNLDTOMVC.UNLOAD;MVC.UNLOADEDTOLDU_PI,G.CNF;ENDweCONNECTIONSDATA-CONNECTIONSLDU_SKT.WOTOMVC.WI;免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)GB/T19769.1-2005LDU_SKT.WKPCTOMVC.LDCOL;MVC.WOTOLDU_PI_G.WO;MVC.WKPCTOLDU_PI_G.WKPC;VFTOMVC.VF;VRTOMVC.VR;DTLTOMVC.DTL;DTTOMVC.DT;BKGDTOMVC.BKGD;LENTOMVC.LEN;DIATOMVC.DIA;DIRTOMVC.DIR;ENDeeCONNECTIONSEND-FUNCTION-BLOCK二二二巴二盖;二二巴谧巴二免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)GB/T19769.1-2005附录I(资料性附录)实现考虑图3和图4中描述的“数据流”是一种机制,这种机制是为了将数据从产生输出变量值的“生产者算法”传送到访问该数据的其他功能块中的“消费者算法”,该数据作为相应输人变量的值被这些功能块访问。在这种模型中,必须为基本功能块的输人变量和输出变量分配存储空间,如下:a)必须为输出变量的值分配存储空间,以允许算法对其进行读和写。b)必须为通过WITH结构与事件输出相联系的每一输出变量的采样值提供额外的存储空间。在图13的t:转换上,数据从功能块算法可访问的内部值传送到被采样的外部值。c)输人变量要求存储空间,以便连接到相关数据连接另一端上的数据。这种数据可以是被采样的输出变量的值或者是常量(或者是规定的初始值,如果没有数据连接存在)。d)如果根据WITH语句输入变量被采样(常量或未连接的输人不被采样),则必须为采样值提供额外的存储空间。在图12的t3转换上,数据从被连接的值传送到功能块算法可以访问的内部值。e)输出变量的采样应是锁定包含生产者算法的功能块实例的临界区。f>为了采样成组的输人变量,输人变量采样的临界区在空间上扩展到包含消费者算法的功能块实例和包含生产者算法的所有功能块实例。一旦连接到所有相关输出变量的输人变量被采样,可释放对包含生产者算法的功能块实例的锁定。g)服务接口功能块必须提供以上a)和b)列出的相同的同步保证。免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)GB/T19769.1-2005附录J(资料性附录)属性属性可以和数据类型、变量、应用以及功能块、设备、资源的类型和实例,及它们的组件元素相关。属性具有在功能块类型或实例的生命周期中不同阶段上可被修改和访问的值。J.1一般原则为了支持在软件生命周期中功能块的使用,除了功能块算法描述以外,还需要其他信息。可通过把属性附加到功能块类型和实例的组件元素上来提供这种信息。属性可用于在功能块类型和实例规范中使用的数据类型、变量和参数等元素。图形语言元素可能要求其他的属性来保存位置、颜色、大小等信息。属性也可直接用于功能块类型和实例。如,保存功能块类型规范的版本信息。某些属性可在功能块生命周期的全程中使用。例如,当从库中选择功能块类型时,当查询功能块类型的实例时等等,与功能块类型规范相关的属性可被访问。其他属性可能只存在于生命周期的某一阶段。例如,定义特定功能块实例的用途的文本仅当该功能块实例化时才被使用,在功能块实例生命周期中才能被修改。某些功能块属性可安装在相关资源中,在分布式应用的生命周期中可被访问。这些属性典型地用于支持外部设备对功能块参数值的访问。例如,将手持配置器可以设置的参数值限制在预先定义的安全限内。J.2属性定义属性定义提供了表J.1中规定的信息。每一属性都具有名字和其相关值的数据类型。属性可以具有默认值,该默认值在软件生命周期中某个阶段其属性值没给出之前使用。表J.1给出的示例中,DE-SCRIPTION属性具有初始值“(空串),当功能块实例被配置时,或者在其使用中,它可用更具有意义的描述来重写。属性本身可能要求除表1.1给出的信息之外的其他信息。这些信息被称为子属性。表J.1属性定义的元素导一介k}tTk7}zm1J.3示例注:以下示例的用途是描述属性的使用,不能被视为标准属性的规范性定义。数据类型属性的示例:·Max-System-Value这一属性定义了数字数据类型支持的最大值,应用于一般的数据类型ANY_NUM,因此所有的数字类型如INT和REAL将继承这个属性。注意,每一特定的数据免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)GB/T19769.1-2005类型具有自己的这一属性值。表F.2中给出了一些数据类型的这一属性的标准值。属性应用到变量的示例:·Diagnostic-Access这一属性决定变量的值是否可由运行时诊断系统访问;·Write-Access这一属性定义改变变量值所要求的访问级别,如‘Operator","System","Diagnos-tics";·Units应用于变量的单位,如,i11t,,rm//5s/,,rcmmr;·Usage相关变量的用法的多行文本描述。功能块类型属性的示例:·Usage-Class描述了功能块的一般用法,如‘Input","Output","Control";·Version描述了功能块类型定义的版本号,如‘1.2";Help可在生命周期的不同阶段中被访问的多行文本描述。与调度算法执行相关的属性包括:·ExecutionTime一TIME类型的属性,规定了在特定资源类型中,规定功能块类型的特定算法在最坏情况下执行的时间。·Priority这一属性与资源内特定事件连接相关,可以从资源类型继承。支持抢占性多任务的资源可以使用这一属性来决定算法执行的优先级。这一算法由与EC状态相关的EC动作调用。EC状态由具有规定优先级的事件激活。与事件输入和事件输出相关的属性可包含它们的连接性限制,如,通过EventType属性的使用。J.4属性源属性可来自以下主要源:·Implicit属性,如功能块类型名、实例名、变量名和它们的数据类型。被定义为功能块通常的声明过程的一部分。·Standard属性,标准要求的一部分,如:功能块类型版本号、参数最大范围、参数描述等。·Product-specific属性,由系统销售商提供,如:功能块类型产品代码、功能块实例的硬件地址等。·Application-specific属性,系统开发者规定的,以支持应用中的特定数据类型或者功能块的使用,如:其他的功能块实例标识符,以满足客户期望的形式,输出参数的失效保护默认值,国家语言中,可选择的参数描述等。J.5属性继承功能块元素将从多个基本元素中继承属性。例如,功能块类型声明中的变量将继承它的相关数据类型的属性。功能块实例将继承相关功能块类型的属性。数据类型沿着GB/T15969.3定义的一般类型层次结构向下继承属性。例如,应用于ANY-RE-AL的属性也应用于LREAL和REAL-J.6声明语法给已声明的元素的属性赋值与属性类型的实例的赋值相似。在该属性类型中,实例具有与该类型相同的名称。属性类型的声明语法与附录E中定义的数据类型的声明语法相同。不同之处在于,定界关键词为ATTRIBUTE...END-ATTRIBUTE而不是TYPE...END-TYPE。例如,表J.1中属性类型DE-SCRIPTION的声明应为:ATTRIBUTEDESCRIPTION:WSTRING(30);END_ATTRIBUTE.属性实例的赋值使用与附录E中描述的变量初始值赋值使用的语法相同,并具有以下扩展:a)属性实例的名称与相应的属性类型的名称相同;免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)GB/T19769.1-2005b)对属性实例不规定数据类型;c)赋值包含在附录E中定义的pragma结构中;d)多个属性的赋值可包含在pragma结构中,并用分号分开;e)pragma结构必须通过一种方法来定位,这种方法能无歧义地确定该结构所用于的声明。应用这些规则的示例如下:FUNCTION_BLOCKPID{DESCRIPTION:="Proportional+Integral+DerivativeControl";AUTHOR:="JHC";VERSION:=”19990103/JHC"}INPUT_EVENTINITWITHQI,PARAMS;{DESCRIPTION:="InitializationRequest"}。。etc.免费标准下载网(www.freebz.net)无需注册即可下载'