Erste Schritte mit Go auf PLCnext
Dieser Blog führt Sie durch die ersten Schritte zum Erstellen einer Anwendung mit Go auf der PLCnext. Für diejenigen, die mit Go nicht vertraut sind, zitiere ich gerne die Referenz-Website www.golang.org
Ein besonderer Grund, Go zu mögen, ist, dass es einfach ist, Webanwendungen zu erstellen, aber dennoch in eine statische Binärdatei kompiliert wird, sodass Sie keine Pakete auf der PLCnext-Steuerung installieren müssen, um das Programm bereitzustellen.
Dieser Blog wird nur das Kompilieren für die PLCnext mit zwei kleinen Programmen behandeln. Ein klassisches HelloWorld-Programm, um sicherzustellen, dass die Kompilierung gut verläuft, und ein kleiner REST-API-Aufruf, um die Leistungsfähigkeit von Go zu demonstrieren. Bei der Erstellung dieses Blogs habe ich verwendet:
- Ein Ubuntu 18.04 LTS-Rechner, auf dem VS und Go installiert sind, um die Programme zu erstellen
- WinSCP, um die Binärdatei zum Controller zu übertragen
- Putty zum Ausführen der Programme.
Ok, fangen wir mit unserer HelloWorld-Anwendung an. Erstellen Sie eine neue Datei mit dem Namen HelloWorld.go und fügen Sie den Code aus dem HelloWorld-Beispiel in die Datei ein. Speichern Sie die Datei und öffnen Sie Ihr Terminal und stellen Sie sicher, dass Sie sich im richtigen Verzeichnis befinden.
Mit dem folgenden Befehl erstellen Sie Ihren Go-Code und führen ihn aus. Wenn alles korrekt installiert wurde, sollte Hello World in Ihrem Terminal angezeigt werden. Sie können diesen Befehl verwenden, wenn Sie Ihre Anwendung noch erstellen.
go run HelloWorld.go
Wie ich schon sagte, ist es auch möglich, den Code zu einer statischen Binärdatei zu erstellen. Dies geschieht mit dem ersten Befehl unten, der nächste Befehl führt die neu erstellte Binärdatei aus. Wenn alles gut geht, wird in Ihrem Terminal wieder hello world angezeigt.
go build HelloWorld.go
./HelloWorld
Wenn Sie versuchen, diese Binärdatei auf dem PLCnext-Controller auszuführen, erhalten Sie Folgendes:
./HelloWorld: cannot execute binary file: Exec format error
Dies liegt daran, dass die Architektur der Ubuntu-Maschine und PLCnext nicht zusammenpassen. Glücklicherweise ist es ziemlich einfach, eine Binärdatei zu erstellen, die für PLCnext funktioniert (aber beachten Sie, dass diese neue Binärdatei nicht auf dem Ubuntu-Computer ausgeführt wird). Wenn Sie die Build-Umgebung wie unten beschrieben festlegen. Go erstellt eine Binärdatei, die für die PLCnext geeignet ist.
env GOOS=linux GOARCH=arm GOARM=7 go build
und für unser Beispiel wäre es
env GOOS=linux GOARCH=arm GOARM=7 go build HelloWorld.go
Wenn Sie diese Datei auf den Controller übertragen und ausführen, sollte Hello World erneut angezeigt werden. Wenn ja, herzlichen Glückwunsch. Sie haben Ihr erstes Go-Programm für eine PLCnext-Steuerung geschrieben! Sehen Sie sich den REST-API-Aufruf an und passen Sie ihn an Ihre Bedürfnisse an!
Problem mit dem vorherigen Schritt?
Hast du die Datei mit chmod +x HelloWorld ?
Hello-World-Beispiel
package main
import "fmt"
func main() {
fmt.Println("hello world")
}
go
REST-API-Aufruf ( HTTP GET)
package main
import (
"crypto/tls"
"io/ioutil"
"log"
"net/http"
)
func main() {
http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true} // Disable TLS check due to bad certificate
MakeRequest()
}
func MakeRequest() {
resp, err := http.Get("https://192.168.18.10/_pxc_api/api/variables?paths=Arp.Plc.Eclr/MainInstance.bInputs") // change to your IP adress and variables
if err != nil {
log.Fatalln(err)
}
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Fatalln(err)
}
log.Println(string(body))
}
Industrietechnik
- Code Ready Container:Erste Schritte mit Prozessautomatisierungstools in der Cloud
- Erste Schritte mit dem Keramik-3D-Druck
- Kennenlernen grundlegender Farbstoffe!
- Erste Schritte mit TJBot
- Erste Schritte mit dem RAK 831 Lora Gateway und RPi3
- Erste Schritte mit dem RAK831 LoRa Gateway und RPi3
- Erste Schritte mit KI im Versicherungswesen:Ein Einführungsleitfaden
- Arduino-Tutorial 01:Erste Schritte
- Erste Schritte mit der Eagle-Gruppe:Was Sie wissen müssen
- Erste Schritte mit My.Cat.com