--- a
+++ b/V23Proj.pro
@@ -0,0 +1,922 @@
+CoDeSys+_î
 	@@2.3.9.52Ŕ.@ConfigExtension¤CommConfigEx7CommConfigExEndMEĽIBPLON*.n%QB+CPrra%ME_EndCMęCM_EndCT┼        CT_EndConfigExtensionEnd/@ RY Yc:\programme\3s software\codesys v2.3\library\@════════l59Yůn@HC:\PROGRAM FILES (X86)\COMMON FILES\CAA-TARGETS\3S\LIB_PLCWINNT\UTIL.LIB
+BCD_TO_INTBýÿ byte containing the BCD value 
+BCD_TO_INTRY€ ÿÿÿÿBLINKCLOCKTPýÿENABLEýÿ+ TRUE:run Blink, FALSE: OUT keeps its valueTIMELOWýÿ Time for OUT=FALSE TIMEHIGHýÿ Time for OUT=TRUE OUTýÿ	& output variable, starting with FALSE RY€ ÿÿÿÿ	CHARCURVEIýÿINýÿ input signal Nýÿ@ number of  points defining the characteristic curve : 2<=N<=11 OUTýÿ output variable ERRýÿï error :
+												0 : 	no error
+												1 :	error in ARRAY: wrong sequence ( completely tested, only if IN is equal to largest X-value of P)
+												2 :	IN outside of limits of P
+												4 :	number of POINTS (N) invalid P
	
+POINTýÿ8 ARRAY of N points to describe the characteristic curve RY€ ÿÿÿÿ
+DERIVATIVEX3ýÿ
X2ýÿ
X1ýÿ
T2ýÿT1ýÿINITýÿINýÿ input variable TMýÿ time since last call in msec RESETýÿ reset: set OUT to zero OUTýÿ
+ derivative RY€ ÿÿÿÿEXTRACTXýÿ value Nýÿ number of bit to be extracted EXTRACTRY€ ÿÿÿÿFREQ_MEASUREOLDINýÿ
INITýÿOLDTýÿDIFFýÿADIFF		ýÿVýÿBýÿIýÿINýÿ input signal PERIODS
+ýÿA out is the average frequency during PERIODS (number of periods) RESETýÿ reset measurement OUTýÿ	 frequency [Hz]VALIDýÿ
+\ FALSE: not yet PERIODS measurements done OR time distance between two rising edges > 3*OUT RY€ ÿÿÿÿGENCETýÿPERýÿCOUNTERýÿCLOCKTONýÿhelpýÿMODEGEN_MODEýÿp define type :
+								TRIANGLE				triangular	from - AMPL. to + AMPL.
+								TRIANGLE_POS		triangular	from 0 to AMPL. 
+								SAWTOOTH_RISE	sawtooth increasing from -AMPL. to +AMPL.
+								SAWTOOTH_FALL	sawtooth decreasing from AMPL to -AMPL
+								RECTANGLE			rectangular switching from  -AMPL. to +AMPL 
+								SINUS					sinus
+								COSINUS				cosinus BASEýÿA FALSE: period referring to call; TRUE: period referring to time PERIODèýÿ
) period time, only relevant if BASE=TRUE CYCLESèýÿ9 number of calls per period, only relevant if BASE=FALSE 	AMPLITUDEýÿ amplitude RESETýÿ reset OUTýÿ generated function variable RY€ ÿÿÿÿ
+HYSTERESISINýÿ
 input value HIGHýÿ upper threshold value LOWýÿ lower threshold value OUTýÿ	 hysteresis value RY€ ÿÿÿÿ
+INT_TO_BCDIýÿ! INT value to be converted to BCD
+INT_TO_BCDRY€ ÿÿÿÿINTEGRALINýÿ input variable TMýÿ time since last call in msec RESETýÿ1 reset: OUT is set to zero and OVERFLOW to false OUTýÿ	 value of the integral OVERFLOWýÿ
+
+ overflow RY€ ÿÿÿÿ
+LIMITALARMINýÿ
 INPUT value HIGHýÿ upper threshold value LOWýÿ lower threshold value Oýÿ	  TRUE, if IN > HIGH, else FALSE Uýÿ
