Montag, 6. Juni 2022

 Copyright ©  Dipl.-Ing. Johannes Hofer 2022, Auszug aus dem neuen active learn book                                                 

Die KI-SPS

Die Möglichkeit einer Programmierung für eine SPS, um diese am Geschehen der künstlichen Intelligenz zu beteiligen




HMI-Anwender im Testmodus TIA-Simulation zeigt das folgende Video:


Damit können auch Interessierte ohne den Besitz einer Hardware aus der Simatic 1200/1500 profitieren und sich mit dem Thema beschäftigen ☺
 

Nachfolgend wie mehrfach gewünscht, der Script  zum  kopieren:


Sub Ki2HMI()
Const READ = 1
Const WRITE = 2
Const APPEND = 8 ' not use
'
Dim fso, fileIn, fileOut 
On Error Resume Next
'object 
  Set fso = CreateObject("Scripting.FileSystemObject")
  'program 
  Select Case SmartTags("Request_Counter")
Case 0 ' check file read
SmartTags("SendReceiveData_FlagRequestStr") = False
Set fileIn = fso.OpenTextFile("C:/KiToPlc_HMI/RequestText.txt",READ)
If(Err.Number <> 0) Then
SmartTags("InfoFileSystem") = " RequestText.txt => " & Err.Description
Err.Clear
Set fso = Nothing
SmartTags("Request_Counter") = 100
Else
' read file
SmartTags("RequestText") = fileIn.ReadAll()
fileIn.Close()
'KI2Plc set folder and filename
fso.DeleteFile "C:/KiToPlc_HMI/RequestText.txt"
SmartTags("InfoFileSystem") = "Read File ok => File deleted"
Set fso = Nothing
SmartTags("Request_Counter") = SmartTags("Request_Counter") + 1
End If
Case 1
SmartTags("SendReceiveData_RequestStr_HMI")= SmartTags("RequestText")
SmartTags("SendReceiveData_FlagRequestStr") = True
SmartTags("Request_Counter") = SmartTags("Request_Counter") + 1
Case 2
'KI2Plc set folder and filename
If(SmartTags("SendReceiveData_FlagRequestStr") = False) Then
SmartTags("Request_Counter") = SmartTags("Request_Counter") + 1
End If
Case 3
'KI2Plc set folder and filename and write file 
Set fileOut = fso.OpenTextFile("C:/KiToPlc_HMI/AcknowledgeText.txt",WRITE, True)
If(Err.Number <> 0) Then
SmartTags("InfoFileSystem") = " => " & Err.Description
Err.Clear
Set fso = Nothing
SmartTags("Request_Counter") = 100
Else
fileOut.WriteLine(SmartTags("SendReceiveData_AcknowledgeStr_HMI"))
fileOut.Close()
fso = Nothing
SmartTags("Request_Counter") = SmartTags("Request_Counter") + 1
End If
Case 4
' nothing
SmartTags("Request_Counter") = SmartTags("Request_Counter") + 1
Case Else
SmartTags("Request_Counter") = 0
End Select
'change sps-flag 
SmartTags("RequestHMI_Bit") = Not SmartTags("RequestHMI_Bit")
End Sub