1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | PROGRAM PRG_FB_EoN_Node VAR Init : BOOL := TRUE; EoN : SparkplugB.FB_Edge_Of_Network_Node; ConnectionState : SparkplugB.SparkplugSessionStateType; NumberOfDevices : UDINT; MyDevice1 : SparkplugB.FB_Device; Device1MetricsCount : DINT; TestScenario : USINT := 1; ServerUrl : STRING; ServerPort : UINT; KeepAlive : UINT; CleanSession : BOOL := FALSE; Username : WSTRING := ""; Password : WSTRING := ""; UseTLS : BOOL := FALSE; GroupId : WSTRING := "SparkplugBDevice"; : UINT := 5000; // equals 5 seconds interval (scantime of this program = 250ms) so 20:1 (update rate = 20 scans to 1 publish) GenerateDataPeriod : TIME; GenerateDataElapsed : TIME; GenerateDateTimer : TON; Timestamp : SparkplugB.T_DateTime; Str : ChangingString; Scenario(); GenerateDateTimer(IN := NOT GenerateDateTimer.Q, PT := GenerateDataPeriod, ET => GenerateDataElapsed); IF GenerateDateTimer.Q THEN GenerateEoNData(); GenerateDeviceData(); END_IF IF NOT StillGettingClientCertificate THEN EoN(ServerUrl := ServerUrl, ServerPort := ServerPort, KeepAlive := KeepAlive, CleanSession := CleanSession, Username := Username, Password := Password, UseTLS := UseTLS, hCert := hCert, GroupId := GroupId, NodeName := NodeName, DeviceName := DeviceName, publishPeriod := publishPeriod, arSparkplugDateTime := SparkPlugBSimpleTypes.arSparkplugDateTime, arSparkplugDouble := SparkPlugBSimpleTypes.arSparkplugDouble, arSparkplugInt16 := SparkPlugBSimpleTypes.arSparkplugInt16, arSparkplugInt64 := SparkPlugBSimpleTypes.arSparkplugInt64, arSparkplugUInt16 := SparkPlugBSimpleTypes.arSparkplugUInt16, arSparkplugUInt64 := SparkPlugBSimpleTypes.arSparkplugUInt64, arSparkplugText := SparkPlugBSimpleTypes.arSparkplugText, //It generates a CSR and sends it to test.mosquitto.org to be signed arSparkplugString := SparkPlugBSimpleTypes.arSparkplugString); MyDevice1.CoupledWithEoN; Device1MetricsCount := MyDevice1.NumberOfMetrics(); |