+ TRUE, if IN < LOW, else FALSE ILýÿ neither O nor U RY€ ÿÿÿÿ	LIN_TRAFODiffýÿINýÿ input valueIN_MINýÿ minimum input value IN_MAXýÿ maximum input value OUT_MINýÿ$ corresponding minimum output value OUT_MAXýÿ$ corresponding maximum output value OUTýÿ output value ERRORýÿ. error: IN_MIN = IN_MAX or IN out of interval RY€ ÿÿÿÿPACKB0ýÿ value of bit 0 B1ýÿ value of bit 1 B2ýÿ value of bit 2 B3ýÿ value of bit 3 B4ýÿ value of bit 4 B5ýÿ	 value of bit 5 B6ýÿ
+ value of bit 6 B7ýÿ value of bit 7 PACKRY€ ÿÿÿÿPDCLOCKTONýÿD
+
+DERIVATIVEýÿTMDIFFýÿERRORýÿINITýÿY_ADDOFFSETýÿKPcopyýÿTVcopyýÿ
+ACTUALýÿ  actual value, process variable 	SET_POINTýÿ desired value, set point KPýÿ proportionality const. (P)TVýÿ' rate time, derivative time (D) in sec Y_MANUALýÿ/ Y is set to this value as long as MANUAL=TRUE Y_OFFSETýÿ	! offset for manipulated variable Y_MINýÿ
+( minimum value for manipulated variable Y_MAXýÿ( maximum value for manipulated variable MANUALýÿ[ 	TRUE: manual: Y is not influenced by controller,
+								FALSE: controller determines Y RESETýÿ! reset: set Y output to Y_OFFSET Yýÿ  manipulated variable, set value
LIMITS_ACTIVEýÿ1 true set value would exceed limits Y_MIN, Y_MAX RY€ ÿÿÿÿPID
+CLOCKTONýÿIINTEGRALýÿD
+
+DERIVATIVEýÿTMDIFFýÿERRORýÿINITýÿY_ADDOFFSETýÿKPcopyýÿTNcopyýÿTVcopyýÿ ACTUALýÿ  actual value, process variable 	SET_POINTýÿ desired value, set point KPýÿ proportionality const. (P)TNýÿ reset time (I) in sec TVýÿ& rate time, derivative time (D) in secY_MANUALýÿ	/ Y is set to this value as long as MANUAL=TRUE Y_OFFSETýÿ
+! offset for manipulated variable Y_MINýÿ( minimum value for manipulated variable Y_MAXýÿ( maximum value for manipulated variable MANUALýÿ
[ 	TRUE: manual: Y is not influenced by controller,
+								FALSE: controller determines Y RESETýÿ9 reset: set Y output to Y_OFFSET and reset integral part Yýÿ  manipulated variable, set value
LIMITS_ACTIVEýÿ1 true set value would exceed limits Y_MIN, Y_MAX OVERFLOWýÿ overflow in integral part RY€ ÿÿÿÿPID_FIXCYCLE	IINTEGRALýÿD
+
+DERIVATIVEýÿTMDIFFýÿERRORýÿINITýÿY_ADDOFFSETýÿKPcopyýÿTNcopyýÿTVcopyýÿ ACTUALýÿ  actual value, process variable 	SET_POINTýÿ desired value, set point KPýÿ proportionality const. (P)TNýÿ reset time (I) in sec TVýÿ& rate time, derivative time (D) in secY_MANUALýÿ	/ Y is set to this value as long as MANUAL=TRUE Y_OFFSETýÿ
+! offset for manipulated variable Y_MINýÿ( minimum value for manipulated variable Y_MAXýÿ( maximum value for manipulated variable MANUALýÿ
[ 	TRUE: manual: Y is not influenced by controller,
+								FALSE: controller determines Y RESETýÿ9 reset: set Y output to Y_OFFSET and reset integral part CYCLEýÿ time in s between two calls Yýÿ  manipulated variable, set value
LIMITS_ACTIVEýÿ1 true set value would exceed limits Y_MIN, Y_MAX OVERFLOWýÿ overflow in integral part RY€ ÿÿÿÿPUTBITXýÿ value to be manipulated Nýÿ position of bit to be changed Býÿ value of specified bit PUTBITRY€ ÿÿÿÿRAMP_INTDIFFýÿOLD_INýÿTBýÿCETýÿCHýÿCLOCKTONýÿINýÿ input variable ASCENDýÿ maximum positive slope DESCENDýÿ) maximum negative slope (non-negative!!) TIMEBASEýÿ reference for ASCEND/DESCEND :
+											t#0s : ASCEND/DESCEND defined per call
+											else : ASCEND/DESCEND defined per specified timeRESETýÿ
+ reset OUTýÿ
& value of function with limited slope RY€ ÿÿÿÿ	RAMP_REALDIFFýÿOLD_INýÿTBýÿCETýÿCLOCKTONýÿprobeýÿINýÿ input variable ASCENDýÿ maximum positive slope DESCENDýÿ) maximum negative slope (non-negative!!) TIMEBASEýÿ reference for ASCEND/DESCEND :
+											t#0s : ASCEND/DESCEND defined per call
+											else : ASCEND/DESCEND defined per specified timeRESETýÿ
+ reset OUTýÿ
& value of function with limited slope RY€ ÿÿÿÿSTATISTICS_INTSUMýÿ
COUNTERýÿINýÿ input valueRESETýÿJ reset: average set to 0, min and max to minimum and maximum possible INTsMNÿýÿ minimum valueMX€ÿÿýÿ	 maximum valueAVGýÿ
+ average valueRY€ ÿÿÿÿSTATISTICS_REALCOUNTERýÿ
SUMýÿINýÿ input valueRESETýÿK reset: average set to 0, min and max to minimum and maximum possible REALsMNæ±a3E+38ýÿ minimum valueMXê1E-37ýÿ	 maximum valueAVGýÿ
+ average valueRY€ ÿÿÿÿUNPACKBýÿ byte to be unpacked B0ýÿ value of bit 0 B1ýÿ value of bit 1 B2ýÿ	 value of bit 2 B3ýÿ
+ value of bit 3 B4ýÿ value of bit 4 B5ýÿ value of bit 5 B6ýÿ
 value of bit 6 B7ýÿ value of bit 7 RY€ ÿÿÿÿVARIANCEZýÿAýÿBýÿINýÿ input variable RESETýÿ reset OUTýÿ
+ variance RY€ ÿÿÿÿVERSION_UTILBýÿVersion_UtilRY€ ÿÿÿÿLC:\PROGRAM FILES (X86)\COMMON FILES\CAA-TARGETS\3S\LIB_PLCWINNT\STANDARD.LIBCONCATSTR1ýÿSTR2ýÿCONCATRY€ÿÿÿÿ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 RY€ÿÿÿÿ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 RY€ÿÿÿÿ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 RY€ÿÿÿÿDELETESTRýÿLENýÿ	POSýÿ
+DELETERY€ÿÿÿÿF_TRIGMýÿCLKýÿ Signal to detect Qýÿ	 Edge detected RY€ÿÿÿÿFINDSTR1ýÿ	STR2ýÿ
+FINDRY€ÿÿÿÿINSERTSTR1ýÿ	STR2ýÿ
+POSýÿINSERTRY€ÿÿÿÿLEFTSTRýÿSIZEýÿLEFTRY€ÿÿÿÿLENSTRýÿLENRY€ÿÿÿÿMIDSTRýÿLENýÿ	POSýÿ
+MIDRY€ÿÿÿÿR_TRIGMýÿCLKýÿ Signal to detect Qýÿ	 Edge detected RY€ÿÿÿÿREPLACESTR1ýÿ	STR2ýÿ
+LýÿPýÿREPLACERY€ÿÿÿÿRIGHTSTRýÿSIZEýÿRIGHTRY€ÿÿÿÿRSSETýÿRESET1ýÿ	Q1ýÿRY€ÿÿÿÿRTCMýÿDiffTimeýÿENýÿPDTýÿQýÿCDTýÿRY€ÿÿÿÿSEMAXýÿCLAIMýÿ
+RELEASEýÿBUSYýÿRY€ÿÿÿÿSRSET1ýÿRESETýÿQ1ýÿRY€ÿÿÿÿ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 RY€ÿÿÿÿ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 RY€ÿÿÿÿ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 RY€ÿÿÿÿJC:\PROGRAM FILES (X86)\COMMON FILES\CAA-TARGETS\3S\LIB_PLCWINNT\IECSFC.LIBSFCACTIONCONTROL
+S_FFRSýÿL_TMRTONýÿD_TMRTONýÿP_TRIGR_TRIGýÿSD_TMRTONýÿSD_FFRSýÿDS_FFRSýÿDS_TMRTONýÿSL_FFRSýÿSL_TMRTONýÿ
+Nýÿ Non stored action qualifier R0ýÿ# Overriding reset action qualifier S0ýÿ Set (stored) action qualifier Lýÿ	 Time limited action qualifier Dýÿ
+ Time delayed action qualifier Pýÿ Pulse action qualifier SDýÿ* Stored and time delayed action qualifier DSýÿ
% Delayed and stored action qualifier SLýÿ* Stored and time limited action qualifier Týÿ Current time Qýÿ1 Associated action is executed, if Q equals TRUE RY€ ÿÿÿÿRC:\PROGRAM FILES (X86)\COMMON FILES\CAA-TARGETS\3S\LIB_PLCWINNT\SYSLIBCALLBACK.LIBSYSCALLBACKREGISTER	iPOUIndexýÿ! POU Index of callback function. Event	RTS_EVENTýÿ Event to register SysCallbackRegisterRY€ÿÿÿÿSYSCALLBACKUNREGISTER	iPOUIndexýÿ! POU Index of callback function. Event	RTS_EVENTýÿ Event to register SysCallbackUnregisterRY€ÿÿÿÿ
+CFC_EXAMPLE	PD_ReglerPD
+PID_ReglerPIDRY@ÿÿÿÿFBD_EXAMPLEb1b2b3
b5b6b7b8b4VAR1VAR2VAR3FBD_EXAMPLERY@ÿÿÿÿ
+IL_EXAMPLEr10.0sinuscosinusffA9.9RY@ÿÿÿÿ
+LD_EXAMPLEExpiredTimerTONRY@ÿÿÿÿMAINTASK	lebt
SG
+IL_Example
Sinus
Cosinus
r1
by1
by2
by3
bResult
	RY@ÿÿÿÿPOINTERPpi	ia	ib	iRY@ÿÿÿÿSFC_EXAMPLE"SFCErrorSFCQuitErrorSFCErrorStepStart_AsEnd_Parallel
+Input_Alt1
+Input_Alt2	End_Alt
+X
+CanMessageCounterCount2
TestxTrans8TestyNoErrorINIT(x := TRUE, _x := TRUE)SFCStepTypeSTEP8SFCStepType	PARALLEL1
+_PARALLEL1	PARALLEL2
+_PARALLEL2STEP9SFCStepTypeSTEP7SFCStepTypeMINIMUM_TIME
_MINIMUM_TIME_timeMINIMUM_TIME_starttimeMINIMUM_TIMEALTERNATIVE1
_ALTERNATIVE1ALTERNATIVE2
_ALTERNATIVE2	COPYERROR
SFCActionTypeCOUNT
SFCActionTypeTEST
SFCActionTypelebtRY@ÿÿÿÿSLOWTASKZaehler RY@ÿÿÿÿ
+ST_EXAMPLExVal!yValÿÿÿ!bottomÿÿÿ!stripes	 0, 90, 180, 270, 360, 450Z´hÂ!stelle!i!rot!	y!
+wait!inv!inv2!
scaleè!run!
+run_stringStart!offset!RY@ÿÿÿÿ
VISU_FEATURES#poly1xpoly1ypoly1ang
+poly1scaleèpoly2xpoly2ypoly2ang	
+poly2scaleè
+poly3xpoly3ypoly3ang

+poly3scaleèpoly4xpoly4ypoly4ang
+poly4scaleèsternxsternysternang
+sternscaleègroesserkleinerlinksrechtsobenuntencrashnotdolinksrum 	rechtsrum!zaehl"zuwachs$	schneller&	langsamer'zurueck(RY@ÿÿÿÿ
+Ê
'!(ˆpK–pK¤pK²pKÇpÔp+º»localhost<ßyä‘ääägoäýw<xŽ|X¡äýʯʯÄxX¡äýʯèä–oÐäèä«oÐìä€mX¡äýʯX¡äýʯʯÿÿÿß ¯Êu(ˆåðœu	Ôç	X¡äý°œu0muA±ð‘úÓ¬HZJ²Tcp/Ip (Level 2 Route)example.proRTE lokal3S Tcp/Ip Level 2 Router Driver5éAddressIP address or hostname
+localhostèPort°üTargetId7dMotorola byteorderNoYesçßñâ}UӳҁÙ`çÞSTcp/IpHMI99_VarConfig.pro127.0.0.1_3S Tcp/Ip driver5éAddressIP address or hostname
+localhostèPort°7dMotorola byteorderNoYesK@RY?ž
+,§84	CoDeSys 1-2.2àÿÿÿ°!@æÈë
+òó÷ø"$ '(±³µ¹º¶ÏÐѼ¾ÀÂÄÆ€ÊPÈÌ΀Ò~€‘’“”•–—˜™‚ƒ„…†‡@ˆ@Š@‹@Œ@@¢ ¨ž€MNOP`atyzbcXde_Q\RKUXZâäæèêìîñïðòóÿÿÿÿôõ÷( "!#$›^fghijkFHJLNPRUSTVW¤¥lopqrsuÞv¦§ÿÿÿÿ|~€xz(©«%­®¯@ÝäØ&ð	æçèéꪲ´¬­¯°·¸¾ìíIJK	LM™ÞPQS)		 	+	@,	@-	ÿÿÿÿZ	ÿÿÿÿ[	ÿÿÿÿÍÍÍÍÿÿÿÿÈòó÷ø"$ '(±³µ¹º¶ÏÐѼ¾ÀÂÄÆ€ÊPÈÌ΀Ҕ•–—˜™†‡ ˆ Š€‹€Œ€€¢¨atyzbcXde_Q\RKUXZâäæ
+èêìîñïðòóÿÿÿÿôõ÷( "!#$›^fghijkFHJLNPRUSTVW¤¥lopqrsuÞv¦wx§ÿÿÿÿ|~€xz(©«%­®¯@ÜÝàÐáÐãäØ&ð	æçèéꪲ´¬­¯°·¸¾ëìíþÿIJK	LM™ÞPQS)		 	+	@,	@-	ÿÿÿÿZ	ÿÿÿÿ[	ÿÿÿÿÍÍÍÍÿÿÿÿ*"$ '(±³µ¹º¶ÏÐѼ¾ÀÂÄÆ€ÊPÈÌ΀҇@ˆ@¢¨tyzcXdeQ\RKUXZâäæèêìîñïðòóÿÿÿÿôõ÷( "!#$›^fghijkFHJLNPRUSTVW¤¥lopqrsuÞv¦w§ÿÿÿÿ|~€xz(©«%­®¯@ÜÝàÐáÐãäØ&ð	æçèéꪲ´¬­¯°·¸¾ëìíþÿIJK	LM™ÞPQS)		 	+	@,	@-	ÿÿÿÿZ	ÿÿÿÿ[	ÿÿÿÿÍÍÍÍÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿMùÿÿÿPò¦@§		Nameÿÿÿÿ
+Index
ÿÿ
SubIndex
ÿAccesslevel!lowmiddlehighAccessright1	read only
+write only
+read-write
Variable	ÿÿÿÿ
+ValueVariableMinVariableMaxVariable»	Nameÿÿÿÿ
+Index
ÿÿ
SubIndex
ÿAccesslevel!lowmiddlehighAccessright1	read only
+write only
+read-write	TypemINTUINTDINTUDINTSINTUSINTBYTEWORDDWORDREALLREALSTRING
+ValueTypeDefaultTypeMinTypeMaxType	Type~INTUINTDINTUDINTLINTULINTSINTUSINTBYTEWORDDWORDREALLREALSTRING»	Nameÿÿÿÿ
+Index
ÿÿ
SubIndex
ÿAccesslevel!lowmiddlehighAccessright1	read only
+write only
+read-write	TypemINTUINTDINTUDINTSINTUSINTBYTEWORDDWORDREALLREALSTRING
+ValueTypeDefaultTypeMinTypeMaxType	Type~INTUINTDINTUDINTLINTULINTSINTUSINTBYTEWORDDWORDREALLREALSTRINGdMember	ÿÿÿÿIndex-Offset
ÿÿSubIndex-Offset
ÿAccesslevel!lowmiddlehighAccessright1	read only
+write only
+read-writeMinMemberMaxMemberŸ		NameÿÿÿÿMember	ÿÿÿÿ
+ValueMember
+Index
ÿÿ
SubIndex
ÿAccesslevel!lowmiddlehighAccessright1	read only
+write only
+read-writeMinMemberMaxMember§		Nameÿÿÿÿ
+Index
ÿÿ
SubIndex
ÿAccesslevel!lowmiddlehighAccessright1	read only
+write only
+read-write
Variable	ÿÿÿÿ
+ValueVariableMinVariableMaxVariableöÿÿÿ‚_Dummy@@@@@@¤ï@¤ï@@@€v@@;@+ñÿÿÿÍÍÍÍÍÍÍÍ€v@4@°€v@D@° À @€f@4@€f@€v@€f@@u@€f@÷Áë
__not_found__
__not_found__
__not_found__IBPLON*.n%QB+CPrra%MBPLON€%RY	RYVAR_GLOBAL
+END_VAR
+",¥Õt1
+MainTask()p'¯ÿÿÿÿt2è
+
+SlowTask()ameèRY%startCalled when program startshFUNCTION systemevent: DWORD
+VAR_INPUT
+	dwEvent: DWORD;
+	dwFilter: DWORD;
+	dwOwner: DWORD;
+END_VAR
+ÈstopCalled when program stopshFUNCTION systemevent: DWORD
+VAR_INPUT
+	dwEvent: DWORD;
+	dwFilter: DWORD;
+	dwOwner: DWORD;
+END_VAR
+Èbefore_resetCalled before reset takes placehFUNCTION systemevent: DWORD
+VAR_INPUT
+	dwEvent: DWORD;
+	dwFilter: DWORD;
+	dwOwner: DWORD;
+END_VAR
+Èafter_resetCalled after reset took placehFUNCTION systemevent: DWORD
+VAR_INPUT
+	dwEvent: DWORD;
+	dwFilter: DWORD;
+	dwOwner: DWORD;
+END_VAR
+Èshutdown#Called before shutdown is performedhFUNCTION systemevent: DWORD
+VAR_INPUT
+	dwEvent: DWORD;
+	dwFilter: DWORD;
+	dwOwner: DWORD;
+END_VAR
+Èexcpt_cycletime_overflow)Called when a cycletime overflow happenedhFUNCTION systemevent: DWORD
+VAR_INPUT
+	dwEvent: DWORD;
+	dwFilter: DWORD;
+	dwOwner: DWORD;
+END_VAR
+Èexcpt_watchdog%Software watchdog OF IEC-task expiredhFUNCTION systemevent: DWORD
+VAR_INPUT
+	dwEvent: DWORD;
+	dwFilter: DWORD;
+	dwOwner: DWORD;
+END_VAR
+Èexcpt_fieldbusFieldbus error occurredhFUNCTION systemevent: DWORD
+VAR_INPUT
+	dwEvent: DWORD;
+	dwFilter: DWORD;
+	dwOwner: DWORD;
+END_VAR
+	Èexcpt_ioupdateIO-update errorhFUNCTION systemevent: DWORD
+VAR_INPUT
+	dwEvent: DWORD;
+	dwFilter: DWORD;
+	dwOwner: DWORD;
+END_VAR
+
+Èexcpt_illegal_instructionIllegal instructionhFUNCTION systemevent: DWORD
+VAR_INPUT
+	dwEvent: DWORD;
+	dwFilter: DWORD;
+	dwOwner: DWORD;
+END_VAR
+Èexcpt_access_violationAccess violationhFUNCTION systemevent: DWORD
+VAR_INPUT
+	dwEvent: DWORD;
+	dwFilter: DWORD;
+	dwOwner: DWORD;
+END_VAR
+Èexcpt_priv_instructionPrivileged instructionhFUNCTION systemevent: DWORD
+VAR_INPUT
+	dwEvent: DWORD;
+	dwFilter: DWORD;
+	dwOwner: DWORD;
+END_VAR
+
Èexcpt_dividebyzeroDivision BY zerohFUNCTION systemevent: DWORD
+VAR_INPUT
+	dwEvent: DWORD;
+	dwFilter: DWORD;
+	dwOwner: DWORD;
+END_VAR
+Èexcpt_fpu_errorFPU: Unspecified errorhFUNCTION systemevent: DWORD
+VAR_INPUT
+	dwEvent: DWORD;
+	dwFilter: DWORD;
+	dwOwner: DWORD;
+END_VAR
+Èexcpt_fpu_denormal_operandFPU: Denormal operandhFUNCTION systemevent: DWORD
+VAR_INPUT
+	dwEvent: DWORD;
+	dwFilter: DWORD;
+	dwOwner: DWORD;
+END_VAR
+Èexcpt_fpu_dividebyzeroFPU: Division BY zerohFUNCTION systemevent: DWORD
+VAR_INPUT
+	dwEvent: DWORD;
+	dwFilter: DWORD;
+	dwOwner: DWORD;
+END_VAR
+Èexcpt_fpu_invalid_operationFPU: Invalid operationhFUNCTION systemevent: DWORD
+VAR_INPUT
+	dwEvent: DWORD;
+	dwFilter: DWORD;
+	dwOwner: DWORD;
+END_VAR
+Èexcpt_fpu_overflow
FPU: OverflowhFUNCTION systemevent: DWORD
+VAR_INPUT
+	dwEvent: DWORD;
+	dwFilter: DWORD;
+	dwOwner: DWORD;
+END_VAR
+Èexcpt_fpu_stack_checkFPU: Stack checkhFUNCTION systemevent: DWORD
+VAR_INPUT
+	dwEvent: DWORD;
+	dwFilter: DWORD;
+	dwOwner: DWORD;
+END_VAR
+Èafter_reading_inputsCalled after reading of inputshFUNCTION systemevent: DWORD
+VAR_INPUT
+	dwEvent: DWORD;
+	dwFilter: DWORD;
+	dwOwner: DWORD;
+END_VAR
+Èbefore_writing_outputs Called before writing of outputshFUNCTION systemevent: DWORD
+VAR_INPUT
+	dwEvent: DWORD;
+	dwFilter: DWORD;
+	dwOwner: DWORD;
+END_VAR
+È
+debug_loopDebug loop at breakpointhFUNCTION systemevent: DWORD
+VAR_INPUT
+	dwEvent: DWORD;
+	dwFilter: DWORD;
+	dwOwner: DWORD;
+END_VAR
+Èinterrupt_1Interrupt 1hFUNCTION systemevent: DWORD
+VAR_INPUT
+	dwEvent: DWORD;
+	dwFilter: DWORD;
+	dwOwner: DWORD;
+END_VAR
+$Èinterrupt_2Interrupt 2hFUNCTION systemevent: DWORD
+VAR_INPUT
+	dwEvent: DWORD;
+	dwFilter: DWORD;
+	dwOwner: DWORD;
+END_VAR
+%Èinterrupt_3Interrupt 3hFUNCTION systemevent: DWORD
+VAR_INPUT
+	dwEvent: DWORD;
+	dwFilter: DWORD;
+	dwOwner: DWORD;
+END_VAR
+&Èinterrupt_4Interrupt 4hFUNCTION systemevent: DWORD
+VAR_INPUT
+	dwEvent: DWORD;
+	dwFilter: DWORD;
+	dwOwner: DWORD;
+END_VAR
+'Èinterrupt_5Interrupt 5hFUNCTION systemevent: DWORD
+VAR_INPUT
+	dwEvent: DWORD;
+	dwFilter: DWORD;
+	dwOwner: DWORD;
+END_VAR
+(Èinterrupt_6Interrupt 6hFUNCTION systemevent: DWORD
+VAR_INPUT
+	dwEvent: DWORD;
+	dwFilter: DWORD;
+	dwOwner: DWORD;
+END_VAR
+)Èinterrupt_7Interrupt 7hFUNCTION systemevent: DWORD
+VAR_INPUT
+	dwEvent: DWORD;
+	dwFilter: DWORD;
+	dwOwner: DWORD;
+END_VAR
+*Èinterrupt_8Interrupt 8hFUNCTION systemevent: DWORD
+VAR_INPUT
+	dwEvent: DWORD;
+	dwFilter: DWORD;
+	dwOwner: DWORD;
+END_VAR
++Èinterrupt_9Interrupt 9hFUNCTION systemevent: DWORD
+VAR_INPUT
+	dwEvent: DWORD;
+	dwFilter: DWORD;
+	dwOwner: DWORD;
+END_VAR
+,Èinterrupt_10Interrupt 10hFUNCTION systemevent: DWORD
+VAR_INPUT
+	dwEvent: DWORD;
+	dwFilter: DWORD;
+	dwOwner: DWORD;
+END_VAR
+-Èinterrupt_11Interrupt 11hFUNCTION systemevent: DWORD
+VAR_INPUT
+	dwEvent: DWORD;
+	dwFilter: DWORD;
+	dwOwner: DWORD;
+END_VAR
+.Èinterrupt_12Interrupt 12hFUNCTION systemevent: DWORD
+VAR_INPUT
+	dwEvent: DWORD;
+	dwFilter: DWORD;
+	dwOwner: DWORD;
+END_VAR
+/Èinterrupt_13Interrupt 13hFUNCTION systemevent: DWORD
+VAR_INPUT
+	dwEvent: DWORD;
+	dwFilter: DWORD;
+	dwOwner: DWORD;
+END_VAR
+0Èinterrupt_14Interrupt 14hFUNCTION systemevent: DWORD
+VAR_INPUT
+	dwEvent: DWORD;
+	dwFilter: DWORD;
+	dwOwner: DWORD;
+END_VAR
+1Èinterrupt_15Interrupt 15hFUNCTION systemevent: DWORD
+VAR_INPUT
+	dwEvent: DWORD;
+	dwFilter: DWORD;
+	dwOwner: DWORD;
+END_VAR
+2È$ûÿÿÿ,„„4ýStandardGà:	Gà:	59YVAR_CONFIG
+END_VAR
+',šš
+Global Variables 0_1RY	RY`7LbVAR_GLOBAL RETAIN
+	Schalter1: BOOL;
+	Schalter2: BOOL;
+	Schalter3: BOOL;
+	Schalter4: BOOL;
+	Schalter5: BOOL;
+	Schalter6: BOOL;
+
+	Schalter10: BOOL;
+	Schalter11: BOOL;
+	Schalter12: BOOL;
+	Schalter13: BOOL;
+	Schalter14: BOOL;
+	Schalter15: BOOL;
+	Schalter16: BOOL;
+
+	Lampe1: BOOL;
+	Lampe2: BOOL;
+	Lampe3: BOOL;
+	tempo: INT:= 5;
+END_VAR
+
+'	,JO¢Globale_VariablenRY	RY	fVAR_GLOBAL
+	Bar1: WORD;
+	Bar2: WORD;
+	bTrigger: BOOL;
+	Switch1: BOOL;
+	Switch2: BOOL;
+	Switch3: BOOL;
+	Switch4: BOOL;
+	Switch5: BOOL;
+	Switch6: BOOL;
+	Switch7: BOOL;
+	Switch8: BOOL;
+	Switch9: BOOL;
+	Switch10: BOOL;
+	Switch11: BOOL;
+	Switch12: BOOL;
+	Switch13: BOOL;
+	Switch14: BOOL;
+	Switch15: BOOL;
+	Lamp1: BOOL;
+	Lamp2: BOOL;
+END_VAR
+mD:\CoDeSys\product21\bspdt.vis|0|0@E@#Courier New@@ôÿÿÿýÿÿÿÿÌ3ÿÿÿÿÿÿÿ
+@ÿ€ÿÿÿ@DEFAULTSystemO|0|0@E@#Courier New@@ôÿÿÿ)hh':'mm':'ss@dd'-'MM'-'yyyy@'"IN
+: OLAmpelRY	RY: T  2
+E8TYPE Ampel : (ROT := 2, GELB := 8, GRUEN :=9);
+END_TYPE#Aì·
+CanMessageRY	RYÄ,11TYPE CanMessage : ARRAY [0..9] OF BYTE;
+END_TYPE
+,%²ºCFC_EXAMPLERY	RYD_R
GPROGRAM CFC_EXAMPLE
+VAR
+
+	PD_Regler: PD;
+	PID_Regler: PID;
+END_VAR)
+˙˙˙˙%Rückkopplungen sind möglich !­˙˙˙˙
+	PD_Regler=PD
+	
+ÿÿÿÿ!25	ÿÿÿÿ
+100
+ÿÿÿÿ
+0.01ÿÿÿÿ
+2
ÿÿÿÿ"
+0
+PID_Regler@PID
ÿÿÿÿ
!
100ÿÿÿÿ!0.3ÿÿÿÿ!100d,ªT£FBD_EXAMPLERY	RYŒFUNCTION FBD_EXAMPLE:BOOL
+	(*****************************************************************************
+	Example for a function written in FBD
+	*****************************************************************************)
+VAR_INPUT
+	VAR1:BYTE;
+	VAR2:BYTE;
+	VAR3:BYTE;
+END_VAR
+VAR
+	b1: BOOL;
+	b2: BOOL;
+	b3: BOOL;
+	b5: BOOL;
+	b6: BOOL;
+	b7: BOOL;
+	b8: BOOL;
+	b4: BOOL;
+END_VAR7Binary concatenations and store to the function result Label1:Var1A10MODA5LTVar2A20MODA10GTb1Ab2ANDBVar2A20MODA10GTORFBD_EXAMPLE)Example for a multy line comment:
+2.lineLabel2:b8B‚VAR1AVAR2LTb2b1Ab2ORb6b4b3Ab2XORb7ƒ‚b5b6Ab7ORb5CVAR3AVAR1GTb8ANDXORb1TRUEd,XXw
+IL_EXAMPLERY	RY~FUNCTION_BLOCK IL_EXAMPLE
+VAR_INPUT
+	r1: REAL := 0.0;
+END_VAR
+VAR_OUTPUT
+	sinus: REAL;
+	cosinus: REAL := 9.9;
+END_VAR
+
+ø	(* Calculate sinus of r1 and  multiply with 1000   *)
+	LD		r1
+	SIN
+	MUL		1000
+	ST		sinus
+	(* Calculate cosinus of r1 and  multiply with 1000   *)
+	LD		r1
+	COS
+	MUL		1000
+	ST		cosinus
+
+	(* increment r1 *)
+	LD		r1
+	ADD		0.1
+	ST		r1
+
+,nnç
+LD_EXAMPLERY	RY?PROGRAM LD_EXAMPLE
+VAR
+	Expired: TIME;
+	Timer: TON;
+END_VAR4Setting all switches in the right way turns on lamp1ÿ	
+Switch1KSwitch2Switch3J	Switch4KSwitch6KSwitch5Lamp1DSetting all switches in the right way turns on lamp2 after 5 secondsÿ	
+	Switch11ËSwitch14	Switch11Switch13KSwitch12ISwitch14KSwitch10Switch15EtimerAT#5sTONExpiredLamp2d
,	³¨MainTaskRY	RY`}0xB’PROGRAM MainTask
+VAR
+	lebt: INT := 0;
+	SG:IL_Example;
+	Sinus:REAL;
+	Cosinus:REAL;
+	r1: REAL;
+	by1,by2,by3:BYTE;
+	bResult: BOOL;
+END_VAR
+	!Shows that PROGRAM is in run modelebtA1ADDlebtcall SFC_ExampleAlebtSFC_EXAMPLEcall LD_Exampleÿ
+LD_EXAMPLE*call IL_example with increasing real valueSGCr1A0.1ADDr1
+IL_EXAMPLESinusCosinus2call FBD_Example with three increasing byte valuesby1A1ADDby1by2A2ADDby2Cby3A3ADDby3FBD_EXAMPLEbResult#Call OF a programm TO test pointersÿPointerPCall CFC_exampleÿCFC_EXAMPLEÿ
VISU_FEATURESIAt last call the program with the example POU written in
+structured textÿ
+ST_EXAMPLEdPointerPRY	RYšPROGRAM PointerP
+VAR
+	pi: POINTER TO ARRAY [0..5] OF POINTER TO INT;
+	ia: ARRAY [0..5] OF POINTER TO INT;
+	ib: ARRAY [0..5] OF INT;
+	i: INT;
+END_VARAiaADRpiA	ib[5 - i]ADRia[i]pi^[i]^A1ADDpi^[i]^d,xãSFC_EXAMPLERY	RYPGZPROGRAM SFC_EXAMPLE
+VAR
+	SFCError:BOOL;
+	SFCQuitError:BOOL;
+	SFCErrorStep:STRING(20);
+	Start_As : BOOL;
+	End_Parallel : BOOL;
+	Input_Alt1 : BOOL;
+	Input_Alt2 : BOOL;
+	End_Alt : BOOL;
+	X: CanMessage;
+	Counter: INT;
+	Count2: INT;
+	Testx: BOOL;
+	Trans8: BOOL;
+	Testy: BOOL;
+	NoError: BOOL;
+END_VAR
+VAR_INPUT
+	lebt: INT;
+END_VAR
+	Init	CopyErrorSStart_AsStep8TestSTestx	Parallel1d$@@ Œ"Aktion Parallel1Gà:BAR1A1ADDBAR1‚BAR1A100EQ0BAR1d	Parallel2Action Parallel2Gà:BAR2A1ADDBAR2‚BAR2A100EQ0BAR2dTestyStep9TestRTRUEStep7CountD T#2sEnd_ParallelMinimum_TimeT#5sAktion Minimum_TimeGà:
+¬(* Die gleiche Aktion realisiert in AWL *)
+
+	LD		BAR1
+ADD		1
+	ST		BAR1
+EQ		100
+RETCN
+
+	(* Setze BAR1 zurück, wenn sie 100 erreicht hat *)
+	LD		0
+	ST		BAR1
+
+
+
+
+Input_Alt1Alternative1@œ'Action Alternative1Gà:BAR1A1ADDBAR1‚BAR1A100EQ0BAR1dEnd_alt
+Input_Alt2Alternative2@!P¯Action Alternative2Gā:BAR2A1ADDBAR2‚BAR2A100EQ0BAR2dEnd_altInitd€‡ā†@†P…	CopyErrorRYNoError := NOT SFCError;
+
+	 I;
Y2CountRYCounterA1ADDCounterd°*à±LNTestRYCount2 := Count2 + 1; ,ð±SlowTaskRY	RYlaenTI;
/PROGRAM SlowTask
+VAR
+	Zaehler: WORD;
+END_VARZaehlerA1ADDZaehlerd!,°°Jo
+ST_EXAMPLERY	RYnentenaPROGRAM ST_EXAMPLE
+VAR
+	xVal:INT:= 0;
+	yVal:INT:= -250;
+	bottom: INT:= -250;
+	stripes: ARRAY[0..5] OF INT := 0, 90, 180, 270, 360, 450;
+	stelle: INT;
+	i: INT;
+	rot: INT;
+	y: BOOL;
+	wait: INT:= 0;
+	inv: BOOL := TRUE;
+	inv2: BOOL := FALSE;
+	scale: INT := 1000;
+	run:BOOL:=FALSE;
+	run_string:STRING(20):='Start';
+	offset: INT := 2;
+END_VARrun_string:='Start';
+IF NOT run THEN
+	RETURN;
+END_IF;
+run_string:='Stop';
+
+rot := rot + offset;
+
+IF (yVal < 0) THEN
+	yVal := yVal + offset;
+	bottom := yVal + offset;
+ELSE
+	IF(xVal < 470) THEN
+		xVal := xVal+offset;
+	END_IF
+	IF (bottom > -250) THEN
+		bottom := bottom -offset;
+	END_IF
+END_IF
+
+i  := 0;
+
+IF xVal >= 470 THEN
+	wait := wait +1;
+	IF (wait >= 10 AND wait <= 20) THEN
+		inv := FALSE;
+		inv2 := TRUE;
+	ELSE 
+		inv := TRUE;
+		inv2 := FALSE;
+	END_IF
+	IF (wait > 20) THEN
+		scale := scale - 50;
+	END_IF
+	IF (wait > 41) THEN
+		wait := 0;
+		xVal := 0;
+		yVal := -250;
+		scale := 1000;
+	END_IF
+END_IF
+
+WHILE i < 6 DO
+	stripes[i] := stripes[i]+offset;
+	IF(stripes[i] >= 540) THEN
+		stripes[i] := 0;
+	END_IF
+	i := i + 1;
+END_WHILE
+,Ə
VISU_FEATURESRY	RY­PROGRAM VISU_FEATURES
+VAR
+	poly1x: INT;
+	poly1y: INT;
+	poly1ang: INT;
+	poly1scale: INT:=1000;
+	poly2x: INT;
+	poly2y: INT;
+	poly2ang: INT;
+	poly2scale: INT:=1000;
+	poly3x: INT;
+	poly3y: INT;
+	poly3ang: INT;
+	poly3scale: INT:=1000;
+	poly4x: INT;
+	poly4y: INT;
+	poly4ang: INT;
+	poly4scale: INT:=1000;
+	sternx: INT;
+	sterny: INT;
+	sternang: INT;
+	sternscale: INT:=1000;
+
+	groesser: BOOL;
+	kleiner: BOOL;
+	links: BOOL;
+	rechts: BOOL;
+	oben: BOOL;
+	unten: BOOL;
+	crash: BOOL;
+	notdo: BOOL;
+	linksrum: BOOL;
+	rechtsrum: BOOL;
+	zaehl: INT := 0;
+
+	zuwachs: INT := 1;
+
+	schneller: BOOL := FALSE;
+	langsamer: BOOL := FALSE;
+	zurueck: BOOL := FALSE;
+END_VARü	IF(schneller = TRUE) THEN
+	schneller := FALSE; 
+	zuwachs := zuwachs+1;
+END_IF
+IF(langsamer = TRUE) THEN
+	langsamer := FALSE; 
+	zuwachs := zuwachs-1;
+	IF(zuwachs = 0) THEN
+		zuwachs := 1;
+	END_IF
+END_IF
+IF(zurueck = TRUE) THEN
+	poly1x:= 0;
+	poly1y:= 0;
+	poly1ang:= 0;
+	poly1scale:=1000;
+	poly2x:= 0;
+	poly2y:= 0;
+	poly2ang:= 0;
+	poly2scale:=1000;
+	poly3x:= 0;
+	poly3y:= 0;
+	poly3ang:= 0;
+	poly3scale:=1000;
+	poly4x:= 0;
+	poly4y:= 0;
+	poly4ang:= 0;
+	poly4scale:=1000;
+	sternx:= 0;
+	sterny:= 0;
+	sternang:= 0;
+	sternscale:=1000;
+	groesser:= FALSE;
+	kleiner:= FALSE;
+	links:= FALSE;
+	rechts:= FALSE;
+	oben:= FALSE;
+	unten:= FALSE;
+	crash:= FALSE;
+	notdo:= FALSE;
+	linksrum:= FALSE;
+	rechtsrum:= FALSE;
+	zaehl:= 0;
+	zuwachs:= 1;
+	schneller := FALSE;
+	langsamer := FALSE;
+	zurueck := FALSE;
+END_IF
+IF (notdo=TRUE)
+THEN
+	zaehl := zaehl+1;
+	oben := FALSE;
+	unten := FALSE;
+	links := FALSE;
+	rechts := FALSE;
+	groesser := FALSE;
+	kleiner := FALSE;
+	poly1x := poly1x-25;
+	poly2y := poly2y+25;
+	poly3x := poly3x+25;
+	poly4y := poly4y-25;
+	IF(zaehl>8)
+	THEN
+		crash:=TRUE;
+	END_IF
+END_IF
+
+IF (groesser=TRUE)
+THEN
+	kleiner:=FALSE;
+	poly1scale := poly1scale+zuwachs;
+	poly2scale := poly1scale;
+	poly3scale := poly1scale;
+	poly4scale := poly1scale;
+	sternscale := poly1scale;
+END_IF
+
+IF (kleiner=TRUE)
+THEN
+	groesser := FALSE;
+	poly1scale := poly1scale-zuwachs;
+	poly2scale := poly1scale;
+	poly3scale := poly1scale;
+	poly4scale := poly1scale;
+	sternscale := poly1scale;
+END_IF
+
+IF (links=TRUE)
+THEN
+	rechts := FALSE;
+	poly1x := poly1x-zuwachs;
+	poly2x := poly1x;
+	poly3x := poly1x;
+	poly4x := poly1x;
+	sternx := poly1x;
+END_IF
+
+IF (rechts=TRUE)
+THEN
+	links := FALSE;
+	poly1x := poly1x+zuwachs;
+	poly2x := poly1x;
+	poly3x := poly1x;
+	poly4x := poly1x;
+	sternx := poly1x;
+END_IF
+
+IF (oben=TRUE)
+THEN
+	unten := FALSE;
+	poly1y := poly1y-zuwachs;
+	poly2y := poly1y;
+	poly3y := poly1y;
+	poly4y := poly1y;
+	sterny := poly1y;
+END_IF
+
+IF (unten=TRUE)
+THEN
+	oben := FALSE;
+	poly1y := poly1y+zuwachs;
+	poly2y := poly1y;
+	poly3y := poly1y;
+	poly4y := poly1y;
+	sterny := poly1y;
+END_IF
+
+IF (linksrum=TRUE)
+THEN
+	rechtsrum := FALSE;
+	poly1ang := poly1ang-zuwachs;
+	poly2ang := poly1ang;
+	poly3ang := poly1ang;
+	poly4ang := poly1ang;
+	sternang := poly1ang;
+END_IF
+
+IF (rechtsrum=TRUE)
+THEN
+	linksrum := FALSE;
+	poly1ang := poly1ang+zuwachs;
+	poly2ang := poly1ang;
+	poly3ang := poly1ang;
+	poly4ang := poly1ang;
+	sternang := poly1ang;
+END_IF
+$,B„LD_VisuRY
+@RYd
+@"hºÅl€€€ÀÀÀ.LAMP1@@@
+@¸Æ©¿œÀÀÀÿÿÿ@@@
+@!ËggÄ€€€ÀÀÀ.LAMP2@@@
+@@5h Tÿûðÿ.Switch5S5@@.Switch5@
+@NGwob[ÿûðÿ.Switch2S2@@.Switch2@
+@ˆ)±Qœ=ÿûðÿ.Switch3S3@@.Switch3@
+@Í+öSá?ÿûðÿ.Switch4S4@@.Switch4@
+@1vZžEŠÿûðÿ.Switch1S1@@.Switch1@
+@0lY”D€ÿûðÿ.Switch6S6@@.Switch6@
+@æ-úÿûðÿ	.Switch14S14@	@	.Switch14@
+@DðmXÿûðÿ	.Switch11S11@
+@	.Switch11@
+@~Ò§ú’æÿûðÿ	.Switch12S12@@	.Switch12@
+@ÃÔìü×èÿûðÿ	.Switch13S13@@	.Switch13@
+@'PG;3ÿûðÿ	.Switch10S10@
@	.Switch10@
+@¸–Ŧ¾žÀÀÀÿÿÿ@@@
+@ݴݵݴÿÿÿÿÿÿ@@@
+@¸šÅ¡¾ÀÀÀÿÿÿ@@@
+@©dÕ“¿{ÿÿÿÿÿ.LAMP1@@@
+@²<ÀV¹IÀÀÀÿÿÿ@@@
+@²C¿S¸KÀÀÀÿÿÿ@@@
+@²H¿O¸KÀÀÀÿÿÿ@@@
+@£Ï@¹(ÿÿÿÿÿ.LAMP2@@@
+@„Wt€ükÿÿÿÿÿSwitches to network 1@@@
+@Šz5 ÿÿÿÿÿSwitches to network 2@@@
+@&O@:,ÿûðÿ	.Switch15S15@@	.Switch15@ÿÿÿÿÿÿÿÿÿÀÀÀ€€€€€€€€€€€€%,Ñ…PolygonRY
+@RYd
+@A "÷2)9+&YC2xBS#fï@@ÿÿë	@VISU_FEATURES.sternxVISU_FEATURES.sternyVISU_FEATURES.sternscaleVISU_FEATURES.sternangVISU_FEATURES.crash@
+@	A Š Aè©F’W›£¼Ï § ÿÿÿÿë	@VISU_FEATURES.Poly4xVISU_FEATURES.Poly4yVISU_FEATURES.Poly4scaleVISU_FEATURES.Poly4ang@
+@	A ¨æAú'ÈB¼#å¼å¼å¼ÿÿÿÿë	@VISU_FEATURES.Poly1xVISU_FEATURES.Poly1yVISU_FEATURES.Poly1scaleVISU_FEATURES.Poly1ang@
+@	A 15@U>p)‚F­å…ÉBü'A ÿÿÿÿë	@VISU_FEATURES.Poly2xVISU_FEATURES.Poly2yVISU_FEATURES.Poly2scaleVISU_FEATURES.Poly2ang@
+@	A ¦„F¬)‚=o?R16B‘ Ï ÿÿÿÿë	@VISU_FEATURES.Poly3xVISU_FEATURES.Poly3yVISU_FEATURES.Poly3scaleVISU_FEATURES.Poly3ang@
+@2:€vYX€ÿÿÿÿVISU_FEATURES.groesser
+bigger@@VISU_FEATURES.groesser@
+@–:äv½X€ÿÿÿÿVISU_FEATURES.kleinersmaller@@VISU_FEATURES.kleiner@
+@ú:Hv!X€ÿÿÿÿVISU_FEATURES.obenup@@VISU_FEATURES.oben@
+@^:¬v…X€ÿÿÿÿVISU_FEATURES.untendown@@VISU_FEATURES.unten@
+@Â:véX€ÿÿÿÿVISU_FEATURES.linksto the left@	@VISU_FEATURES.links@
+@&:tvMX€ÿÿÿÿVISU_FEATURES.rechtsto the right@
+@VISU_FEATURES.rechts@
+@\:́”]˙˙VISU_FEATURES.notdoNicht drücken!!@@VISU_FEATURES.notdo@
+@Š:Øv±X€ÿÿÿÿVISU_FEATURES.linksrumturn left round@@VISU_FEATURES.linksrum@
+@î:<vX€ÿÿÿÿVISU_FEATURES.rechtsrumturn right round@
@VISU_FEATURES.rechtsrum@
+@‚Š#³Òžÿÿÿÿÿfaster!@@VISU_FEATURES.schneller@
+@@Šá³žÿÿÿÿÿ
+slower@@VISU_FEATURES.langsamer@
+@þŠŸ³Nžÿÿÿÿÿ	reset@@VISU_FEATURES.zurueck@ÿÿÿÿÿÿÿÿÿÀÀÀ€€€€€€€€€€€€&,÷&o‡SFC_VisuRY
+@RYd
+@<U¶´yÀÀÀÿÿÿ@@@
+@	U1³ÀÀÀÿÿÿ@@@
+@D=žêq“ÿÿÿÿ.bar1@@@
+@Ì<&éù’ÿÿÿÿ.bar2@@@
+@1ôµsÿÿÿÿÿÿ.Bar1BAR 1 : %s@@@
+@¸ô<úÿÿÿÿÿÿ.Bar2BAR 2 : %s@@@
+@A&3³&ÿÿÿÿÿÿtwo bars example@@@
+@'S{uQdÿÿÿÿSFC_EXAMPLE.INPUT_ALT1Input_Alt1@@SFC_EXAMPLE.INPUT_ALT1@
+@‚hÖŠ¬yÿÿÿÿSFC_EXAMPLE.Start_AsStart_As@@SFC_EXAMPLE.Start_As@
+@'}{ŸQŽÿÿÿÿSFC_EXAMPLE.Input_Alt2Input_Alt2@	@SFC_EXAMPLE.Input_Alt2@
+@Ü}0ŸŽÿÿÿÿSFC_EXAMPLE.END_ALTEnd_Alt@
+@SFC_EXAMPLE.END_ALT@
+@ÛS/udÿÿÿÿSFC_EXAMPLE.End_ParallelEnd_Para@@SFC_EXAMPLE.End_Parallel@
+@
+Èsj¾ÿÿÿÿSFC_EXAMPLE.NoErrorSFC_EXAMPLE.SFCErrorStepTime overflow
+ in %s !!!@ияј	Arial@@
+@
+hsþ•ÿÿÿÿSFC_EXAMPLE.NoError@@@
+@‚h›Áÿ€SFC_EXAMPLE.NoErrorSFC_EXAMPLE.SFCQuitErrorQuit error@
@SFC_EXAMPLE.SFCQuitError@
+@Ø^e½ÀÀÀÿÿÿ@@@
+@,æ€VõÿÿÿÿSFC_EXAMPLE.Testx	Testx@@SFC_EXAMPLE.Testx@
+@֏K
+!ùÿÿÿÿSFC_EXAMPLE.Testy	Testy@@SFC_EXAMPLE.Testy@
+@. Pg2ÿÿÿÿÿÿSFC_EXAMPLE.Count2Testcounter: %s@@@
+@ÚLN0ÿÿÿÿÿÿSFC_EXAMPLE.CounterCountCounter: %s@@@ÿÿÿÿÿÿÿÿÿÀÀÀ€€€€€€€€€€€€',!z»9ST_VisuRY
+@RY2d2
+@ »Œð’ð’ÐÐ|h@@ÿa@@
+@p‰¸|h€@€@ÿÿÿ@@@
+@ŒP‰·“ž’ˆˆ@@ËŠpĖŠ@@
+@³•-áþ8Dl ÿa@@
+@Öy1KÀÀÀÀÀÀÿÿÿ@@@
+@›†çW‘JÅ&ÿa@@
+@|Ö×1©ÀÀÀÀÀÀÿÿÿ@@@
+@žë]Ä5€€€€€€ÿÿÿ@@@
+@ì
9\4€€€€€€ÿÿÿ@@@
+@ƒqFÕôÖÆ€€€€€€ ª@	@
+@KÕõ× Öÿÿÿ@
+@@
+@K-äA- Ki UiäKøÿÿ@ST_EXAMPLE.rot@
+@«å¡!«
É!µÉå«ùÿÿ@ST_EXAMPLE.rot@
+@Œrú2ÖÖæ)@ST_EXAMPLE.stripes[0]
@
+@Œrú2ÖÖæ)@ST_EXAMPLE.stripes[2]@
+@Œrú2ÖÖæ)@ST_EXAMPLE.stripes[3]@
+@Œrú2ÖÖæ)@ST_EXAMPLE.stripes[4]@
+@Œrú2ÖÖæ)@ST_EXAMPLE.stripes[5]@
+@Œrú2ÖÖæ)@ST_EXAMPLE.stripes[1]@
+@np1ÝɆ@@)@@
+@ô×
w'€@€@ÿÿÿ@@@
+@
v]Í××@@˪p̪@@
+@›qm
¥ÕÊÖ“
@@ÿa@@
+@´rŒJŒ†ȆÈJÿÿÿÿ€ÿÿ€@ST_EXAMPLE.xValST_EXAMPLE.yValST_EXAMPLE.scaleST_EXAMPLE.inv2@
+@´rŒJª,æ,ÈJÈJÿÿÿÿ@ST_EXAMPLE.xValST_EXAMPLE.yValST_EXAMPLE.scaleST_EXAMPLE.inv2@
+@´rȆæhæ,ÈJÈJ@€€ÿ€ÿ@ST_EXAMPLE.xValST_EXAMPLE.yValST_EXAMPLE.scaleST_EXAMPLE.inv2@
+@´É7¾›@€@€ÿÿÿST_EXAMPLE.bottom@@@
+@ä2å3ä2ÿÿÿÿÿÿ@@@
+@¨n©o¨nÿÿÿÿÿÿ@@@
+@xyxÿÿÿÿÿÿ@@@
+@†tlŠ6žÿÿiä@ST_EXAMPLE.inv@
+@區F€@€@ÿÿÿ@@@
+@nå´€‘€@€@ÿÿÿ@ @@
+@àjÿO—ÿÿÿÿÿÿÿÿÿ@!@@
+@²jÿ!—éÿÿÿÿÿÿÿÿÿ@"@@
+@rÍ=Ÿ-ÿ€ST_EXAMPLE.runST_EXAMPLE.run_string%s@#@ST_EXAMPLE.run@
+@N°ÿ³3€òÿ€@€@ÿÿÿ@$@@
+@Z#¾F€@€@ÿÿÿ@%@@
+@Zn#´¾‘€@€@ÿÿÿ@&@@
+@jÿ—Uÿÿÿÿÿÿÿÿÿ@'@@
+@ðjÿ_—'ÿÿÿÿÿÿÿÿÿ@(@@
+@Œ°ÿñ3¾òÿ€@€@ÿÿÿ@)@@
+@¸@¹A¸@ÿÿÿÿÿÿ@*@@
+@D^E_D^ÿÿÿÿÿÿ@+@@
+@21Fþ0v(v(0PP$@,@
+@²ÖËv¾&€@€@ÿÿÿ@-@@
+@ÎËuÕ\ÔÌÊÖÊÖ@@˪p̪@.@
+@AþQIÿÿÿ@/@@
+@‹6Ÿm5m{{5©
©
$@0@
+@Ÿþ¯§ÿÿÿ@1@@ÿÿÿÿÿÿÿÿÿÀÀÀ€€€€€€€€€€€€ýÿÿÿ,ýÿ™^Util.lib*18.5.10 16:14:28@Ä òK#Standard.lib 4.10.05 12:14:46@VBC!IecSfc.lib 13.4.06 16:51:28@pe>D(SYSLIBCALLBACK.LIB 2.6.14 12:06:08@LŒS5BCD_TO_INT@GEN_MODEPOINTBLINK@CHARCURVE@DERIVATIVE@
EXTRACT@FREQ_MEASURE@	GEN@HYSTERESIS@INT_TO_BCD@INTEGRAL@LIMITALARM@LIN_TRAFO@
+PACK@PD@	PID@PID_FIXCYCLE@PUTBIT@RAMP_INT@RAMP_REAL@STATISTICS_INT@STATISTICS_REAL@UNPACK@VARIANCE@Version_Util@Globale_Variablen@CONCAT@	CTD@	CTU@
+CTUD@DELETE@F_TRIG@
+FIND@INSERT@
+LEFT@	LEN@	MID@R_TRIG@
REPLACE@RIGHT@RS@	RTC@
+SEMA@SR@	TOF@	TON@TP@FSFCActionControl@
SFCActionTypeSFCStepTypeGlobale_Variablen@bSysCallbackRegister@	RTS_EVENTRTS_EVENT_FILTERRTS_EVENT_SOURCESysCallbackUnregister@,ýÿEÁ2ââÿÿÿÿ
+CFC_EXAMPLE.P_Regler.OUT
+CFC_EXAMPLE.PD_Regler.OUT
+CFC_EXAMPLE.PID_Regler.OUT
+MainTask.Sinus
+MainTask.Cosinus
+MainTask.lebt
+úÿÿÿtsobroDeøÿÿÿPOUsBeispiel OrdnerMainTask
PointerP
VISU_FEATURESÿÿÿÿCFC_EXAMPLEFBD_EXAMPLE
+IL_EXAMPLE
+LD_EXAMPLESFC_EXAMPLE	CopyErrorCountTestSlowTask 
+ST_EXAMPLE!ÿÿÿÿ
+Data typesAmpel"
+CanMessage#ÿÿÿÿVisualizationsLD_Visu$Polygon%SFC_Visu&ST_Visu'ÿÿÿÿGlobal VariablesDBibiliothek STANDARD.LIB 30.3.99 11:30:14: Globale Variablenlisten 1Global Variables 0_1ÿÿÿÿGlobale_Variablen	ÿÿÿÿ`öx›çh»?È*È	localhostP	localhostP	localhostPŒ59YH¡
\ No newline at end of file