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

