a/trunk/mqttsparkplug/mqttsparkplug-example/Device_1/Plc Logic/Application1/Edge1/svnobj b/trunk/mqttsparkplug/mqttsparkplug-example/Device_1/Plc Logic/Application1/Edge1/svnobj
1
Gx_lŠ7!0…jüo‡*×V5¦Û(
1
Gx_l%!0…jüo.ÆÜIJÁ»Š
2
#ÒSystem.StringL{6f9dac99-8de1-4efc-8465-68ac443b7d08}SpecialFuncL{0db3d7bb-cde0-4416-9a7b-ce49a0124323}NoneImplementationL{3b83b776-fb25-43b8-99f2-3c507c9143fc}TextDocument  L{f3878285-8e4f-490b-bb1b-9acbb7eb04db}
2
System.StringL{6f9dac99-8de1-4efc-8465-68ac443b7d08}SpecialFuncL{0db3d7bb-cde0-4416-9a7b-ce49a0124323}NoneImplementationL{3b83b776-fb25-43b8-99f2-3c507c9143fc}TextDocument    L{f3878285-8e4f-490b-bb1b-9acbb7eb04db}
3
TextLinesL{a5de0b0b-1cb5-4913-ac21-9d70293ec00d}Id
longTagTextIF Init THEN(    AddAllMetrics();    Scenario();END_IFbGenerateDataTimer( IN := NOT GenerateDataTimer.Q,X                   PT := GenerateDataPeriod,^                   ET => GenerateDataElapsed );6IF GenerateDataTimer.Q THEN,    GenerateEoNData();2    GenerateDeviceData();>TON_DelayStartup( IN := TRUE );€IF NOT StillGettingClientCertificate AND TON_DelayStartup.Q THEN@    EoN( ServerUrl := ServerUrl,D         ServerPort := ServerPort,Ö         PrimaryHostID := "Ignition-Sparky", //"Sparky", , // Please change this to your own PrimaryHostID! @         KeepAlive := KeepAlive,!L         CleanSession := CleanSession,"<         Username := Username,#<         Password := Password,$4         UseTLS := UseTLS,%0         hCert := hCert,&8         GroupId := GroupId,'<         NodeName := NodeName,(P         publishPeriod := publishPeriod,)ļ         // Uncomment this for TLS usage and please alter the initialisation of myTLSContext*æ         //         ITLSContextProvider    := ItfTLSContext, // We provide a reference to an instance of TLSContext+F         IASyncPropertyProvider :=,,X         SessionState => EoNConnectionState,-\         NumberOfDevices => NumberOfDevices );.PELSIF StillGettingClientCertificate THEN/v    //The below method creates a Client Certificate for you0    //It generates a CSR and sends it to test.mosquitto.org to be signed1    AdditionalStepsToRegisterAClientCertificateWithtest_mosquitto_org();2IF PlugIt THEN3$    ItfEoN := EoN;4ELSE5     ItfEoN := 0;6RMyDevice1( DeviceName := "SomeDevice001",7V           DeviceHealthy := Device1Healthy,8H           ItfEoNInstance := ItfEoN,9:           PluggedIntoEoN =>,:T           SessionState => MyDevice1State,;X           publishPeriod := publishPeriod );<RMyDevice2( DeviceName := "SomeDevice002",=V           DeviceHealthy := Device2Healthy,>T           SessionState => MyDevice2State,?RMyDevice3( DeviceName := "SomeDevice003",@V           DeviceHealthy := Device3Healthy,AT           SessionState => MyDevice3State,BInterfaceCL{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}DPROGRAM Edge1EVARF0    Init : BOOL := TRUE;G<    TestScenario : USINT := 8;H8    EoN : Sparkplug.FB_Edge;Iz    EoNConnectionState : Sparkplug.SparkplugSessionStateType;J8    NumberOfDevices : UDINT;KH    MyDevice1 : Sparkplug.FB_Device;LD    Device1Healthy : BOOL := TRUE;MH    MyDevice2 : Sparkplug.FB_Device;ND    Device2Healthy : BOOL := TRUE;OH    MyDevice3 : Sparkplug.FB_Device;PD    Device3Healthy : BOOL := TRUE;Qr    MyDevice1State : Sparkplug.SparkplugSessionStateType;Rr    MyDevice2State : Sparkplug.SparkplugSessionStateType;Sr    MyDevice3State : Sparkplug.SparkplugSessionStateType;T4    PlugIt : BOOL := TRUE;U`    ItfEoN : Sparkplug.ISparkplugDeviceProtocol;V.    ServerUrl : STRING;W,    ServerPort : UINT;X*    KeepAlive : UINT;YB    CleanSession : BOOL := FALSE;Z:    Username : WSTRING := "";[:    Password : WSTRING := "";\6    UseTLS : BOOL := FALSE;]œ    hCert : SysTypes.RTS_IEC_HANDLE := SysTypes.RTS_INVALID_HANDLE; // Handle to the client certificate (optional) only used if UseTLS is TRUE^X    GroupId : WSTRING := "SparkplugBDevice";_B    NodeName : WSTRING := "Ian1";`    publishPeriod : UINT := 500; //  milliseconds interval so 1000 = 1s aŽ    //Encapsulates all the data neccessaray to handle/check  encrypted tcp connectionsbˆ    //Static initialization, as shown in the following code snippet;c    //d    //VAReV    //    commonName : STRING := 'MyRasPi';fļ    //    ciCertInfo : NBS.CERT_INFO := (psInfo:=ADR(commonName), udiSize:=LEN(commonName));gX    //    myTLSContext : NBS.TLSContext := (h`    //        ePurpose:=NBS.PURPOSE.CLIENT_SIDE,iL    //        sUseCaseName:='NBSTest',jB    //        sTLSVersion:='1.3',kJ    //        ciCertInfo:=ciCertInfo,lH    //        udiVerificationMode:=2m    //    );n    //END_VARoJ    commonName : STRING := 'MyRasPi';pō    ciCertInfo : Sparkplug.MQTT.NBS.CERT_INFO := (psInfo := ADR( commonName ), udiSize := TO_UDINT( LEN( commonName ) ));q4    sUseCaseName : STRING;rT    ePurpose : Sparkplug.MQTT.NBS.PURPOSE;sX    sHostname : Sparkplug.MQTT.NBS.HOSTNAME;t@    udiVerificationMode : UDINT;u˜    myTLS : Sparkplug.MQTT.NBS.TLSContext := ( sUseCaseName := sUseCaseName,vŠ                                                ePurpose := ePurpose,wŽ                                                sHostname := sHostname,xš                                                udiVerificationMode := udiVerificationMode );yf    ItfTLSContext : Sparkplug.MQTT.NBS.ITLSContext;z<    GenerateDataPeriod : TIME;{>    GenerateDataElapsed : TIME;|8    GenerateDataTimer : TON;}J    Timestamp : Sparkplug.T_DateTime;~2    Str : ChangingString;Œ    //These are specific for registering certificates at test.mqtt.org€X    getClientCert : Sparkplug.GetClientCert;N    RegisterCSR : Web_Client.WebClient;‚4    countClientCert : INT;ƒ>    httpPost : WSTRING( 2048 );„R    StillGettingClientCertificate : BOOL;…V    wsCSRorClientCertOut : WSTRING( 2048 );†r    WaitForTheServerToRegisterCert : TON := (PT := T#1S);‡V    TON_DelayStartup : TON := (PT := T#5S);ˆEND_VAR‰"UniqueIdGeneratorŠ5106‹POULevelŒL{8e575c5b-1d37-49c6-941b-5c0ec7874787}StandardŽ ChildObjectGuids8System.Collections.ArrayList,AddAttributeSubsequent‘boolÐÐ-ÐÐ   E
3
TextLinesL{a5de0b0b-1cb5-4913-ac21-9d70293ec00d}Id
longTagTextIF Init THEN(    AddAllMetrics();~    Scenario( TestScenario := g_example_settings.TestScenario);ô    GenerateDataPeriod := UINT_TO_TIME( Scenario.publishPeriod - 250 ); // Now we surely change the data before sending it$    Init := FALSE;END_IFbGenerateDataTimer( IN := NOT GenerateDataTimer.Q,X                   PT := GenerateDataPeriod,^                   ET => GenerateDataElapsed );6IF GenerateDataTimer.Q THEN,    GenerateEoNData();2    GenerateDeviceData();>TON_DelayStartup( IN := TRUE );’IF NOT Scenario.StillGettingClientCertificate AND TON_DelayStartup.Q THENR    EoN( ServerUrl := Scenario.ServerUrl, V         ServerPort := Scenario.ServerPort,!x         PrimaryHostID := g_example_settings.PrimaryHostID1,"~         NodeName := g_example_settings.EdgeName1,             #l         GroupId := g_example_settings.GroupID,       $R         KeepAlive := Scenario.KeepAlive,%^         CleanSession := Scenario.CleanSession,&N         Username := Scenario.Username,'N         Password := Scenario.Password,(F         UseTLS := Scenario.UseTLS,)B         hCert := Scenario.hCert,*b         publishPeriod := Scenario.publishPeriod,+¸         // Uncomment this for TLS usage and please alter the initialisation of myTLSContext,æ         //         ITLSContextProvider    := ItfTLSContext, // We provide a reference to an instance of TLSContext-F         IASyncPropertyProvider :=,.X         SessionState => EoNConnectionState,/\         NumberOfDevices => NumberOfDevices );0bELSIF Scenario.StillGettingClientCertificate THEN1v    //The below method creates a Client Certificate for you2    //It generates a CSR and sends it to test.mosquitto.org to be signed3¢    Scenario.AdditionalStepsToRegisterAClientCertificateWithtest_mosquitto_org();4IF PlugIt THEN5$    ItfEoN := EoN;6ELSE7     ItfEoN := 0;8FMyDevice1( DeviceName := "Device1",9V           DeviceHealthy := Device1Healthy,:H           ItfEoNInstance := ItfEoN,;:           PluggedIntoEoN =>,<T           SessionState => MyDevice1State,=j           publishPeriod := Scenario.publishPeriod );>FMyDevice2( DeviceName := "Device2",?V           DeviceHealthy := Device2Healthy,@T           SessionState => MyDevice2State,AFMyDevice3( DeviceName := "Device3",BV           DeviceHealthy := Device3Healthy,CT           SessionState => MyDevice3State,DInterfaceEL{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}FPROGRAM Edge1GVARH0    Init : BOOL := TRUE;I8    EoN : Sparkplug.FB_Edge;Jz    EoNConnectionState : Sparkplug.SparkplugSessionStateType;K8    NumberOfDevices : UDINT;LH    MyDevice1 : Sparkplug.FB_Device;MD    Device1Healthy : BOOL := TRUE;NH    MyDevice2 : Sparkplug.FB_Device;OD    Device2Healthy : BOOL := TRUE;PH    MyDevice3 : Sparkplug.FB_Device;QD    Device3Healthy : BOOL := TRUE;Rr    MyDevice1State : Sparkplug.SparkplugSessionStateType;Sr    MyDevice2State : Sparkplug.SparkplugSessionStateType;Tr    MyDevice3State : Sparkplug.SparkplugSessionStateType;U4    PlugIt : BOOL := TRUE;Vh    ItfEoN : Sparkplug.ISparkplugDeviceProtocol;    W<    GenerateDataPeriod : TIME;X>    GenerateDataElapsed : TIME;Y8    GenerateDataTimer : TON;Z2    Str : ChangingString;[J    TimeStamp : Sparkplug.T_DateTime;\X    TON_DelayStartup : TON := (PT := T#5S); ]END_VAR^"UniqueIdGenerator_5186`POULevelaL{8e575c5b-1d37-49c6-941b-5c0ec7874787}bStandardc ChildObjectGuidsd8System.Collections.ArrayListe,AddAttributeSubsequentfboolÐÐ-ÐÐ    E
4
AÐÐ
­³ÚÐ-ÐÐ
­´ÚÐ-ÐÐ
­µÚÐ-ÐÐ
­¶ÚÐ-ÐÐ
­·ÚÐ-ÐÐ
­¸ÚÐ-ÐÐ
­¹ÚÐ-ÐÐ
­ºÚÐ-ÐÐ
­»ÚÐ-ÐÐ
­¼ÚÐ-ÐÐ
­½ÚÐ-ÐÐ
­¾ÚÐ-ÐÐ
­¿ÚÐ-ÐÐ
­ÀÚÐ-ÐÐ
­ÁÚÐ-ÐÐ
­ÂÚÐ-ÐÐ
­ÃÚÐ-ÐÐ
­ÄÚÐ-ÐÐ
­ÅÚÐ-ÐÐ
­ÆÚÐ- ÐÐ
­ÇÚÐ-!ÐÐ
­ÈÚÐ-"ÐÐ
­ÉÚÐ-#ÐÐ
­ÊÚÐ-$ÐÐ
­ËÚÐ-%ÐÐ
­ÌÚÐ-&ÐÐ
­ÍÚÐ-'ÐÐ
­ÎÚÐ-(ÐÐ
­ÏÚÐ-)ÐÐ
­ÐÚÐ-*ÐÐ
­ÑÚÐ-+ÐÐ
­ÒÚÐ-,ÐÐ
­ÓÚÐ--ÐÐ
­ÔÚÐ-.ÐÐ
­ÕÚÐ-/ÐÐ
­ÖÚÐ-0ÐÐ
­×ÚÐ-1ÐÐ
­ØÚÐ-ÐÐ
­ÙÚÐ-ÐÐ
­ÚÚÐ-2ÐÐ
­ÛÚÐ-3ÐÐ
­ÜÚÐ-4ÐÐ
­ÝÚÐ-5ÐÐ
­ÞÚÐ-ÐÐ
­ßÚÐ-ÐÐ
­àÚÐ-6ÐÐ
­áÚÐ-7ÐÐ
­âÚÐ-8ÐÐ
­ãÚÐ-9ÐÐ
­äÚÐ-:ÐÐ
­åÚÐ-;ÐÐ
­æÚÐ-ÐÐ
­çÚÐ-<ÐÐ
­èÚÐ-=ÐÐ
­éÚÐ-8ÐÐ
­êÚÐ-9ÐÐ
­ëÚÐ->ÐÐ
­ìÚÐ-;ÐÐ
­íÚÐ-ÐÐ
­îÚÐ-?ÐÐ
­ïÚÐ-@ÐÐ
­ðÚÐ-8ÐÐ
­ñÚÐ-9ÐÐ
­òÚÐ-AÐÐ
­‡ÚÐ-;ÐBCÐ E
4
CÐÐ
­úÚÐ-ÐÐ
­ûÚÐ-ÐÐ
­üÚÐ-ÐÐ
­@ÚÐ-ÐÐ
­ýÚÐ-ÐÐ
­þÚÐ-ÐÐ
­ÿÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­   ÚÐ-ÐÐ
­
5
EÐÐ
­nÚÐ-DÐÐ
­oÚÐ-EÐÐ
­pÚÐ-FÐÐ
­qÚÐ-GÐÐ
­rÚÐ-HÐÐ
­sÚÐ-IÐÐ
­tÚÐ-JÐÐ
­uÚÐ-KÐÐ
­vÚÐ-LÐÐ
­wÚÐ-MÐÐ
­xÚÐ-NÐÐ
­yÚÐ-OÐÐ
­zÚÐ-PÐÐ
­{ÚÐ-QÐÐ
­|ÚÐ-RÐÐ
­}ÚÐ-SÐÐ
­~ÚÐ-TÐÐ
­ÚÐ-UÐÐ
­€ÚÐ-VÐÐ
­ÚÐ-WÐÐ
­‚ÚÐ-XÐÐ
­ƒÚÐ-YÐÐ
­„ÚÐ-ZÐÐ
­…ÚÐ-[ÐÐ
­†ÚÐ-\ÐÐ
­‡ÚÐ-]ÐÐ
­ˆÚÐ-^ÐÐ
­‰ÚÐ-_ÐÐ
­ŠÚÐ-`ÐÐ
­‹ÚÐ-aÐÐ
­ŒÚÐ-bÐÐ
­ÚÐ-cÐÐ
­ŽÚÐ-dÐÐ
­ÚÐ-eÐÐ
­ÚÐ-fÐÐ
­‘ÚÐ-gÐÐ
­’ÚÐ-hÐÐ
­“ÚÐ-iÐÐ
­”ÚÐ-jÐÐ
­•ÚÐ-kÐÐ
­–ÚÐ-lÐÐ
­—ÚÐ-mÐÐ
­˜ÚÐ-nÐÐ
­™ÚÐ-oÐÐ
­šÚÐ-pÐÐ
­œÚÐ-qÐÐ
­ÚÐ-rÐÐ
­žÚÐ-sÐÐ
­ŸÚÐ-tÐÐ
­ ÚÐ-uÐÐ
­¡ÚÐ-vÐÐ
­¢ÚÐ-wÐÐ
­£ÚÐ-xÐÐ
­¤ÚÐ-yÐÐ
­¥ÚÐ-zÐÐ
­¦ÚÐ-{ÐÐ
­§ÚÐ-|ÐÐ
­¨ÚÐ-}ÐÐ
­©ÚÐ-~ÐÐ
­ªÚÐ-ÐÐ
­«ÚÐ-€ÐÐ
­¬ÚÐ-ÐÐ
­­ÚÐ-‚ÐÐ
­®ÚÐ-ƒÐÐ
­¯ÚÐ-„ÐÐ
­°ÚÐ-…ÐÐ
­±ÚÐ-†ÐÐ
­²ÚÐ-‡ÐÐ
­bÚÐ-ˆЉ-ŠЋŒ-ŽА‘­
5
ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ- ÐÐ
­
ÚÐ-!ÐÐ
­ÚÐ-"ÐÐ
­ÚÐ-#ÐÐ
­ÚÐ-$ÐÐ
­ÚÐ-%ÐÐ
­ÚÐ-&ÐÐ
­ÚÐ-'ÐÐ
­ÚÐ-(ÐÐ
­ÚÐ-)ÐÐ
­ÚÐ-*ÐÐ
­ÚÐ-+ÐÐ
­ÚÐ-,ÐÐ
­ÚÐ--ÐÐ
­ÚÐ-.ÐÐ
­ÚÐ-/ÐÐ
­ÚÐ-0ÐÐ
­ÚÐ-1ÐÐ
­ÚÐ-2ÐÐ
­ÚÐ-3ÐÐ
­ ÚÐ-ÐÐ
­!ÚÐ-ÐÐ
­"ÚÐ-4ÐÐ
­#ÚÐ-5ÐÐ
­$ÚÐ-6ÐÐ
­%ÚÐ-7ÐÐ
­&ÚÐ-ÐÐ
­'ÚÐ-ÐÐ
­(ÚÐ-8ÐÐ
­)ÚÐ-9ÐÐ
­*ÚÐ-:ÐÐ
­+ÚÐ-;ÐÐ
­,ÚÐ-<ÐÐ
­-ÚÐ-=ÐÐ
­.ÚÐ-ÐÐ
­/ÚÐ->ÐÐ
­0ÚÐ-?ÐÐ
­1ÚÐ-:ÐÐ
­2ÚÐ-;ÐÐ
­3ÚÐ-@ÐÐ
­4ÚÐ-=ÐÐ
­5ÚÐ-ÐÐ
­6ÚÐ-AÐÐ
­7ÚÐ-BÐÐ
­8ÚÐ-:ÐÐ
­9ÚÐ-;ÐÐ
­:ÚÐ-CÐÐ
­‡ÚÐ-=ÐDEÐ E
6
ÐÐ
­nÚÐ-FÐÐ
­oÚÐ-GÐÐ
­pÚÐ-HÐÐ
­rÚÐ-IÐÐ
­sÚÐ-JÐÐ
­tÚÐ-KÐÐ
­uÚÐ-LÐÐ
­vÚÐ-MÐÐ
­wÚÐ-NÐÐ
­xÚÐ-OÐÐ
­yÚÐ-PÐÐ
­zÚÐ-QÐÐ
­{ÚÐ-RÐÐ
­|ÚÐ-SÐÐ
­}ÚÐ-TÐÐ
­~ÚÐ-UÐÐ
­ÚÐ-VÐÐ
­¥ÚÐ-WÐÐ
­¦ÚÐ-XÐÐ
­§ÚÐ-YÐÐ
­;ÚÐ-ZÐÐ
­¨ÚÐ-[ÐÐ
­AÚÐ-\ÐÐ
­bÚÐ-]Ð^-_Ð`a-bcdÐef­