Je eerste Go-applicatie bouwen op PLCnext: Een beginnergids
Deze blog begeleidt je door de eerste stappen om een applicatie met Go op de PLCnext te bouwen. Voor wie onbekend is met Go, ik citeer de referentiewebsite www.golang.org.
Een bijzondere reden om Go te waarderen is dat het eenvoudig is om webapplicaties te maken, maar nog steeds compileert naar een statische binaire; dus hoef je geen pakketten op de PLCnext-controller te installeren om het programma te deployen.
Deze blog behandelt alleen het compileren voor de PLCnext met twee kleine programma's. Een klassiek "Hello World"-programma om te verifiëren dat het compileren goed gaat, en een kleine REST API-aanroep om de kracht van Go te demonstreren. Voor het maken van deze blog heb ik gebruikt:
- Een Ubuntu 18.04 LTS-machine met VS en Go geïnstalleerd om de programma's te maken
- WinSCP om de binaire naar de controller te overbrengen
- PuTTY om de programma's uit te voeren.
Oké, laten we beginnen met onze Hello World-applicatie. Maak een nieuw bestand HelloWorld.go en plak de code uit het Hello World-voorbeeld erin. Sla het bestand open en open je terminal, zorg dat je in de juiste map zit.
Met het onderstaande commando bouw en draai je je Go-code. Als alles correct geïnstalleerd was, zou "Hello World" in je terminal moeten verschijnen. Je kunt dit commando gebruiken terwijl je nog aan je applicatie bouwt.
go run HelloWorld.go
Zoals gezegd, is het ook mogelijk om de code te compileren naar een statische binaire. Dit doe je met het eerste commando hieronder; het volgende commando draait de zojuist aangemaakte binaire. Als alles goed gaat, verschijnt "hello world" weer in je terminal.
go build HelloWorld.go
./HelloWorld
Als je probeert deze binaire op de PLCnext-controller te draaien, krijg je:
./HelloWorld: cannot execute binary file: Exec format error
Dit komt omdat de architectuur van de Ubuntu-machine en de PLCnext niet overeenkomen. Gelukkig is het vrij eenvoudig om een binaire te maken die werkt voor de PLCnext (let op: deze nieuwe binaire draait NIET op de Ubuntu-machine). Wanneer je de build-omgeving instelt zoals hieronder beschreven, zal Go een binaire aanmaken die geschikt is voor de PLCnext.
env GOOS=linux GOARCH=arm GOARM=7 go build
En voor ons voorbeeld zou dat zijn:
env GOOS=linux GOARCH=arm GOARM=7 go build HelloWorld.go
Wanneer je dit bestand naar de controller overbrengt en uitvoert, zou "hello world" opnieuw moeten verschijnen. Zo ja, gefeliciteerd! Je hebt je eerste Go-programma voor een PLCnext-controller geschreven! Bekijk de REST API-aanroep en pas het aan aan je behoeften!
Probleem met de vorige stap?
Heb je het bestand uitvoerbaar gemaakt met chmod +x HelloWorld?
Hello World-voorbeeld
package main
import "fmt"
func main() {
fmt.Println("hello world")
}
REST API-aanroep (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))
}
Industriële technologie
- Cat® Machines Optimaliseren: De Ultieme My.Cat.com Gids
- Aan de slag met TJBot: Bouw, Configureer en Stem-bedien Je Eigen AI-robot
- Stap-voor-stap Handleiding om een RAK 831 LoRa-gateway op Raspberry Pi 3 te Deployen
- Bouw een LoRa Gateway met de RAK831 Module op Raspberry Pi 3 – Stap-voor-Stap Gids
- Arduino Beginner Tutorial 01: Start met Je Eerste Project
- Ontdek de Eagle Group: Uw Partner voor Kwalitatieve Metaalproductie
- Een Praktische Gids voor Ceramisch 3D-printen: Technieken, Materialen, en Ontwerptips
- AI in verzekeringen: Een praktische startergids voor real-world implementatie
- Node-RED op PLCnext deployen met Docker: Stap-voor-stap handleiding
- Code-Ready Containers: Een Praktische Gids voor Cloud-Native Procesautomatisering met Red Hat OpenShift
- Basiskleurstoffen begrijpen: Gebruik, veiligheid en industriële toepassingen