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