CoDeSys+xŒ @@2.3.10.0@?@PTRN +@ЦMN:e:\documents and settings\jsong\desktop\cbm_rich\cbm_rich\6Ш@oE:\TWINCAT\PLC\LIB\TcBase.lib@FW_ADSCLEAREVENTSSTAMP_I§џ ACCESSCNT_I§џBUSY_I§џERR_I§џERRID_I§џ READ_SAV_I§џ TICKSTART_I§џsNetId§џbClear§џnMode§џtTimeout§џbBusy§џ bError§џ nErrId§џ €PRN€џџџџ FW_ADSLOGDINT nCtrlMask§џsMsgFmt§џnArg§џ FW_AdsLogDINT€PRN€џџџџFW_ADSLOGEVENT STAMPREQ_I§џ STAMPRES_I§џ STAMPSIG_I§џ STAMPCON_I§џ ACCESSCNT_I§џ AMSADDR_I §џEVENT_I  FW_TcEvent§џpTCEVENTSTREAM_I§џCBEVENTSTREAM_I§џnSTATE_I§џ nSTATEREQ_I§џ nSTATERES_I§џ nSTATESIG_I§џ nSTATECON_I§џ!ERR_I§џ"ERRID_I§џ# bEVENT_SAV_I§џ$bEVENTQUIT_SAV_I§џ% TICKSTART_I§џ& sNetId§џnPort§џbEvent§џ bEventQuit§џstEventConfigData  FW_TcEvent§џpEventDataAddress§џ pointer cbEventDataLength§џ bFbCleanup§џ tTimeout§џ  nEventState§џbError§џnErrId§џbQuit§џ€PRN€џџџџFW_ADSLOGLREAL nCtrlMask§џsMsgFmt§џfArg§џFW_AdsLogLREAL€PRN€џџџџ FW_ADSLOGSTR nCtrlMask§џsMsgFmt§џsArg§џ FW_AdsLogSTR€PRN€џџџџ FW_ADSRDWRTSTAMP_I§џ ACCESSCNT_I§џBUSY_I§џERR_I§џERRID_I§џ WRTRD_SAV_I§џ PDESTADDR_I§џ TICKSTART_I§џ sNetId§џnPort§џnIdxGrp§џnIdxOffs§џ cbWriteLen§џ cbReadLen§џ pWriteBuff§џ pReadBuff§џ bExecute§џ tTimeout§џ bBusy§џbError§џnErrId§џcbRead§џ count of bytes actually read €PRN€џџџџFW_ADSRDWRTINDCLEAR_I§џbClear§џ bValid§џsNetId§џnPort§џ nInvokeId§џ nIdxGrp§џ nIdxOffs§џ cbReadLen§џ cbWriteLen§џ pWriteBuff§џ€PRN€џџџџFW_ADSRDWRTRES RESPOND_I§џsNetId§џnPort§џ nInvokeId§џnErrId§џ cbReadLen§џ pReadBuff§џbRespond§џ €PRN€џџџџ FW_ADSREADSTAMP_I§џ ACCESSCNT_I§џBUSY_I§џERR_I§џERRID_I§џ READ_SAV_I§џ TICKSTART_I§џsNetId§џnPort§џnIdxGrp§џnIdxOffs§џ cbReadLen§џ pReadBuff§џbExecute§џ tTimeout§џ bBusy§џ bError§џnErrId§џcbRead§џ count of bytes actually read €PRN€џџџџFW_ADSREADDEVICEINFOSTAMP_I§џ ACCESSCNT_I§џBUSY_I§џERR_I§џERRID_I§џ RDINFO_SAV_I§џ TICKSTART_I§џsNetId§џnPort§џbExecute§џtTimeout§џbBusy§џ bError§џ nErrId§џ sDevName§џ nDevVersion§џ €PRN€џџџџ FW_ADSREADINDCLEAR_I§џbClear§џbValid§џsNetId§џnPort§џ nInvokeId§џ nIdxGrp§џ nIdxOffs§џ cbReadLen§џ €PRN€џџџџ FW_ADSREADRES RESPOND_I§џsNetId§џnPort§џ nInvokeId§џnErrId§џ cbReadLen§џ pReadBuff§џbRespond§џ €PRN€џџџџFW_ADSREADSTATESTAMP_I§џ ACCESSCNT_I§џBUSY_I§џERR_I§џERRID_I§џ RDSTATE_SAV_I§џ TICKSTART_I§џsNetId§џnPort§џbExecute§џtTimeout§џbBusy§џ bError§џ nErrId§џ nAdsState§џ nDevState§џ €PRN€џџџџ FW_ADSWRITESTAMP_I§џ ACCESSCNT_I§џBUSY_I§џERR_I§џERRID_I§џ WRITE_SAV_I§џ TICKSTART_I§џsNetId§џnPort§џnIdxGrp§џnIdxOffs§џ cbWriteLen§џ pWriteBuff§џbExecute§џ tTimeout§џ bBusy§џ bError§џnErrId§џ€PRN€џџџџFW_ADSWRITECONTROLSTAMP_I§џ ACCESSCNT_I§џBUSY_I§џERR_I§џERRID_I§џ WRITE_SAV_I§џ TICKSTART_I§џsNetId§џnPort§џ nAdsState§џ nDevState§џ cbWriteLen§џ pWriteBuff§џbExecute§џ tTimeout§џ bBusy§џ bError§џnErrId§џ€PRN€џџџџFW_ADSWRITEINDCLEAR_I§џbClear§џbValid§џsNetId§џnPort§џ nInvokeId§џ nIdxGrp§џ nIdxOffs§џ cbWriteLen§џ pWriteBuff§џ €PRN€џџџџFW_ADSWRITERES RESPOND_I§џ sNetId§џnPort§џ nInvokeId§џnErrId§џbRespond§џ€PRN€џџџџFW_DRAND FirstCall_i§џ HoldRand_i§џ R250_Buffer_i љ§џ R250_Index§џ nSeed§џfRndNum§џ€PRN€џџџџFW_GETCPUACCOUNT dwCpuAccount§џ€PRN€џџџџFW_GETCPUCOUNTER dwCpuCntLo§џ dwCpuCntHi§џ€PRN€џџџџFW_GETCURTASKINDEXnIndex§џ€PRN€џџџџFW_GETSYSTEMTIMEdwTimeLo§џdwTimeHi§џ€PRN€џџџџFW_GETVERSIONTCBASEnVersionElement§џFW_GetVersionTcBase€PRN€џџџџ FW_LPTSIGNAL nPortAddr§џnPinNo§џbOnOff§џ  FW_LptSignal€PRN€џџџџ FW_MEMCMPpBuf1§џ First buffer pBuf2§џ Second buffer cbLen§џ Number of characters  FW_MemCmp€PRN€џџџџ FW_MEMCPYpDest§џ New buffer pSrc§џ Buffer to copy from cbLen§џ Number of characters to copy  FW_MemCpy€PRN€џџџџ FW_MEMMOVEpDest§џ New buffer pSrc§џ Buffer to copy from cbLen§џ Number of characters to copy  FW_MemMove€PRN€џџџџ FW_MEMSETpDest§џ Pointer to destination nFillByte§џ Character to set cbLen§џ Number of characters  FW_MemSet€PRN€џџџџ FW_PORTREAD nPortAddr§џ eNoOfByte  FW_NoOfByte§џ FW_PortRead€PRN€џџџџ FW_PORTWRITE nPortAddr§џ eNoOfByte  FW_NoOfByte§џnValue§џ FW_PortWrite€PRN€џџџџqE:\TWINCAT\PLC\LIB\TcSystem.lib@OADSCLEAREVENTSfbAdsClearEvents FW_AdsClearEvents§џNetID  T_AmsNetId§џbClear§џiMode§џtTimeoutˆ§џbBusy§џ bErr§џ iErrId§џ €PRN€ џџџџ ADSLOGDINT msgCtrlMask§џ msgFmtStr  T_MaxString§џdintArg§џ ADSLOGDINT€PRN€ џџџџ ADSLOGEVENT fbAdsLogEvent FW_AdsLogEvent§џ NETID  T_AmsNetId§џPORT§џEvent§џ EventQuit§џEventConfigData TcEvent§џEventDataAddress§џ pointer EventDataLength§џ FbCleanup§џ TMOUTˆ§џ  EventState§џErr§џErrId§џQuit§џ€PRN€ џџџџ ADSLOGLREAL msgCtrlMask§џ msgFmtStr  T_MaxString§џlrealArg§џ ADSLOGLREAL€PRN€ џџџџ ADSLOGSTR msgCtrlMask§џ msgFmtStr  T_MaxString§џstrArg  T_MaxString§џ ADSLOGSTR€PRN€ џџџџ ADSRDDEVINFOfbAdsReadDeviceInfo FW_AdsReadDeviceInfo§џNETID  T_AmsNetId§џPORT  T_AmsPort§џRDINFO§џTMOUTˆ§џBUSY§џ ERR§џ ERRID§џ DEVNAME§џ DEVVER§џ €PRN€ џџџџ ADSRDSTATEfbAdsReadState FW_AdsReadState§џNETID  T_AmsNetId§џPORT  T_AmsPort§џRDSTATE§џTMOUTˆ§џBUSY§џ ERR§џ ERRID§џ ADSSTATE§џ DEVSTATE§џ €PRN€ џџџџADSRDWRT fbAdsRdWrt  FW_AdsRdWrt§џ NETID  T_AmsNetId§џPORT  T_AmsPort§џIDXGRP§џIDXOFFS§џWRITELEN§џREADLEN§џSRCADDR§џ DESTADDR§џ WRTRD§џ TMOUTˆ§џ BUSY§џERR§џERRID§џ€PRN€ џџџџ ADSRDWRTEX fbAdsRdWrt  FW_AdsRdWrt§џ NETID  T_AmsNetId§џPORT  T_AmsPort§џIDXGRP§џIDXOFFS§џWRITELEN§џREADLEN§џSRCADDR§џ DESTADDR§џ WRTRD§џ TMOUTˆ§џ BUSY§џERR§џERRID§џCOUNT_R§џ count of bytes actually read €PRN€ џџџџ ADSRDWRTIND fbAdsRdWrtInd FW_AdsRdWrtInd§џCLEAR§џ VALID§џNETID  T_AmsNetId§џPORT  T_AmsPort§џINVOKEID§џ IDXGRP§џ IDXOFFS§џ RDLENGTH§џ WRTLENGTH§џ DATAADDR§џ€PRN€ џџџџ ADSRDWRTRES fbAdsRdWrtRes FW_AdsRdWrtRes§џNETID  T_AmsNetId§џPORT  T_AmsPort§џINVOKEID§џRESULT§џLEN§џDATAADDR§џRESPOND§џ €PRN€ џџџџADSREAD fbAdsRead  FW_AdsRead§џNETID  T_AmsNetId§џPORT  T_AmsPort§џIDXGRP§џIDXOFFS§џLEN§џDESTADDR§џREAD§џ TMOUTˆ§џ BUSY§џ ERR§џERRID§џ€PRN€ џџџџ ADSREADEX fbAdsRead  FW_AdsRead§џNETID  T_AmsNetId§џPORT  T_AmsPort§џIDXGRP§џIDXOFFS§џLEN§џDESTADDR§џREAD§џ TMOUTˆ§џ BUSY§џ ERR§џERRID§џCOUNT_R§џ count of bytes actually read €PRN€ џџџџ ADSREADIND fbAdsReadInd  FW_AdsReadInd§џCLEAR§џVALID§џNETID  T_AmsNetId§џPORT  T_AmsPort§џINVOKEID§џ IDXGRP§џ IDXOFFS§џ LENGTH§џ €PRN€ џџџџ ADSREADRES fbAdsReadRes  FW_AdsReadRes§џNETID  T_AmsNetId§џPORT  T_AmsPort§џINVOKEID§џRESULT§џLEN§џDATAADDR§џRESPOND§џ €PRN€ џџџџADSWRITE fbAdsWrite  FW_AdsWrite§џNETID  T_AmsNetId§џPORT  T_AmsPort§џIDXGRP§џIDXOFFS§џLEN§џSRCADDR§џWRITE§џ TMOUTˆ§џ BUSY§џ ERR§џERRID§џ€PRN€ џџџџ ADSWRITEIND fbAdsWriteInd FW_AdsWriteInd§џCLEAR§џVALID§џNETID  T_AmsNetId§џPORT  T_AmsPort§џINVOKEID§џ IDXGRP§џ IDXOFFS§џ LENGTH§џ DATAADDR§џ €PRN€ џџџџ ADSWRITERES fbAdsWriteRes FW_AdsWriteRes§џ NETID  T_AmsNetId§џPORT  T_AmsPort§џINVOKEID§џRESULT§џRESPOND§џ€PRN€ џџџџ ADSWRTCTLfbAdsWriteControl FW_AdsWriteControl§џNETID  T_AmsNetId§џPORT  T_AmsPort§џADSSTATE§џDEVSTATE§џLEN§џSRCADDR§џWRITE§џ TMOUTˆ§џ BUSY§џ ERR§џERRID§џ€PRN€ џџџџANALYZEEXPRESSIONInputExp§џ DoAnalyze§џ ExpResult§џ OutString§џ€PRN€ џџџџANALYZEEXPRESSIONCOMBINEDIndex§џ InputExp§џ DoAnalyze§џ ExpResult§џOutTable  ExpressionResult§џ OutString§џ €PRN€ џџџџANALYZEEXPRESSIONTABLEIndex§џ InputExp§џ DoAnalyze§џ ExpResult§џOutTable  ExpressionResult§џ€PRN€ џџџџAPPENDERRORSTRINGstrOld§џstrNew§џAppendErrorString€PRN€ џџџџBAVERSION_TO_DWORDnVersion`§џ nRevision`§џ nBuild`§џ BAVERSION_TO_DWORD€PRN€ џџџџ CLEARBIT32dwConst§џinVal32§џbitNo§џ CLEARBIT32€PRN€ џџџџ CSETBIT32dwConst§џinVal32§џbitNo§џbitVal§џ& value to which the bit should be set  CSETBIT32€PRN€ џџџџDRANDfbDRand FW_DRand§џ Seed§џNum§џ€PRN€ џџџџF_COMPAREFWVERSIONsoll`§џist`§џmajor`§џ requiered major version minor`§џ  requiered minor version revision`§џ ) requiered revision/service pack version patch`§џ 0 required patch version (reserved, default = 0 )F_CompareFwVersion€PRN€ џџџџF_CREATEAMSNETIDidx`§џnIds  T_AmsNetIdArr§џ Ams Net ID as array of bytes. F_CreateAmsNetId  T_AmsNetId€PRN€ џџџџF_CREATEIPV4ADDRidx`§џnIds  T_IPv4AddrArr§џ< Internet Protocol dotted address (ipv4) as array of bytes. F_CreateIPv4Addr  T_IPv4Addr€PRN€ џџџџF_GETVERSIONTCSYSTEMnVersionElement§џF_GetVersionTcSystem€PRN€ џџџџ F_IOPORTREADnAddr§џ Port address eSize E_IOAccessSize§џ Number of bytes to read  F_IOPortRead€PRN€ џџџџ F_IOPORTWRITEnAddr§џ Port address eSize E_IOAccessSize§џ Number of bytes to write nValue§џ Value to write  F_IOPortWrite€PRN€ џџџџF_SCANAMSNETIDSpNetID`§џb  T_AmsNetIdArr`§џw`§џ id`§џ Index7001sNetID  T_AmsNetID§џ: String containing the Ams Net ID. E.g. '127.16.17.3.1.1' F_ScanAmsNetIds  T_AmsNetIdArr€PRN€ џџџџF_SCANIPV4ADDRIDSb  T_AmsNetIdArr`§џ Index7001sIPv4  T_IPv4Addr§џM String containing the Internet Protocol dotted address. E.g. '172.16.7.199' F_ScanIPv4AddrIds  T_IPv4AddrArr€PRN€ џџџџF_SPLITPATHNAMEpPath§џ pSlash§џ pDot§џp§џlength§џ sPathName  T_MaxString§џF_SplitPathNamesDrive §џsDir  T_MaxString§џ sFileName  T_MaxString§џsExt  T_MaxString§џ €PRN€ џџџџF_TOASCpChar§џstrQQ§џF_ToASC€PRN€ џџџџF_TOCHRpChar §џc§џF_ToCHRQQ€PRN€ џџџџFB_BADEVICEIOCONTROLfbRW O ( PORT := AMSPORT_R3_SYSSERV, IDXGRP := SYSTEMSERVICE_BADEVAPI, IDXOFFS := 0 )  T_AmsPortL ADSRDWRTEX`§џreq ST_AdsBaDevApiReq`§џstate`§џrtrig R_TRIG`§џ sNetID  '' T_AmsNetID`§џ Ams net id affinity  ( lower :=0, higher := 0 )T_U64KAFFINITY`§џ) Affinity mask (default = 0 = not used) nModifier`§џ+ Optional command modifier (0 == not used) nIdxGrp`§џ Api function group nIdxOffs`§џ Api function offset cbWriteLen`§џ  Input data byte size cbReadLen`§џ  Output data byte size pWriteBuff`§џ  Pointer to input data buffer pReadBuff`§џ  Pointer to output data buffer bExecute`§џ & Rising edge starts command execution tTimeoutˆ`§џbBusy`§џbError`§џnErrID`§џcbRead`§џ Count of bytes actually read €PRN€ џџџџFB_BAGENGETVERSIONfbCtrl ˆ ( nModifier := 0, affinity := ( lower := 0, higher := 0 ), nIdxGrp := BADEVAPIIGRP_GENERAL, nIdxOffs := BADEVAPIIOFFS_GENERAL_VERSION )  ( lower :=0, higher := 0 )T_U64KAFFINITYFB_BaDeviceIoControl`§џrtrig R_TRIG`§џstate`§џrsp`§џsNetID  '' T_AmsNetID`§џ ams net id bExecute`§џ& rising edge starts command execution tTimeoutˆ`§џbBusy`§џ bError`§џ nErrID`§џ nVersion`§џ nRevision`§џ nBuild`§џ€PRN€ џџџџ FB_CREATEDIR fbAdsRdWrt  FW_AdsRdWrt§џsNetId  T_AmsNetId§џ ams net id sPathName  T_MaxString§џ max directory length = 255 ePath  PATH_GENERIC E_OpenPath§џ+ Default: Create directory at generic path bExecute§џ% rising edge start command execution tTimeoutˆ§џbBusy§џ bError§џ nErrId§џ €PRN€ џџџџFB_EOF fbAdsRdWrt  FW_AdsRdWrt§џnEOF§џ RisingEdge R_TRIG§џ FallingEdge F_TRIG§џsNetId  T_AmsNetId§џ ams net id hFile§џ file handle bExecute§џ control input tTimeoutˆ§џbBusy§џ bError§џ nErrId§џ bEOF§џ €PRN€ џџџџ FB_FILECLOSE fbAdsRdWrt  FW_AdsRdWrt§џsNetId  T_AmsNetId§џ ams net id hFile§џ% file handle obtained through 'open' bExecute§џ close control input tTimeoutˆ§џbBusy§џ bError§џ nErrId§џ €PRN€ џџџџ FB_FILEDELETE fbAdsRdWrt  FW_AdsRdWrt§џ tmpOpenMode§џsNetId  T_AmsNetId§џ ams net id sPathName  T_MaxString§џ file path and name ePath  PATH_GENERIC E_OpenPath§џ Default: Open generic file bExecute§џ open control input tTimeoutˆ§џbBusy§џ bError§џ nErrId§џ €PRN€ џџџџ FB_FILEGETS fbAdsRdWrt  FW_AdsRdWrt§џ RisingEdge R_TRIG§џ FallingEdge F_TRIG§џsNetId  T_AmsNetId§џ ams net id hFile§џ file handle bExecute§џ control input tTimeoutˆ§џbBusy§џ bError§џ nErrId§џ sLine  T_MaxString§џ bEOF§џ €PRN€ џџџџ FB_FILEOPEN fbAdsRdWrt  FW_AdsRdWrt§џ tmpOpenMode§џtmpHndl§џ RisingEdge R_TRIG§џ FallingEdge F_TRIG§џsNetId  T_AmsNetId§џ ams net id sPathName  T_MaxString§џ max filename length = 255 nMode§џ open mode flags ePath  PATH_GENERIC E_OpenPath§џ Default: Open generic file bExecute§џ open control input tTimeoutˆ§џbBusy§џ bError§џ nErrId§џ hFile§џ file handle €PRN€ џџџџ FB_FILEPUTS fbAdsRdWrt  FW_AdsRdWrt§џ RisingEdge R_TRIG§џ FallingEdge F_TRIG§џsNetId  T_AmsNetId§џ ams net id hFile§џ file handle sLine  T_MaxString§џ string to write bExecute§џ control input tTimeoutˆ§џbBusy§џ bError§џ nErrId§џ €PRN€ џџџџ FB_FILEREAD fbAdsRdWrt  FW_AdsRdWrt§џ RisingEdge R_TRIG§џ FallingEdge F_TRIG§џsNetId  T_AmsNetId§џ ams net id hFile§џ file handle pReadBuff§џ buffer address for read cbReadLen§џ count of bytes for read bExecute§џ read control input tTimeoutˆ§џbBusy§џ bError§џ nErrId§џ cbRead§џ count of bytes actually read bEOF§џ€PRN€ џџџџ FB_FILERENAME fbAdsRdWrt  FW_AdsRdWrt§џ tmpOpenMode§џ sBothNames   T_MaxString§џ = SIZEOF( T_MaxString ) * 2 nOldLen§џnNewLen§џ RisingEdge R_TRIG§џ FallingEdge F_TRIG§џsNetId  T_AmsNetId§џ ams net id sOldName  T_MaxString§џ max filename length = 255 sNewName  T_MaxString§џ max filename length = 255 ePath  PATH_GENERIC E_OpenPath§џ Default: generic file pathbExecute§џ open control input tTimeoutˆ§џbBusy§џ bError§џ nErrId§џ €PRN€ џџџџ FB_FILESEEK fbAdsRdWrt  FW_AdsRdWrt§џ tmpSeekPos §џsNetId  T_AmsNetId§џ ams net id hFile§џ file handle nSeekPos§џ  new seek pointer position eOrigin  SEEK_SET E_SeekOrigin§џ bExecute§џ  seek control input tTimeoutˆ§џ bBusy§џbError§џnErrId§џ€PRN€ џџџџ FB_FILETELL fbAdsRdWrt  FW_AdsRdWrt§џsNetId  T_AmsNetId§џ ams net id hFile§џ file handle bExecute§џ control input tTimeoutˆ§џbBusy§џ bError§џ nErrId§џ nSeekPos§џ  On error, nSEEKPOS returns -1 €PRN€ џџџџ FB_FILEWRITE fbAdsRdWrt  FW_AdsRdWrt§џ RisingEdge R_TRIG§џ FallingEdge F_TRIG§џsNetId  T_AmsNetId§џ ams net id hFile§џ file handle pWriteBuff§џ buffer address for write cbWriteLen§џ count of bytes for write bExecute§џ write control input tTimeoutˆ§џbBusy§џ bError§џ nErrId§џ cbWrite§џ! count of bytes actually written €PRN€ џџџџ FB_PCWATCHDOGbRetVal§џ iTime§џiIdx§џiPortArr > 16#2E, 16#2E, 16#2E, 16#2F, 16#2E, 16#2F, 16#2E, 16#2F, 16#2E .../././.§џiArrEn > 16#87, 16#87, 16#07, 16#08, 16#F6, 16#05, 16#30, 16#01, 16#AA ‡‡і0Њ§џiArrDis > 16#87, 16#87, 16#07, 16#08, 16#F6, 16#00, 16#30, 16#00, 16#AA ‡‡і0Њ§џtTimeOut§џ; Watchdog TimeOut Time 1s..255s, disabled if tTimeOut < 1s bEnable§џ Enable / Disable Watchdog bEnabled§џ2 TRUE: Watchdog Enabled; FALSE: Watchdog Disabled bBusy§џ FB still busy bError§џ  FB has error nErrId§џ  FB error ID €PRN€ џџџџ FB_REMOVEDIR fbAdsRdWrt  FW_AdsRdWrt§џsNetId  T_AmsNetId§џ ams net id sPathName  T_MaxString§џ max filename length = 255 ePath  PATH_GENERIC E_OpenPath§џ+ Default: Delete directory at generic path bExecute§џ& rising edge starts command execution tTimeoutˆ§џbBusy§џ bError§џ nErrId§џ €PRN€ џџџџFB_SIMPLEADSLOGEVENTfbEvent  ADSLOGEVENT§џ cfgEvent TcEvent§џbInit§џSourceID§џEventID§џ bSetEvent§џbQuit§џErrId§џ Error§џ €PRN€ џџџџ FILECLOSE fbAdsWrite  FW_AdsWrite§џNETID  T_AmsNetId§џ ams net id HFILE§џ) file handle obtained through 'FILEOPEN' CLOSE§џ close control input TMOUTˆ§џBUSY§џ ERR§џ ERRID§џ €PRN€ џџџџFILEOPEN fbAdsWrite  FW_AdsWrite§џ RisingEdge R_TRIG§џ FallingEdge F_TRIG§џNETID  T_AmsNetId§џ ams net id FPATHNAME  T_MaxString§џ# default max filename length = 255 OPENMODE§џ open mode flags OPEN§џ open control input TMOUTˆ§џBUSY§џ ERR§џ ERRID§џ HFILE§џ file handle €PRN€ џџџџFILEREAD fbAdsRead  FW_AdsRead§џNETID  T_AmsNetId§џ ams net id HFILE§џ file handle BUFADDR§џ buffer address for read COUNT§џ count of bytes for read READ§џ read control input TMOUTˆ§џBUSY§џ ERR§џ ERRID§џ COUNT_R§џ count of bytes actually read €PRN€ џџџџFILESEEK fbAdsWrite  FW_AdsWrite§џNETID  T_AmsNetId§џ ams net id HFILE§џ file handle SEEKPOS§џ new seek pointer position SEEK§џ seek control input TMOUTˆ§џBUSY§џ ERR§џ ERRID§џ €PRN€ џџџџ FILEWRITE fbAdsWrite  FW_AdsWrite§џ RisingEdge R_TRIG§џ FallingEdge F_TRIG§џtmpCount§џNETID  T_AmsNetId§џ ams net id HFILE§џ file handle BUFADDR§џ buffer address for write COUNT§џ count of bytes for write WRITE§џ write control input TMOUTˆ§џBUSY§џ ERR§џ ERRID§џ COUNT_W§џ! count of bytes actually written €PRN€ џџџџFW_CALLGENERICFBfbCall w ( sNetID := '', nPort := 16#1234, bExecute := FALSE, tTimeout := T#0s, ACCESSCNT_I := 16#0000BEC1 )СО4 FW_AdsRdWrt`§џfunGrp`§џ# Function block group (identifier) funNum`§џ$ Function block number (identifier) pWrite`§џ+ Byte length of output parameter structure cbWrite`§џ* Byte length of input parameter structure pRead`§џ  Points ot output buffer cbRead`§џ  Points to input buffer nErrID`§џ  0 => no error, <> 0 => error cbReturned`§џ, Number of successfully returned data bytes €PRN€ џџџџFW_CALLGENERICFUNfbCall y ( sNetID := '', nPort := 16#1234, bExecute := FALSE, tTimeout := T#0s, ACCESSCNT_I := 16#0000BEC2 )ТО4 FW_AdsRdWrt`§џ don't use it! funGrp`§џ Function group (identifier) funNum`§џ$ Function block number (identifier) pWrite`§џ+ Byte length of output parameter structure cbWrite`§џ * Byte length of input parameter structure pRead`§џ  Points ot output buffer cbRead`§џ  Points to input buffer pcbReturned`§џ , Number of successfully returned data bytes FW_CallGenericFun€PRN€ џџџџGETBIT32dwConst§џinVal32§џbitNo§џGETBIT32€PRN€ џџџџ GETCPUACCOUNTfbGetCpuAccount FW_GetCpuAccount§џ cpuAccountDW§џ€PRN€ џџџџ GETCPUCOUNTERfbGetCpuCounter FW_GetCpuCounter§џ  cpuCntLoDW§џ cpuCntHiDW§џ€PRN€ џџџџGETCURTASKINDEXfbGetCurTaskIndex FW_GetCurTaskIndex§џindex§џ€PRN€ џџџџ GETSYSTEMTIMEfbGetSystemTime FW_GetSystemTime§џ timeLoDW§џtimeHiDW§џ€PRN€ џџџџ GETTASKTIMEout `§џ cbReturned`§џ timeLoDW§џtimeHiDW§џ€PRN€ џџџџ LPTSIGNALPortAddr§џPinNo§џOnOff§џ  LPTSIGNAL€PRN€ џџџџMEMCMPpBuf1§џ First buffer pBuf2§џ Second buffer n§џ Number of characters MEMCMP€PRN€ џџџџMEMCPYdestAddr§џ New buffer srcAddr§џ Buffer to copy from n§џ Number of characters to copy MEMCPY€PRN€ џџџџMEMMOVEdestAddr§џ New buffer srcAddr§џ Buffer to copy from n§џ Number of characters to copy MEMMOVE€PRN€ џџџџMEMSETdestAddr§џ Pointer to destination fillByte§џ Character to set n§џ Number of characters MEMSET€PRN€ џџџџROL32inVal32§џn§џROL32€PRN€ џџџџROR32inVal32§џn§џROR32€PRN€ џџџџSETBIT32dwConst§џinVal32§џbitNo§џSETBIT32€PRN€ џџџџSFCACTIONCONTROL S_FF RS§џL_TMR TON§џD_TMR TON§џP_TRIG R_TRIG§џSD_TMR TON§џSD_FF RS§џDS_FF RS§џDS_TMR TON§џSL_FF RS§џSL_TMR TON§џ N§џR0§џS0§џL§џD§џP§џSD§џ DS§џ SL§џ T§џ Q§џ€PRN€ џџџџSHL32inVal32§џn§џSHL32€PRN€ џџџџSHR32inVal32§џn§џSHR32€PRN€ џџџџsE:\TWINCAT\PLC\LIB\TcBaseMath.lib@FW_FLOORlr_in§џFW_Floor€PRN€џџџџ FW_LREALFRAClr_in§џ FW_LrealFrac€PRN€џџџџ FW_LREALMODPlr_val§џlr_mod§џ FW_LrealModP€PRN€џџџџ FW_LREALTRUNClr_in§џ FW_LrealTrunc€PRN€џџџџoE:\TWINCAT\PLC\LIB\TcMath.lib@F_GETVERSIONTCMATHnVersionElement§џF_GetVersionTcMath€PRN€ џџџџFLOORlr_in§џFLOOR€PRN€ џџџџFRAClr_in§џFRAC€PRN€ џџџџLMODlr_Value§џlr_Arg§џLMOD€PRN€ џџџџLTRUNClr_in§џLTRUNC€PRN€ џџџџMODABSlr_Value§џlr_Arg§џMODABS€PRN€ џџџџMODTURNSlr_Tmp§џlr_Value§џlr_Arg§џMODTURNS€PRN€ џџџџnE:\TWINCAT\PLC\LIB\TcMC2.lib@N _F_AXISSTATE _F_AxisState  MC_AxisStatesNcToPlc NCTOPLC_AXIS_REF`§џPlcToNc PLCTONC_AXIS_REF`§џ€PRN€ џџџџ_F_GETINDEXGROUP IndexGroup`§џ IndexOffset`§џ nType _E_ParameterType`§џ lrValue`§џ  ParaNumber`§џMode`§џ read/write _F_GetIndexGroup _ST_ParaStruct€PRN€ џџџџ _F_READSTATUS GetTaskIndex GETCURTASKINDEX`§џ _F_ReadStatus 0 ST_AxisStatusNcToPlc NCTOPLC_AXIS_REF`§џPlcToNc PLCTONC_AXIS_REF`§џ€PRN€ џџџџ_F_TCMC_DWORD_TO_HEXSTRstr1`§џpstr`§џ i`§џ digit`§џ in`§џ_F_TcMC_DWORD_TO_HEXSTR€PRN€ џџџџ _F_TCMC_ROUNDn`§џvalue`§џdigits`§џ _F_TcMC_Round€PRN€ џџџџ_FB_MOVEUNIVERSALGENERICiState  STATE_INITIALIZATION_E_TcMC_STATES§џ sStartRequest !_ST_TcNC_UnversalAxisStartRequest§џ sStartResponse "_ST_TcNC_UnversalAxisStartResponse§џ!fbAdsReadWrite  ADSRDWRTEX§џ" ContinousMode§џ# InVelocity§џ$EmptyStartResponse "_ST_TcNC_UnversalAxisStartResponse`§џ(COUNT_R`§џ)CounterCmdNoZero`§џ*CounterCmdNotStarted`§џ+NcCycleCounter`§џ,LastNcCycleCounter`§џ-NcMappingCounter`§џ.NcCycleCounterAvailable`§џ/NcCycleCounterNotAvailable`§џ0NcCyclicFeedbackExpected`§џ1 PlcDebugCode`§џ2a additional information for debugging purposes will be added to debug messages (ActErrorMessage) AxisIsSlave`§џ3 fbTimeOut TON`§џ4 fbOnTrigger R_TRIG`§џ5sTempMsg`§џ6OpMode _ST_TcNc_OperationModes`§џ9 Execute§џ StartType§џPosition§џ Velocity§џ Acceleration§џ Deceleration§џ Jerk§џ 6 Direction : MC_Direction := MC_Positive_Direction; BufferMode  MC_BufferMode§џOptions ST_MoveOptions§џReset§џ for internal use only GotoRunState§џ for internal use only Done§џ: Same meaning as InVelocity for continous motion commands Busy§џActive§џCommandAborted§џError§џErrorID§џCmdNo§џADSbusy§џAxis AXIS_REF§џLastExecutionResult _ST_FunctionBlockResults§џ€PRN€ џџџџ_FB_READWRITEPARAMETER iState  STATE_INITIALIZATION_E_TcMC_STATES`§џ fbAdsRead ADSREAD`§џ fbAdsWrite ADSWRITE`§џdwValue`§џlrValue  `§џ NcBoolValue`§џbStarted`§џ! stParaStruct _ST_ParaStruct`§џ"n`§џ#i`§џ$ ParaLREAL`§џ( ParaBOOL : INT := 3;Enable`§џParameterNumber MC_AxisParameter`§џMode`§џ read/write ParameterType`§џ  bool/ not bool Done`§џ Busy`§џError`§џErrorID`§џADSbusy`§џAxis AXIS_REF`§џ ValueLreal `§џ ValueDword `§џ ValueBool `§џ€PRN€ џџџџ _FBAXIS_REFNcCycleCounter`§џPlcToNc PLCTONC_AXIS_REF §џ NcToPlc NCTOPLC_AXIS_REF§џADS  ST_AdsAddress§џStatus 0 ST_AxisStatus§џ€PRN€ џџџџ _TCMCGLOBALAxis _ST_NCADS_Axis§џ A IDXGRP and IDXOFFS constants of axis parameter/status/functions Table _ST_NCADS_Table§џB IDXGRP and IDXOFFS constants of table parameter/status/functions NCPORT_TCNCCAMMING_TABLEFUNCTIONє§џ timeout tTargetPosTimeOutp§џT 20050128 KSt - changed from 5 sec to 6 sec to be later than a NC PEH error (5 sec) tADSTimeOutш§џNCTOPLC_FEEDBACK_MAXWAITCYCLES §џ\ maximum number of PLC cycles to wait for a cyclic feedback in NcToPlc after an ADS command  NCPORT_TCMCє§џNCPORT_TCMC_COUPLINGє§џ6 used with all axis coupling commands - 12.7.2006 KSt NCNETID_TCMC  '' T_AmsNetId§џNCPORT_TCMC_CAMє§џNCNETID_TCMC_CAM  '' T_AmsNetId§џ€PRN€ џџџџF_AXISCAMDATAQUEUED StateDWord§џ F_AxisCamDataQueued€PRN€ џџџџF_AXISCAMSCALINGPENDING StateDWord§џ F_AxisCamScalingPending€PRN€ џџџџF_AXISCAMTABLEQUEUED StateDWord§џ F_AxisCamTableQueued€PRN€ џџџџF_AXISCONTROLLOOPCLOSED StateDWord§џF_AxisControlLoopClosed€PRN€ џџџџF_AXISEXTERNALLATCHVALID StateDWord§џF_AxisExternalLatchValid€PRN€ џџџџF_AXISGOTNEWTARGETPOSITION StateDWord§џ F_AxisGotNewTargetPosition€PRN€ џџџџF_AXISHASBEENSTOPPED StateDWord§џF_AxisHasBeenStopped€PRN€ џџџџF_AXISHASEXTSETPOINTGEN StateDWord§џF_AxisHasExtSetPointGen€PRN€ џџџџ F_AXISHASJOB StateDWord§џ F_AxisHasJob€PRN€ џџџџF_AXISINERRORSTATE StateDWord§џF_AxisInErrorState€PRN€ џџџџF_AXISINPOSITIONWINDOW StateDWord§џF_AxisInPositionWindow€PRN€ џџџџF_AXISINPROTECTEDMODE StateDWord§џF_AxisInProtectedMode€PRN€ џџџџF_AXISINPTPMODE StateDWord§џ F_AxisInPTPmode€PRN€ џџџџF_AXISIODATAISINVALID StateDWord§џF_AxisIoDataIsInvalid€PRN€ џџџџF_AXISISATTARGETPOSITION StateDWord§џF_AxisIsAtTargetPosition€PRN€ џџџџF_AXISISCALIBRATED StateDWord§џF_AxisIsCalibrated€PRN€ џџџџF_AXISISCALIBRATING StateDWord§џF_AxisIsCalibrating€PRN€ џџџџF_AXISISCOMPENSATING StateDWord§џF_AxisIsCompensating€PRN€ џџџџF_AXISISCOUPLED nCoupleState§џF_AxisIsCoupled€PRN€ џџџџF_AXISISMOVING StateDWord§џF_AxisIsMoving€PRN€ џџџџF_AXISISMOVINGBACKWARDS StateDWord§џF_AxisIsMovingBackwards€PRN€ џџџџF_AXISISMOVINGENDLESS StateDWord§џF_AxisIsMovingEndless€PRN€ џџџџF_AXISISMOVINGFORWARD StateDWord§џF_AxisIsMovingForward€PRN€ џџџџF_AXISISNOTMOVING StateDWord§џF_AxisIsNotMoving€PRN€ џџџџ F_AXISISREADY StateDWord§џ F_AxisIsReady€PRN€ џџџџF_AXISJOBPENDING StateDWord§џ F_AxisJobPending€PRN€ џџџџF_AXISMOTIONCOMMANDSLOCKED StateDWord§џF_AxisMotionCommandsLocked€PRN€ џџџџF_AXISREACHEDCONSTANTVELOCITY StateDWord§џF_AxisReachedConstantVelocity€PRN€ џџџџF_GETVERSION_TCMC2nVersionElement§џF_GetVersion_TcMC2€PRN€ џџџџMC_ABORTSUPERPOSITIONLastExecutionResult _ST_FunctionBlockResults§џADSbusy§џ fbOnTrigger R_TRIG§џ fbADSwrite ADSWRITE§џiState  STATE_INITIALIZATION_E_TcMC_STATES§џExecute§џ Starts touch probe recording Done§џ move completed Busy§џ" function block is currently Busy Error§џ6 Signals that error has occured within Function Block ErrorID§џ  Error identification Axis AXIS_REF§џ f Identifies the axis of which the position should be recorded at a defined event at the trigger input €PRN€ џџџџMC_ABORTTRIGGERADSbusy§џ fbADSwrite ADSWRITE§џOLDADSINTERFACE`§џA temporary flag to test old and new NC ADS touch probe interface LatchID`§џ fbOnTrigger R_TRIG`§џExecute§џ  B Done§џ  B Busy§џ E Error§џ B ErrorID§џ E Axis AXIS_REF§џ B TriggerInput  TRIGGER_REF§џ E €PRN€ џџџџMC_EXTSETPOINTGENDISABLEADSbusy§џDisable ADSWRITE§џRunOnce§џExecute§џDone§џ Busy§џ Error§џ ErrorID§џ Enabled§џ Axis AXIS_REF§џ€PRN€ џџџџMC_EXTSETPOINTGENENABLEADSbusy§џEnable ADSWRITE§џsExtSetPointGen _ST_TcNC_SetPos§џExecute§џPosition§џ PositionType E_PositionType§џDone§џ Busy§џ Error§џ ErrorID§џEnabled§џAxis AXIS_REF§џ€PRN€ џџџџMC_EXTSETPOINTGENFEED GetTaskIndex GETCURTASKINDEX§џ Position§џVelocity§џ Acceleration§џ Direction§џ MC_ExtSetPointGenFeedAxis AXIS_REF§џ€PRN€ џџџџ MC_GEARINLastExecutionResult _ST_FunctionBlockResults§џADSbusy§џiState  STATE_INITIALIZATION_E_TcMC_STATES§џ fbAdsWrite ADSWRITE§џsCouple _ST_TcNC_CoupleSlave§џfbOptGearInDyn  MC_GearInDyn§џ fbOnTrigger R_TRIG`§џ#TimerStateFeedback TON`§џ$Execute§џ B RatioNumerator№?1№?§џ % changed from INT (PLCopen) to LREAL RatioDenominator§џ Acceleration§џ  E Deceleration§џ  E Jerk§џ  E BufferMode  MC_BufferMode§џ E Options ST_GearInOptions§џ V InGear§џ B Busy§џ E Active§џ E CommandAborted§џ E Error§џ B ErrorID§џ E Master AXIS_REF§џ B Slave AXIS_REF§џ B €PRN€ џџџџ MC_GEARINDYN LastExecutionResult _ST_FunctionBlockResults§џADSbusy§џ iState  STATE_INITIALIZATION_E_TcMC_STATES§џ! iSubState§џ" fbAdsWrite ADSWRITE§џ# fbAdsRead ADSREAD§џ$sCouple _ST_TcNC_CoupleSlave§џ%v_max§џ&pa_limit§џ' WasInGear§џ( iAcceleration`§џ,TimerStateFeedback TON`§џ-Enable§џ GearRatio№?1.0№?§џ Acceleration§џ Deceleration§џ not used Jerk§џ not used BufferMode  MC_BufferMode§џ E Options ST_GearInDynOptions§џ V InGear§џBusy§џActive§џCommandAborted§џError§џErrorID§џMaster AXIS_REF§џ Slave AXIS_REF§џ €PRN€ џџџџMC_GEARINMULTIMASTERADSbusy§џ%iState  STATE_INITIALIZATION_E_TcMC_STATES§џ& fbAdsWrite ADSWRITE§џ'sCouple _ST_TcNC_CoupleSlaveMultiMaster§џ( iAcceleration§џ) WasInGear§џ*LastExecutionResult _ST_FunctionBlockResults§џ+TimerStateFeedback TON`§џ/ Enable§џ GearRatio1№?1.0№?§џ GearRatio2№?1.0№?§џ GearRatio3№?1.0№?§џ GearRatio4№?1.0№?§џ Acceleration§џ Deceleration§џ not used Jerk§џ not used BufferMode  MC_BufferMode§џ E Options ST_GearInMultiMasterOptions§џ V InGear§џBusy§џActive§џCommandAborted§џ Error§џ!ErrorID§џ"Master1 AXIS_REF§џ Master2 AXIS_REF§џ Master3 AXIS_REF§џ Master4 AXIS_REF§џ Slave AXIS_REF§џ€PRN€ џџџџ MC_GEAROUTLastExecutionResult _ST_FunctionBlockResults§џADSbusy§џiState  STATE_INITIALIZATION_E_TcMC_STATES§џ fbAdsWrite ADSWRITE§џ fbOnTrigger R_TRIG`§џExecute§џ  B Options ST_GearOutOptions§џ  V Done§џ B Busy§џ E Error§џ B ErrorID§џ E Slave AXIS_REF§џ  B €PRN€ џџџџMC_HALTLastExecutionResult _ST_FunctionBlockResults§џ$ADSbusy§џ% MoveGeneric +_FB_MoveUniversalGeneric§џ&CmdNo§џ'Execute§џ B Deceleration§џ E Jerk§џ E BufferMode  MC_BufferMode§џ E Options ST_MoveOptions§џ optional parameters Done§џ B Busy§џ E Active§џ E CommandAborted§џ E Error§џ  B ErrorID§џ! E Axis AXIS_REF§џ B €PRN€ џџџџMC_HOME LastExecutionResult _ST_FunctionBlockResults§џADSbusy§џiState  STATE_INITIALIZATION_E_TcMC_STATES§џ iSubState§џ! fbAdsWriteCmd ADSWRITE§џ"fbAdsWriteRefPos ADSWRITE§џ#fbAdsReadRefPos ADSREAD§џ$ReferenceFlagValue§џ% fbSetPosition MC_SetPosition§џ&NcHomePosition§џ' fbTrigger R_TRIG`§џ+ fbTimeOut TON`§џ,Execute§џ B Position3tЌ<{Ќ1.0E3073tЌ<{Ќ§џ HomingMode  MC_HomingMode§џ E BufferMode  MC_BufferMode§џ E Options ST_HomingOptions§џ V bCalibrationCam§џ V Done§џ B Busy§џ E Active§џ E CommandAborted§џ E Error§џ B ErrorID§џ E Axis AXIS_REF§џ  B €PRN€ џџџџMC_JOGstate§џLastExecutionResult _ST_FunctionBlockResults§џ StateDWord§џExecuteMoveVelocity`§џ MoveVelocity MC_MoveVelocity`§џ!MoveVelocityOut  ST_McOutputs`§џ" Direction  MC_Direction`§џ# ExecuteHalt`§џ%Halt MC_Halt`§џ&HaltOut  ST_McOutputs`§џ'ExecuteMoveAbsolute`§џ) MoveAbsolute MC_MoveAbsolute`§џ*MoveAbsoluteOut  ST_McOutputs`§џ+ExecuteMoveRelative`§џ- MoveRelative MC_MoveRelative`§џ.MoveRelativeOut  ST_McOutputs`§џ/JogMove +_FB_MoveUniversalGeneric`§џ1LastJogMoveResult _ST_FunctionBlockResults`§џ2ExecuteJogMove`§џ3 StartType _E_TCNC_StartPosType`§џ4 JogMoveOut  ST_McOutputs`§џ5JogEnd`§џ7TargetPosition`§џ8modulo`§џ9 JogForward§џ JogBackwards§џMode  E_JogMode§џ Position§џ Velocity§џ Acceleration§џ Deceleration§џ Jerk§џ BufferMode : MC_BufferMode;Done§џBusy§џActive§џCommandAborted§џError§џErrorID§џAxis AXIS_REF§џ€PRN€ џџџџMC_MOVEABSOLUTELastExecutionResult _ST_FunctionBlockResults§џADSbusy§џ MoveGeneric +_FB_MoveUniversalGeneric§џCmdNo§џExecute§џ B Position§џ B Velocity§џ  E Acceleration§џ  E Deceleration§џ  E Jerk§џ  E BufferMode  MC_BufferMode§џ E Options ST_MoveOptions§џ V Done§џ B Busy§џ E Active§џ E CommandAborted§џ E Error§џ B ErrorID§џ E Axis AXIS_REF§џ B €PRN€ џџџџMC_MOVEADDITIVELastExecutionResult _ST_FunctionBlockResults§џ$ADSbusy§џ% MoveGeneric +_FB_MoveUniversalGeneric§џ&CmdNo§џ'Execute§џ B Distance§џ B Velocity§џ E Acceleration§џ E Deceleration§џ E Jerk§џ E BufferMode  MC_BufferMode§џ E Options ST_MoveOptions§џ V Done§џ B Busy§џ E Active§џ E CommandAborted§џ E Error§џ  B ErrorID§џ! E Axis AXIS_REF§џ B €PRN€ џџџџMC_MOVECONTINUOUSABSOLUTELastExecutionResult _ST_FunctionBlockResults§џ'ADSbusy§џ( MoveGeneric +_FB_MoveUniversalGeneric§џ)CmdNo§џ* Execute§џ B Position§џ B Velocity§џ B EndVelocity§џ B Acceleration§џ E Deceleration§џ E Jerk§џ E BufferMode  MC_BufferMode§џ E Options ST_MoveOptions§џ InEndVelocity§џ B Busy§џ  E Active§џ! E CommandAborted§џ" E Error§џ# B ErrorID§џ$ E Axis AXIS_REF§џ B €PRN€ џџџџMC_MOVECONTINUOUSRELATIVELastExecutionResult _ST_FunctionBlockResults§џ'ADSbusy§џ( MoveGeneric +_FB_MoveUniversalGeneric§џ)CmdNo§џ* Execute§џ B Distance§џ B Velocity§џ B EndVelocity§џ B Acceleration§џ E Deceleration§џ E Jerk§џ E BufferMode  MC_BufferMode§џ E Options ST_MoveOptions§џ InEndVelocity§џ B Busy§џ  E Active§џ! E CommandAborted§џ" E Error§џ# B ErrorID§џ$ E Axis AXIS_REF§џ B €PRN€ џџџџ MC_MOVEMODULOLastExecutionResult _ST_FunctionBlockResults§џADSbusy§џ MoveGeneric +_FB_MoveUniversalGeneric§џ StartType§џCmdNo§џ Execute§џPosition§џVelocity§џ Acceleration§џ Deceleration§џ Jerk§џ Direction  MC_Direction§џ  E BufferMode  MC_BufferMode§џ E Options ST_MoveOptions§џDone§џ B Busy§џ E Active§џ E CommandAborted§џ E Error§џ B ErrorID§џ E Axis AXIS_REF§џ€PRN€ џџџџMC_MOVERELATIVELastExecutionResult _ST_FunctionBlockResults§џADSbusy§џ MoveGeneric +_FB_MoveUniversalGeneric§џCmdNo§џExecute§џ  B Distance§џ  B Velocity§џ  E Acceleration§џ  E Deceleration§џ  E Jerk§џ E BufferMode  MC_BufferMode§џ E Options ST_MoveOptions§џ V Done§џ B Busy§џ E Active§џ E CommandAborted§џ E Error§џ B ErrorID§џ E Axis AXIS_REF§џ B €PRN€ џџџџMC_MOVESUPERIMPOSED LastExecutionResult _ST_FunctionBlockResults§џ+ADSbusy§џ,CompensationStarted§џ-AxisHasJobAtStartOfCompensation§џ., HasJob flag when starting the compensation !AxisIsMovingAtStartOfCompensation§џ/, Moving flag when starting the compensation iState  STATE_INITIALIZATION_E_TcMC_STATES§џ0fbAdsReadWrite  ADSRDWRTEX§џ1sNcCompensation _ST_TcNC_Compensation2§џ2 fbTrigger R_TRIG`§џ6 fbTimeOut TON`§џ7 Execute§џ B Mode E_SuperpositionMode§џ V Distance§џ B VelocityDiff§џ E Acceleration§џ E Deceleration§џ E Jerk§џ E VelocityProcess§џ V Length§џ V Options ST_SuperpositionOptions§џ V Done§џ B Busy§џ E Active§џ E CommandAborted§џ E Error§џ  B ErrorID§џ! E Warning§џ" V WarningId§џ# V ActualVelocityDiff§џ$ V ActualDistance§џ% V ActualLength§џ& V ActualAcceleration§џ' V ActualDeceleration§џ( V Axis AXIS_REF§џ  B €PRN€ џџџџMC_MOVEVELOCITYLastExecutionResult _ST_FunctionBlockResults§џADSbusy§џ MoveGeneric +_FB_MoveUniversalGeneric§џCmdNo§џExecute§џ B Velocity§џ E Acceleration§џ  E Deceleration§џ  E Jerk§џ  E Direction  MC_Positive_Direction MC_Direction§џ  E BufferMode  MC_BufferMode§џ  E Options ST_MoveOptions§џ V  InVelocity§џ B Busy§џ E Active§џ E CommandAborted§џ E Error§џ B ErrorID§џ E Axis AXIS_REF§џ B €PRN€ џџџџMC_OVERRIDEFILTER bFirstCycle§џbThresholdActive§џInternalOverrideValueRaw§џLastOverrideValueRawџџ§џ OverrideRange§џfbTimer TON`§џOverrideValueRaw§џ parameter LowerOverrideThreshold§џ 0...32767 digits UpperOverrideThresholdџ§џ 0...32767 digits OverrideStepsШ§џ 200 steps => 0.5 percent OverrideRecoveryTime–§џ  150 ms OverrideValueFiltered§џ  0...1000000 counts OverridePercentFiltered§џ 0...100 % Error§џErrorID§џ€PRN€ џџџџMC_POWER EnableTimeout TON`§џEnableOffOnDelay TP`§џ iOverride`§џEnable§џ  B Enable_Positive§џ  E Enable_Negative§џ  E OverrideY@100.0Y@§џ) in percent - Beckhoff proprietary input BufferMode  MC_BufferMode§џ E Status§џ B Busy§џ E Active§џ E Error§џ B ErrorID§џ E Axis AXIS_REF§џ B €PRN€ џџџџMC_POWERSTEPPER$fbPower MC_Power§џ ErrorCode§џfbWriteErrCode ADSWRITE§џ nRefState§џ fbWriteNonRef ADSWRITE§џ fbReadParams ADSREAD§џfbWriteInstOvr ADSWRITE§џ bAdsInitDone§џ bOverTemp§џ rtOverTemp R_TRIG§џ bUnderVoltage§џ!rtUnderVoltage R_TRIG§џ" bOpenLoopA§џ# rtOpenLoopA R_TRIG§џ$ bOpenLoopB§џ% rtOpenLoopB R_TRIG§џ& bOverCurrentA§џ'rtOverCurrentA R_TRIG§џ( bOverCurrentB§џ)rtOverCurrentB R_TRIG§џ* rtStallError R_TRIG§џ+ bOldState§џ,bLagFilterInit§џ. tonLagFilter TON§џ/tonNoLagFilter TON§џ0wState2§џ2nAngle§џ3 nOldAngle§џ4 AngleDiff§џ5 bInErrorState§џ6 nParamIdx§џ8 bParamEnabled§џ9 fLagLimit§џ: fLagFilter§џ;nTries§џ<tTimeOut TON§џ=Enable§џEnable_Positive§џEnable_Negative§џOverrideY@100.0Y@§џ in percent DestallParams ST_PowerStepperStruct§џ KL_Status§џ KL_Status2§џ Status§џError§џErrorID§џStalled§џ StallError§џAxis AXIS_REF§џ€PRN€ џџџџMC_READACTUALPOSITIONEnable§џ B Valid§џ  B Busy§џ  E Error§џ  B ErrorID§џ  E Position§џ B Axis AXIS_REF§џ B €PRN€ џџџџMC_READACTUALVELOCITYEnable§џ  B Valid§џ B Busy§џ E Error§џ B ErrorID§џ E ActualVelocity§џ B Axis AXIS_REF§џ B €PRN€ џџџџMC_READAXISCOMPONENTSTriggerExecute R_TRIG§џstate  STATE_INITIALIZATION_E_TcMC_STATES§џ fbAdsRead ADSREAD§џExecute§џDone§џ Busy§џ Error§џ ErrorID§џ AxisComponents ST_AxisComponents§џAxis AXIS_REF§џ€PRN€ џџџџMC_READAXISERROREnable§џ B Valid§џ  B Busy§џ  E Error§џ  B ErrorID§џ  B AxisErrorID§џ B Axis AXIS_REF§џ B €PRN€ џџџџMC_READBOOLPARAMETERADSbusy§џfbReadWriteParameter _FB_ReadWriteParameter§џ nParatype _E_ParameterType`§џdwValue`§џlrValue`§џbStarted`§џ fbTrigger R_TRIG`§џEnable§џ B ParameterNumber§џ B ReadMode  ReadMode_Once E_ReadMode§џ  Beckhoff proprietary input Valid§џ  B Busy§џ  E Error§џ B ErrorID§џ E Value§џ B Axis AXIS_REF§џ B €PRN€ џџџџMC_READDRIVEADDRESSstate  STATE_INITIALIZATION_E_TcMC_STATES§џTriggerExecute R_TRIG§џ fbAdsRead ADSREAD§џ readBuffer  §џi§џExecute§џDone§џ Busy§џ Error§џ ErrorID§џ DriveAddress ST_DriveAddress§џAxis AXIS_REF§џ B €PRN€ џџџџMC_READPARAMETERADSbusy§џfbReadWriteParameter _FB_ReadWriteParameter§џ nParatype _E_ParameterType`§џdwValue`§џbValue`§џbStarted`§џ fbTrigger R_TRIG`§џEnable§џ B ParameterNumber§џ B ReadMode  ReadMode_Once E_ReadMode§џ  Beckhoff proprietary input Valid§џ  B Busy§џ  E Error§џ B ErrorID§џ E Value§џ B Axis AXIS_REF§џ B €PRN€ џџџџMC_READPARAMETERSETTriggerExecute R_TRIG§џstate  STATE_INITIALIZATION_E_TcMC_STATES§џ fbAdsRead ADSREAD§џExecute§џDone§џ Busy§џ Error§џ ErrorID§џ Parameter <ST_AxisParameterSet§џAxis AXIS_REF§џ€PRN€ џџџџ MC_READSTATUSEnable§џ B Valid§џ  B Busy§џ  E Error§џ  B ErrorID§џ  E ErrorStop§џ B Disabled§џ B Stopping§џ B StandStill§џ B DiscreteMotion§џ B ContinuousMotion§џ B SynchronizedMotion§џ E Homing§џ E ConstantVelocity§џ E Accelerating§џ E Decelerating§џ E Status 0 ST_AxisStatus§џ V Axis AXIS_REF§џ B €PRN€ џџџџMC_RESETADSbusy§џiState  STATE_INITIALIZATION_E_TcMC_STATES§џLastExecutionResult _ST_FunctionBlockResults§џ fbAdsWrite ADSWRITE`§џ fbOnTrigger R_TRIG`§џExecute§џ  B Done§џ B Busy§џ E Error§џ B ErrorID§џ B Axis AXIS_REF§џ  B €PRN€ џџџџMC_SETENCODERSCALINGFACTORADSbusy§џstSetEncoderSaclingFactor  _ST_TcNC_SetEncoderSaclingFactor§џ iState  STATE_INITIALIZATION_E_TcMC_STATES§џ! fbAdsWrite ADSWRITE§џ" fbOnTrigger R_TRIG`§џ&Execute§џ  B ScalingFactor§џ  B Mode E_SetScalingFactorMode§џ  E Options ST_SetEncoderScalingOptions§џ  V Done§џ B Busy§џ E Error§џ B ErrorID§џ E Axis AXIS_REF§џ B €PRN€ џџџџMC_SETOVERRIDEEnable§џ  B VelFactor№?1.0№?§џ 1.0 = 100% AccFactor№?1.0№?§џ 1.0 = 100% JerkFactor№?1.0№?§џ 1.0 = 100% Enabled§џ B Busy§џ E Error§џ B ErrorID§џ E Axis AXIS_REF§џ €PRN€ џџџџMC_SETPOSITIONADSbusy§џ$stSetPos _ST_TcNC_SetPosOnTheFly§џ%iState  STATE_INITIALIZATION_E_TcMC_STATES§џ& fbAdsWrite ADSWRITE§џ' fbOnTrigger R_TRIG`§џ+Execute§џ B Position§џ B Mode§џ E Options ST_SetPositionOptions§џ V Done§џ B Busy§џ E Error§џ B ErrorID§џ E Axis AXIS_REF§џ  B €PRN€ џџџџMC_STOP LastExecutionResult _ST_FunctionBlockResults§џADSbusy§џ MoveGeneric +_FB_MoveUniversalGeneric§џ ReleaseLock ADSWRITE§џ CmdNo§џ!AxisMotionCommandsLocked§џ"iState  STATE_INITIALIZATION_E_TcMC_STATES§џ# fbOnTrigger R_TRIG`§џ'CounterMotionCommandsLocked`§џ(Execute§џ B Deceleration§џ E Jerk§џ E Options ST_MoveOptions§џ optional parameters Done§џ B Busy§џ E Active§џ E CommandAborted§џ E Error§џ B ErrorID§џ E Axis AXIS_REF§џ  B €PRN€ џџџџ MC_TOUCHPROBEADSbusy§џiState  STATE_INITIALIZATION_E_TcMC_STATES§џTouchProbeValid §џ valid state of probes 1..4 TouchProbeActive §џ! activation state of probes 1..4 TouchProbeValue §џ$ last recorded value of probes 1..4 TouchProbeModuloValue §џ+ last recorded modulo value of probes 1..4 TouchProbeInactiveCounter §џO number of cycles where the probes 1..4 where inactive (activation monitoring) OLDADSINTERFACE`§џ A temporary flag to test old and new NC ADS touch probe interface fbADSwrite ADSWRITE`§џ#fbAdsReadValid ADSREAD`§џ$fbAdsReadValue ADSREAD`§џ%fbAdsReadState ADSREAD`§џ&fbAdsReadModulo ADSREAD`§џ'TimerAdsReadState TON`§џ( RtrigPlcEvent R_TRIG`§џ) FtrigPlcEvent F_TRIG`§џ* fbOnTrigger R_TRIG`§џ+LatchID`§џ,Restart`§џ-H restart probe sequence when the trigger was outside the defined window InWindow`§џ.* probe value is inside the defined window ModuloFactor`§џ/& axis' modulo factor read from the NC InitDone`§џ0% initialization on start-up finished IndexOffset`§џ1i`§џ2Execute§џ B WindowOnly§џ  E FirstPosition§џ  E LastPosition§џ  E Done§џ B Busy§џ E CommandAborted§џ E Error§џ B ErrorID§џ E RecordedPosition§џ B Axis AXIS_REF§џ B TriggerInput  TRIGGER_REF§џ B €PRN€ џџџџMC_WRITEBOOLPARAMETERADSbusy§џfbReadWriteParameter _FB_ReadWriteParameter§џ nParatype _E_ParameterType`§џdwValue`§џlrValue`§џ fbTrigger R_TRIG`§џExecute§џ B ParameterNumber§џ B Value§џ  B Done§џ  B Busy§џ  E Error§џ B ErrorID§џ E Axis AXIS_REF§џ B €PRN€ џџџџMC_WRITEPARAMETERADSbusy§џfbReadWriteParameter _FB_ReadWriteParameter§џ nParatype _E_ParameterType`§џdwValue`§џbValue`§џ fbTrigger R_TRIG`§џExecute§џ B ParameterNumber§џ B Value§џ  B Done§џ  B Busy§џ  E Error§џ B ErrorID§џ E Axis AXIS_REF§џ B €PRN€ џџџџqE:\TWINCAT\PLC\LIB\STANDARD.LIB@CONCATSTR1§џSTR2§џCONCAT€PRN€џџџџCTDM§џ Variable for CD Edge DetectionCD§џ Count Down on rising edge LOAD§џ Load Start Value PV§џ Start Value Q§џ  Counter reached 0 CV§џ  Current Counter Value €PRN€џџџџCTUM§џ Variable for CU Edge Detection CU§џ Count Up RESET§џ Reset Counter to 0 PV§џ Counter Limit Q§џ  Counter reached the Limit CV§џ  Current Counter Value €PRN€џџџџCTUDMU§џ Variable for CU Edge Detection MD§џ Variable for CD Edge Detection CU§џ Count Up CD§џ Count Down RESET§џ  Reset Counter to Null LOAD§џ  Load Start Value PV§џ  Start Value / Counter Limit QU§џ Counter reached Limit QD§џ Counter reached Null CV§џ Current Counter Value €PRN€џџџџDELETESTR§џLEN§џPOS§џDELETE€PRN€џџџџF_TRIGM§џ CLK§џ Signal to detect Q§џ Edge detected €PRN€џџџџFINDSTR1§џSTR2§џFIND€PRN€џџџџINSERTSTR1§џSTR2§џPOS§џINSERT€PRN€џџџџLEFTSTR§џSIZE§џLEFT€PRN€џџџџLENSTR§џLEN€PRN€џџџџMIDSTR§џLEN§џPOS§џMID€PRN€џџџџR_TRIGM§џ CLK§џ Signal to detect Q§џ Edge detected €PRN€џџџџREPLACESTR1§џSTR2§џL§џP§џREPLACE€PRN€џџџџRIGHTSTR§џSIZE§џRIGHT€PRN€џџџџRSSET§џRESET1§џQ1§џ €PRN€џџџџSEMAX§џCLAIM§џ RELEASE§џ BUSY§џ €PRN€џџџџSRSET1§џRESET§џQ1§џ €PRN€џџџџTOFM§џ  internal variable StartTime§џ internal variable IN§џ? starts timer with falling edge, resets timer with rising edge PT§џ time to pass, before Q is set Q§џ 2 is FALSE, PT seconds after IN had a falling edge ET§џ  elapsed time €PRN€џџџџTONM§џ  internal variable StartTime§џ internal variable IN§џ? starts timer with rising edge, resets timer with falling edge PT§џ time to pass, before Q is set Q§џ 0 is TRUE, PT seconds after IN had a rising edge ET§џ  elapsed time €PRN€џџџџTP StartTime§џ  internal variable IN§џ! Trigger for Start of the Signal PT§џ' The length of the High-Signal in 10ms Q§џ The pulse ET§џ & The current phase of the High-Signal €PRN€џџџџR@MAINMotor1 AXIS_REF  PowerMotor1 MC_Power  ResetMotor1 MC_Reset  HaltMotor1 MC_Halt Motor2 AXIS_REF PowerMotor2 MC_Power ResetMotor2 MC_Reset HaltMotor2 MC_Halt MoveModuloMotor1  MC_MoveModulo MoveModuloMotor2  MC_MoveModulo Start1 Start2 Stop1 Stop2 A B C D E F G H Zero  NCcontrol HorizontalErrorText !VerticalErrorText "Tilt #NoTilt $€PRN@џџџџ ћ !(gЩKuЩKƒЩK‘ЩKІЩГЩ+КЛlocalhostуТТw Јѓ@h}мж|и”\Уwp СwџџџџуТТw>3єјЈѓ@№џџЈѓ@xДЌзД\Д ДіиџџhеазДз щ|р‘|џџџџл‘|єјЈѓ@єјЈѓ@ф’у`”Oџџџџ|иф’уx”OџџџџˆиН8у,,K@€PRNˆЫ/*BECKCONFI3*/ !@@€€3 Standard PTRNU@VAR_GLOBAL END_VAR "Ј8_Standard MAINџџџџџџџџPTRN$ћџџџ`Й•ИStandardЦMN ЦMN PTRN„ VAR_CONFIG END_VAR ',ооїGlobale_Variablen€PRN €PRN§џ‘VAR_GLOBAL rActualPosition1: LREAL; rActualPosition2: LREAL; SetPosition1: LREAL; SetPosition2: LREAL; state: state; END_VAR '",„ „ЧTwinCAT_Configuration€PRN PTRN"A(* Generated automatically by TwinCAT - (read only) *) VAR_CONFIG MAIN.Motor1.PlcToNc AT %QB0 : PLCTONC_AXIS_REF; (* ~ {LinkedWith:TINC^NC-Task 1 SAF^Axes^Axis 1^Inputs^Axis 1_FromPlc} *) MAIN.Motor1.NcToPlc AT %IB0 : NCTOPLC_AXIS_REF; (* ~ {LinkedWith:TINC^NC-Task 1 SAF^Axes^Axis 1^Outputs^Axis 1_ToPlc} *) MAIN.Motor2.PlcToNc AT %QB128 : PLCTONC_AXIS_REF; (* ~ {LinkedWith:TINC^NC-Task 1 SAF^Axes^Axis 2^Inputs^Axis 2_FromPlc} *) MAIN.Motor2.NcToPlc AT %IB128 : NCTOPLC_AXIS_REF; (* ~ {LinkedWith:TINC^NC-Task 1 SAF^Axes^Axis 2^Outputs^Axis 2_ToPlc} *) END_VAR' ,ЊmЊ)Variablen_Konfiguration€PRN €PRN §џVAR_CONFIG END_VAR x|0|0@n@LArial@ HH':'mm':'ssdd'-'MM'-'yyyydd'-'MM'-'yyyy HH':'mm':'ssєџџџђџџџџЬ3џџџџџџџDEFAULTSystemx|0|0@n@LArial@ HH':'mm':'ssdd'-'MM'-'yyyydd'-'MM'-'yyyy HH':'mm':'ssєџџџ HH':'mm':'ssdd'-'MM'-'yyyy' w,мџstate€PRN €PRNvРvpw x4TYPE state : ( MOVESTATE_INIT, MOVESTATE_ENABLE, MOVESTATE_WAIT, MOVESTATE_A, MOVESTATE_B, MOVESTATE_C, MOVESTATE_D, MOVESTATE_E, MOVESTATE_F, MOVESTATE_G, MOVESTATE_H, MOVESTATE_ZERO, MOVESTATE_NC, MOVESTATE_TILT, MOVESTATE_NOTILT, MOVESTATE_STOP ); END_TYPE ,ўџ)№MAINPTRN €PRNAPROGRAM MAIN VAR Motor1: AXIS_REF; PowerMotor1: MC_Power; ResetMotor1: MC_Reset; HaltMotor1: MC_Halt; Motor2: AXIS_REF; PowerMotor2: MC_Power; ResetMotor2: MC_Reset; HaltMotor2: MC_Halt; MoveModuloMotor1: MC_MoveModulo; MoveModuloMotor2: MC_MoveModulo; Start1: BOOL; Start2: BOOL; Stop1: BOOL; Stop2: BOOL; A: BOOL; B: BOOL; C: BOOL; D: BOOL; E: BOOL; F: BOOL; G: BOOL; H: BOOL; Zero: BOOL; NCcontrol: BOOL; HorizontalErrorText: STRING(25); VerticalErrorText: STRING(25); Tilt: BOOL; NoTilt: BOOL; END_VAR]B Motor1.ReadStatus; Motor2.ReadStatus; CASE state OF MOVESTATE_INIT : (*initial state*) ResetMotor1.Execute:=FALSE; ResetMotor2.Execute:=FALSE; HaltMotor1.Execute:=FALSE; HaltMotor2.Execute:=FALSE; MoveModuloMotor1.Execute:=FALSE; MoveModuloMotor2.Execute:=FALSE; IF Start1 AND Start2 THEN state :=MOVESTATE_ENABLE; END_IF IF Stop1 OR Stop2 THEN state := MOVESTATE_STOP; END_IF MOVESTATE_ENABLE : (*enable state*) PowerMotor1.Enable:=TRUE; PowerMotor1.Enable_Negative:=TRUE; PowerMotor1.Enable_Positive:=TRUE; rActualPosition1 :=Motor1.NcToPlc.ModuloActPos; PowerMotor2.Enable:=TRUE; PowerMotor2.Enable_Negative:=TRUE; PowerMotor2.Enable_Positive:=TRUE; rActualPosition2 :=Motor2.NcToPlc.ModuloActPos; IF A THEN state := MOVESTATE_A; ELSIF B THEN state := MOVESTATE_B; ELSIF C THEN state := MOVESTATE_C; ELSIF D THEN state := MOVESTATE_D; ELSIF E THEN state := MOVESTATE_E; ELSIF F THEN state := MOVESTATE_F; ELSIF G THEN state := MOVESTATE_G; ELSIF H THEN state := MOVESTATE_H; ELSIF Zero THEN state := MOVESTATE_ZERO; ELSIF NCcontrol THEN state := MOVESTATE_NC; ELSIF Tilt THEN state := MOVESTATE_TILT; END_IF MOVESTATE_A: (*stateA : position -2,+2*) MoveModuloMotor1.Direction:=MC_Shortest_Way; MoveModuloMotor2.Direction:=MC_Shortest_Way; MoveModuloMotor1.Position:=340; MoveModuloMotor2.Position:=20; MoveModuloMotor1.Execute:=TRUE; MoveModuloMotor2.Execute:=TRUE; B:=FALSE; C:=FALSE; D:=FALSE; E:=FALSE; F:=FALSE; G:=FALSE; H:=FALSE; Zero:=FALSE; Tilt:=FALSE; NCcontrol:=FALSE; IF MoveModuloMotor1.Done AND MoveModuloMotor2.Done THEN MoveModuloMotor1.Execute:=FALSE; MoveModuloMotor2.Execute:=FALSE; END_IF IF NOT A THEN state := MOVESTATE_WAIT; END_IF MOVESTATE_B: (*stateB : position 0,+2*) MoveModuloMotor1.Direction:=MC_Shortest_Way; MoveModuloMotor2.Direction:=MC_Shortest_Way; MoveModuloMotor1.Position:=0; MoveModuloMotor2.Position:=20; MoveModuloMotor1.Execute:=TRUE; MoveModuloMotor2.Execute:=TRUE; A:=FALSE; C:=FALSE; D:=FALSE; E:=FALSE; F:=FALSE; G:=FALSE; H:=FALSE; Zero:=FALSE; Tilt:=FALSE; NCcontrol:=FALSE; IF MoveModuloMotor1.Done AND MoveModuloMotor2.Done THEN MoveModuloMotor1.Execute:=FALSE; MoveModuloMotor2.Execute:=FALSE; END_IF IF NOT B THEN state := MOVESTATE_WAIT; END_IF MOVESTATE_C: (*stateC : position +2,+2*) MoveModuloMotor1.Direction:=MC_Shortest_Way; MoveModuloMotor2.Direction:=MC_Shortest_Way; MoveModuloMotor1.Position:=20; MoveModuloMotor2.Position:=20; MoveModuloMotor1.Execute:=TRUE; MoveModuloMotor2.Execute:=TRUE; A:=FALSE; B:=FALSE; D:=FALSE; E:=FALSE; F:=FALSE; G:=FALSE; H:=FALSE; Zero:=FALSE; Tilt:=FALSE; NCcontrol:=FALSE; IF MoveModuloMotor1.Done AND MoveModuloMotor2.Done THEN MoveModuloMotor1.Execute:=FALSE; MoveModuloMotor2.Execute:=FALSE; END_IF IF NOT C THEN state := MOVESTATE_WAIT; END_IF MOVESTATE_D: (*stateD : position -2,0*) MoveModuloMotor1.Direction:=MC_Shortest_Way; MoveModuloMotor2.Direction:=MC_Shortest_Way; MoveModuloMotor1.Position:=340; MoveModuloMotor2.Position:=0; MoveModuloMotor1.Execute:=TRUE; MoveModuloMotor2.Execute:=TRUE; A:=FALSE; B:=FALSE; C:=FALSE; E:=FALSE; F:=FALSE; G:=FALSE; H:=FALSE; Zero:=FALSE; Tilt:=FALSE; NCcontrol:=FALSE; IF MoveModuloMotor1.Done AND MoveModuloMotor2.Done THEN MoveModuloMotor1.Execute:=FALSE; MoveModuloMotor2.Execute:=FALSE; END_IF IF NOT D THEN state := MOVESTATE_WAIT; END_IF MOVESTATE_ZERO: (*state zero : position 0, 0*) MoveModuloMotor1.Direction:=MC_Shortest_Way; MoveModuloMotor2.Direction:=MC_Shortest_Way; MoveModuloMotor1.Position:=0; MoveModuloMotor2.Position:=0; MoveModuloMotor1.Execute:=TRUE; MoveModuloMotor2.Execute:=TRUE; A:=FALSE; B:=FALSE; C:=FALSE; D:=FALSE; E:=FALSE; F:=FALSE; G:=FALSE; H:=FALSE; Tilt:=FALSE; NCcontrol:=FALSE; IF MoveModuloMotor1.Done AND MoveModuloMotor2.Done THEN MoveModuloMotor1.Execute:=FALSE; MoveModuloMotor2.Execute:=FALSE; END_IF IF NOT Zero THEN state := MOVESTATE_WAIT; END_IF MOVESTATE_E: (*stateA : position +2, 0 *) MoveModuloMotor1.Direction:=MC_Shortest_Way; MoveModuloMotor2.Direction:=MC_Shortest_Way; MoveModuloMotor1.Position:=20; MoveModuloMotor2.Position:=0; MoveModuloMotor1.Execute:=TRUE; MoveModuloMotor2.Execute:=TRUE; A:=FALSE; B:=FALSE; C:=FALSE; D:=FALSE; F:=FALSE; G:=FALSE; H:=FALSE; Zero:=FALSE; Tilt:=FALSE; NCcontrol:=FALSE; IF MoveModuloMotor1.Done AND MoveModuloMotor2.Done THEN MoveModuloMotor1.Execute:=FALSE; MoveModuloMotor2.Execute:=FALSE; END_IF IF NOT E THEN state := MOVESTATE_WAIT; END_IF MOVESTATE_F: (*stateF : position -2,-2*) MoveModuloMotor1.Direction:=MC_Shortest_Way; MoveModuloMotor2.Direction:=MC_Shortest_Way; MoveModuloMotor1.Position:=340; MoveModuloMotor2.Position:=340; MoveModuloMotor1.Execute:=TRUE; MoveModuloMotor2.Execute:=TRUE; A:=FALSE; B:=FALSE; C:=FALSE; D:=FALSE; E:=FALSE; G:=FALSE; H:=FALSE; Zero:=FALSE; Tilt:=FALSE; NCcontrol:=FALSE; IF MoveModuloMotor1.Done AND MoveModuloMotor2.Done THEN MoveModuloMotor1.Execute:=FALSE; MoveModuloMotor2.Execute:=FALSE; END_IF IF NOT F THEN state := MOVESTATE_WAIT; END_IF MOVESTATE_G: (*stateA : position 0, -2*) MoveModuloMotor1.Direction:=MC_Shortest_Way; MoveModuloMotor2.Direction:=MC_Shortest_Way; MoveModuloMotor1.Position:=0; MoveModuloMotor2.Position:=340; MoveModuloMotor1.Execute:=TRUE; MoveModuloMotor2.Execute:=TRUE; A:=FALSE; B:=FALSE; C:=FALSE; D:=FALSE; E:=FALSE; F:=FALSE; H:=FALSE; Zero:=FALSE; Tilt:=FALSE; NCcontrol:=FALSE; IF MoveModuloMotor1.Done AND MoveModuloMotor2.Done THEN MoveModuloMotor1.Execute:=FALSE; MoveModuloMotor2.Execute:=FALSE; END_IF IF NOT G THEN state := MOVESTATE_WAIT; END_IF MOVESTATE_H: (*stateH : position +2, -2*) MoveModuloMotor1.Direction:=MC_Shortest_Way; MoveModuloMotor2.Direction:=MC_Shortest_Way; MoveModuloMotor1.Position:=20; MoveModuloMotor2.Position:=340; MoveModuloMotor1.Execute:=TRUE; MoveModuloMotor2.Execute:=TRUE; A:=FALSE; B:=FALSE; C:=FALSE; D:=FALSE; E:=FALSE; F:=FALSE; G:=FALSE; Zero:=FALSE; Tilt:=FALSE; NCcontrol:=FALSE; IF MoveModuloMotor1.Done AND MoveModuloMotor2.Done THEN MoveModuloMotor1.Execute:=FALSE; MoveModuloMotor2.Execute:=FALSE; END_IF IF NOT H THEN state := MOVESTATE_WAIT; END_IF MOVESTATE_NC: (*state NC : enable Numerical control*) MoveModuloMotor1.Direction:=MC_Shortest_Way; MoveModuloMotor2.Direction:=MC_Shortest_Way; MoveModuloMotor1.Position:=SetPosition1; MoveModuloMotor2.Position:=SetPosition2; IF NCcontrol THEN MoveModuloMotor1.Execute:=TRUE; MoveModuloMotor2.Execute:=TRUE; A:=FALSE; B:=FALSE; C:=FALSE; D:=FALSE; E:=FALSE; F:=FALSE; G:=FALSE; H:=FALSE; Zero:=FALSE; Tilt:=FALSE; END_IF IF MoveModuloMotor1.Done AND MoveModuloMotor2.Done THEN MoveModuloMotor1.Execute:=FALSE; MoveModuloMotor2.Execute:=FALSE; END_IF IF NOT NCcontrol THEN state := MOVESTATE_WAIT; END_IF (*tilt *) MOVESTATE_TILT: (*state Tilt : position +90, 0*) IF Tilt THEN MoveModuloMotor1.Direction:=MC_Positive_Direction; MoveModuloMotor1.Direction:=MC_Shortest_Way; MoveModuloMotor1.Position:=90; MoveModuloMotor2.Position:=0; MoveModuloMotor1.Execute:=TRUE; MoveModuloMotor2.Execute:=TRUE; A:=FALSE; B:=FALSE; C:=FALSE; D:=FALSE; E:=FALSE; F:=FALSE; G:=FALSE; H:=FALSE; Zero:=FALSE; NCcontrol:=FALSE; NoTilt:=FALSE; END_IF IF MoveModuloMotor1.Done AND MoveModuloMotor2.Done THEN MoveModuloMotor1.Execute:=FALSE; MoveModuloMotor2.Execute:=FALSE; END_IF IF NOT Tilt THEN state := MOVESTATE_WAIT; END_IF MOVESTATE_NOTILT: IF NoTilt THEN MoveModuloMotor1.Direction:=MC_Negative_Direction; MoveModuloMotor2.Direction:=MC_Shortest_Way; MoveModuloMotor1.Position:=0; MoveModuloMotor2.Position:=0; MoveModuloMotor1.Execute:=TRUE; MoveModuloMotor2.Execute:=TRUE; A:=FALSE; B:=FALSE; C:=FALSE; D:=FALSE; E:=FALSE; F:=FALSE; G:=FALSE; H:=FALSE; Zero:=FALSE; Tilt:=FALSE; NCcontrol:=FALSE; END_IF IF MoveModuloMotor1.Done AND MoveModuloMotor2.Done THEN MoveModuloMotor1.Execute:=FALSE; MoveModuloMotor2.Execute:=FALSE; IF NOT NoTilt THEN state := MOVESTATE_WAIT; END_IF END_IF MOVESTATE_WAIT: (*state wait : wait for next state*) IF A THEN state := MOVESTATE_A; ELSIF B THEN state := MOVESTATE_B; ELSIF C THEN state := MOVESTATE_C; ELSIF D THEN state := MOVESTATE_D; ELSIF E THEN state := MOVESTATE_E; ELSIF F THEN state := MOVESTATE_F; ELSIF G THEN state := MOVESTATE_G; ELSIF H THEN state := MOVESTATE_H; ELSIF Zero THEN state := MOVESTATE_ZERO; ELSIF Tilt THEN state := MOVESTATE_TILT; ELSIF NCcontrol THEN state := MOVESTATE_NC; END_IF MOVESTATE_STOP: (*state stop*) HaltMotor1.Execute:=TRUE; IF HaltMotor1.Done THEN PowerMotor1.Enable:=FALSE; END_IF HaltMotor2.Execute:=TRUE; IF HaltMotor2.Done THEN PowerMotor2.Enable:=FALSE; END_IF END_CASE Act_DriveMotor1; Act_DriveMotor2; t,ђ?ПаAct_DriveMotor19TRN PowerMotor1AMotor1MC_Power ResetMotor1AMotor1MC_ResetMoveModuloMotor110010 MC_BufferedAMotor1 MC_MoveModulo HaltMotor1AMotor1MC_Haltdu,&П№Act_DriveMotor2NTRN PowerMotor2AMotor2MC_Power ResetMotor2AMotor2MC_ResetMoveModuloMotor210010 MC_BufferedAMotor2 MC_MoveModulo HaltMotor2AMotor2MC_Haltd !,uѓњ CBM_MIRROR€PRN @NДRRNыd, @П)n€РџџџMotor 1єџ@ @(oQF<ђ€ MAIN.Start1Startєџ MAIN.Start1@ @n(ПQ–<џdSЬ MAIN.Stop1Stopєџ MAIN.Stop1@ @FŒгiЏџџџџџџ]єџ@ @вs)"€РџџџMotor 2Пєџ@ @в(#Qњ<ь€ MAIN.Start2StartРєџ MAIN.Start2@ @"(sQJ<џaOФ MAIN.Stop2StopСєџ MAIN.Stop2@ @FвiѕџџџџџџТєџ@ @F_i;џџџџџџУєџ@ @F^ЅiџџџџџџФєџ@ @ŒŒггЏЏџџџџџџХєџ@ @ŒвгЏѕџџџџџџЦєџ@ @Œг_Џ;џџџџџџЧєџ@ @Œ^гЅЏџџџџџџШєџ@ @в^ЅѕџџџџџџЩєџ@ @в_ѕ;џџџџџџЪєџ@ @ввѕѕџџџџџџЫєџ@ @вŒгѕЏџџџџџџЬєџ@ @Œ_г;ЏџџџџџџЭєџ@ @в_;ѕџџџџџџЮєџ@ @__;;џџџџџџЯєџ@ @^_Ѕ;џџџџџџаєџ@ @Дњё7вџџџ€ MAIN.ZeroZerooєџ MAIN.Zero@ @nДЋёŒвџџџ€MAIN.AAЇєџMAIN.A@ @ДДёёввџџџ€MAIN.BBЈєџMAIN.B@ @њД7ёвџџџ€MAIN.CCЉєџMAIN.C@ @n@Ћ}Œ^џџџ€MAIN.FFЌєџMAIN.F@ @nњЋ7Œџџџ€MAIN.DD­єџMAIN.D@ @Д@ё}в^џџџ€MAIN.GGЎєџMAIN.G@ @њњ77џџџ€MAIN.EEЏєџMAIN.E@ @њ@7}^џџџ€MAIN.HHБєџMAIN.H@ @†O)ъ€џџџActual Positionбєџ@ @†(з=Ў2џџџџџџ Horizontalвєџ@ @†<зQЎFџџџџџџVerticalгєџ@ @ж(O=2џџџџџџ MAIN.Motor1.NcToPlc.ModuloActPos%3.3f Адєџ@ @ж<OQFџџџџџџ MAIN.Motor2.NcToPlc.ModuloActPos%3.3fАеєџ@ @†ыKИ,­[џ€џ MAIN.Tilt Tilt (90А)жєџ MAIN.Tilt@ @†ŒOЁъ–еџџџ Set Positionиєџ@ @† зЕЎЊџџџџџџ Horizontalйєџ@ @†ДзЩЎОџџџџџџVerticalкєџ@-6.06.0Horizontal@ж OЕЊџџџџџџ .SetPosition1%3.1fАлєџ .SetPosition1@-66Vertical@жДOЩОџџџџџџ .SetPosition2%3.1fАмєџ .SetPosition2@ @†dOƒъsс€MAIN.NCcontrolNumerical control startтєџMAIN.NCcontrol@ @ъOK,џ€€џ MAIN.NoTilt NoTilt (0А)ъєџ MAIN.NoTilt@MКћџџџџџџџџџвгЧўА=€€€€€€€€€шъъ§џџџ,іё!TcBase.lib 14.5.09 11:14:08@рр J#TcSystem.lib 18.2.11 16:15:48@^M%TcBaseMath.lib 27.7.04 11:07:56@lA!TcMath.lib 23.9.04 14:15:30@bОRA TcMC2.lib 12.3.10 11:50:30@fšK"STANDARD.LIB 5.6.98 11:03:02@FДw5zFW_AdsClearEvents@ FW_NoOfByteFW_SystemInfoTypeFW_SystemTaskInfoType FW_TcEventFW_AdsLogDINT@FW_AdsLogEvent@FW_AdsLogLREAL@FW_AdsLogSTR@FW_AdsRdWrt@FW_AdsRdWrtInd@FW_AdsRdWrtRes@FW_AdsRead@FW_AdsReadDeviceInfo@FW_AdsReadInd@FW_AdsReadRes@FW_AdsReadState@FW_AdsWrite@FW_AdsWriteControl@FW_AdsWriteInd@FW_AdsWriteRes@FW_DRand@FW_GetCpuAccount@FW_GetCpuCounter@FW_GetCurTaskIndex@FW_GetSystemTime@FW_GetVersionTcBase@FW_LptSignal@FW_MemCmp@FW_MemCpy@FW_MemMove@FW_MemSet@FW_PortRead@FW_PortWrite@O,ADSCLEAREVENTS@E_IOAccessSize E_OpenPath E_SeekOriginE_TcEventClassE_TcEventClearModesE_TcEventPriorityE_TcEventStreamTypeExpressionResult SFCActionType SFCStepTypeST_AdsBaDevApiHeadST_AdsBaDevApiIoCtlModifierST_AdsBaDevApiReq ST_AmsAddrSYSTEMINFOTYPESYSTEMTASKINFOTYPE T_AmsNetId T_AmsNetIdArr T_AmsPort T_IPv4Addr T_IPv4AddrArr T_MaxStringT_U64KAFFINITYTcEventADSLOGDINT@ADSLOGEVENT@ADSLOGLREAL@ADSLOGSTR@ADSRDDEVINFO@ADSRDSTATE@ADSRDWRT@ADSRDWRTEX@ADSRDWRTIND@ADSRDWRTRES@ ADSREAD@ADSREADEX@ADSREADIND@ADSREADRES@ADSWRITE@ADSWRITEIND@ADSWRITERES@ADSWRTCTL@AnalyzeExpression@AnalyzeExpressionCombined@AnalyzeExpressionTable@AppendErrorString@BAVERSION_TO_DWORD@CLEARBIT32@CSETBIT32@ DRAND@F_CompareFwVersion@F_CreateAmsNetId@F_CreateIPv4Addr@F_GetVersionTcSystem@F_IOPortRead@F_IOPortWrite@F_ScanAmsNetIds@F_ScanIPv4AddrIds@F_SplitPathName@ F_ToASC@ F_ToCHR@FB_BaDeviceIoControl@FB_BaGenGetVersion@FB_CreateDir@ FB_EOF@FB_FileClose@FB_FileDelete@FB_FileGets@FB_FileOpen@FB_FilePuts@FB_FileRead@FB_FileRename@FB_FileSeek@FB_FileTell@FB_FileWrite@FB_PcWatchdog@FB_RemoveDir@FB_SimpleAdsLogEvent@FILECLOSE@FILEOPEN@FILEREAD@FILESEEK@FILEWRITE@FW_CallGenericFb@FW_CallGenericFun@GETBIT32@GETCPUACCOUNT@GETCPUCOUNTER@GETCURTASKINDEX@GETSYSTEMTIME@GETTASKTIME@LPTSIGNAL@ MEMCMP@ MEMCPY@ MEMMOVE@ MEMSET@ ROL32@ ROR32@SETBIT32@SFCActionControl@ SHL32@ SHR32@Global_Variables@FW_Floor@FW_LrealFrac@FW_LrealModP@FW_LrealTrunc@ F_GetVersionTcMath@ FLOOR@ FRAC@ LMOD@ LTRUNC@ MODABS@MODTURNS@_ъ_F_AxisState@I_E_ParameterType_E_ReadWriteParameterMode_E_TcMC_STATES_E_TcNC_CmdState _E_TcNC_CmdTypeNewTargPosAndVelo_E_TcNC_PosSetType_E_TcNC_ServoState_E_TcNC_SlaveTypes_E_TcNC_StartPosType_E_TcNC_TargPosType_E_TouchProbeState_ST_FunctionBlockResults_ST_NCADS_Axis_ST_NCADS_AxisFunctions_ST_NCADS_AxisParameter_ST_NCADS_AxisState_ST_NCADS_IDXOFFS_AxisFunctions_ST_NCADS_IDXOFFS_AxisParameter_ST_NCADS_IDXOFFS_AxisState _ST_NCADS_IDXOFFS_TableFunctions _ST_NCADS_IDXOFFS_TableParameter_ST_NCADS_Table_ST_NCADS_TableFunctions_ST_NCADS_TableParameter_ST_ParaStruct_ST_TcNC_Compensation2_ST_TcNC_CoupleSlave_ST_TcNC_CoupleSlaveMultiMaster_ST_TcNC_DecoupleSlave_ST_TcNc_OperationModes _ST_TcNC_SetEncoderSaclingFactor_ST_TcNC_SetPos_ST_TcNC_SetPosOnTheFly!_ST_TcNC_UnversalAxisStartRequest"_ST_TcNC_UnversalAxisStartResponseAXIS_REFE_AxisErrorCodesE_DestallDetectMode E_DestallMode E_JogModeE_PositionType E_ReadModeE_SetScalingFactorMode E_SignalEdgeE_SuperpositionAbortOptionE_SuperpositionMode E_TouchProbeMC_AxisParameter MC_AxisStates MC_BufferMode MC_Direction MC_HomingModeNCTOPLC_AXIS_REFPLCTONC_AXIS_REF ST_AdsAddressST_AxisComponentsST_AxisOpModesST_AxisParameterSet ST_AxisStatusST_DriveAddressST_GearInDynOptionsST_GearInMultiMasterOptionsST_GearInOptionsST_GearOutOptionsST_HomingOptions ST_McOutputsST_MoveOptionsST_PowerStepperStructST_SetEncoderScalingOptionsST_SetPositionOptionsST_SuperpositionOptionsST_TableCharacValues TRIGGER_REF_F_GetIndexGroup@_F_ReadStatus@_F_TcMC_DWORD_TO_HEXSTR@_F_TcMC_Round@_FB_MoveUniversalGeneric@._FB_MoveUniversalGeneric.ActErrorMessage@8_FB_MoveUniversalGeneric.ActMonitorContinousMotion@7_FB_MoveUniversalGeneric.ActMonitorDiscreteMotion@-_FB_MoveUniversalGeneric.ActMonitorStop@0_FB_MoveUniversalGeneric.ActNcCycleCounter@_FB_ReadWriteParameter@_FBAXIS_REF@_FBAXIS_REF.ReadStatus@_TCMCGLOBAL@F_AxisCamDataQueued@F_AxisCamScalingPending@F_AxisCamTableQueued@F_AxisControlLoopClosed@F_AxisExternalLatchValid@ F_AxisGotNewTargetPosition@F_AxisHasBeenStopped@F_AxisHasExtSetPointGen@F_AxisHasJob@F_AxisInErrorState@F_AxisInPositionWindow@F_AxisInProtectedMode@F_AxisInPTPmode@F_AxisIoDataIsInvalid@F_AxisIsAtTargetPosition@F_AxisIsCalibrated@F_AxisIsCalibrating@F_AxisIsCompensating@F_AxisIsCoupled@F_AxisIsMoving@F_AxisIsMovingBackwards@F_AxisIsMovingEndless@F_AxisIsMovingForward@F_AxisIsNotMoving@F_AxisIsReady@F_AxisJobPending@ F_AxisMotionCommandsLocked@#F_AxisReachedConstantVelocity@F_GetVersion_TcMC2@MC_AbortSuperposition@MC_AbortTrigger@MC_ExtSetPointGenDisable@MC_ExtSetPointGenEnable@MC_ExtSetPointGenFeed@MC_GearIn@MC_GearIn.ActGearInDyn@MC_GearIn.WriteGearRatio@MC_GearInDyn@MC_GearInMultiMaster@MC_GearOut@ MC_Halt@ MC_Home@ MC_Jog@MC_Jog.ActCheckJogEnd@MC_Jog.ActJogMove@MC_MoveAbsolute@MC_MoveAdditive@MC_MoveContinuousAbsolute@MC_MoveContinuousRelative@MC_MoveModulo@%MC_MoveModulo.MC_MoveModuloCall@MC_MoveRelative@MC_MoveSuperImposed@MC_MoveVelocity@MC_OverrideFilter@MC_Power@MC_PowerStepper@MC_ReadActualPosition@MC_ReadActualVelocity@MC_ReadAxisComponents@MC_ReadAxisError@MC_ReadBoolParameter@MC_ReadDriveAddress@MC_ReadParameter@MC_ReadParameterSet@MC_ReadStatus@MC_Reset@ MC_SetEncoderScalingFactor@MC_SetOverride@MC_SetPosition@ MC_Stop@MC_Stop.ActStop@MC_TouchProbe@)MC_TouchProbe.ActTouchProbeActivate@0MC_TouchProbe.ActTouchProbeMonitorActivity@2MC_TouchProbe.ActTouchProbeMonitorLatchValid@0MC_TouchProbe.ActTouchProbeMonitorPlcEvent@,MC_TouchProbe.ActTouchProbeStartupInit@MC_WriteBoolParameter@MC_WriteParameter@TcMC_GlobalConstants@CONCAT@ CTD@ CTU@ CTUD@ DELETE@ F_TRIG@ FIND@ INSERT@ LEFT@ LEN@ MID@ R_TRIG@ REPLACE@ RIGHT@RS@ SEMA@SR@ TOF@ TON@TP@Global Variables 0@2џџџџџџџџџџџџџџџџ њџџџoјџџџ§џ POUsMAINAct_DriveMotor1tAct_DriveMotor2u џџџџ Data typesstatewџџџџVisualizations CBM_Mirror!џџџџGlobal VariablesGlobale_VariablenTwinCAT_Configuration"Variablen_Konfiguration џџџџ§џAЦMN localhostP localhostP localhostPщaп;