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 56 57 58 59 60 61 62 63 64 65 | PROGRAM PRG_FB_EoN_Node VAR Init : BOOL := TRUE; EoN : SparkplugB.FB_Edge_Of_Network_Node; EoNConnectionState : 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"; DeviceName : WSTRING := "EmulatedDevice"; //(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; {8e575c5b-1d37-49c6-941b-5c0ec7874787} ChildObjectGuids AddAttributeSubsequent 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_EoN, arSparkplugDouble := SparkPlugBSimpleTypes.arSparkplugDouble_EoN, arSparkplugInt16 := SparkPlugBSimpleTypes.arSparkplugInt16_EoN, arSparkplugInt64 := SparkPlugBSimpleTypes.arSparkplugInt64_EoN, arSparkplugUInt16 := SparkPlugBSimpleTypes.arSparkplugUInt16_EoN, arSparkplugUInt64 := SparkPlugBSimpleTypes.arSparkplugUInt64_EoN, arSparkplugText := SparkPlugBSimpleTypes.arSparkplugText_EoN, //It generates a CSR and sends it to test.mosquitto.org to be signed arSparkplugBoolean := SparkPlugBSimpleTypes.arSparkplugBoolean_D1, arSparkplugFloat := SparkPlugBSimpleTypes.arSparkplugFloat_D1, arSparkplugInt8 := SparkPlugBSimpleTypes.arSparkplugInt8_D1, arSparkplugInt32 := SparkPlugBSimpleTypes.arSparkplugInt32_D1, arSparkplugUInt8 := SparkPlugBSimpleTypes.arSparkplugUInt8_D1, arSparkplugUInt32 := SparkPlugBSimpleTypes.arSparkplugUInt32_D1, arSparkplugUUID := SparkPlugBSimpleTypes.arSparkplugUUID_D1, arSparkplugString := SparkPlugBSimpleTypes.arSparkplugString_D1); Device1MetricsCount := MyDevice1.NumberOfMetrics(); |