Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Industriële technologie

Aan de slag met Go op PLCnext

Deze blog leidt je door de eerste stappen om een ​​applicatie te bouwen met Go op de PLCnext. Voor degenen die niet bekend zijn met Go, citeer ik graag de referentiewebsite www.golang.org

Een bijzondere reden om Go leuk te vinden, is dat het gemakkelijk is om webapplicaties te maken, maar nog steeds compileert naar een statisch binair bestand, dus je hoeft geen pakketten op de PLCnext-controller te installeren om het programma te implementeren.


Deze blog behandelt alleen het compileren voor de PLCnext met twee kleine programma's. Een klassiek HelloWorld-programma om er zeker van te zijn dat het compileren goed gaat en een kleine REST API-aanroep om de kracht van Go te laten zien. Bij het maken van deze blog heb ik gebruik gemaakt van:

  • Een Ubuntu 18.04 LTS-machine waarop VS an Go is geïnstalleerd om de programma's te maken
  • WinSCP om het binaire bestand over te dragen naar de controller
  • Putty om de programma's uit te voeren.

Oké, laten we aan de slag gaan met onze HelloWorld-applicatie. Maak een nieuw bestand met de naam HelloWorld.go en plak de code uit het HelloWorld-voorbeeld in het bestand. Sla het bestand op en open uw terminal en zorg ervoor dat u zich in de juiste map bevindt.

Met de onderstaande opdracht bouwt en voert u uw Go-code uit. Als alles correct is geïnstalleerd, zou Hello World in uw terminal moeten worden weergegeven. Je kunt deze opdracht gebruiken als je nog bezig bent met het bouwen van je applicatie.

go run HelloWorld.go 

Zoals ik al zei, is het ook mogelijk om de code naar een statisch binair bestand te bouwen. Dit wordt gedaan met de eerste opdracht hieronder, de volgende opdracht voert het nieuw gemaakte binaire bestand uit. Als alles goed gaat, wordt hallo wereld weer getoond in uw terminal.

go build HelloWorld.go
./HelloWorld

Wanneer u dit binaire bestand op de PLCnext-controller probeert uit te voeren, krijgt u:

./HelloWorld: cannot execute binary file: Exec format error

Dit komt omdat de architectuur van de Ubuntu-machine en PLCnext niet overeenkomen. Gelukkig is het vrij eenvoudig om een ​​binair bestand te maken dat werkt voor de PLCnext (maar houd er rekening mee dat dit nieuwe binaire bestand niet op de Ubuntu-machine zal draaien). Wanneer u de bouwomgeving instelt zoals hieronder beschreven. Go maakt een binair bestand dat geschikt is voor de PLCnext.

env GOOS=linux GOARCH=arm GOARM=7 go build


en voor ons voorbeeld zou het

. zijn
env GOOS=linux GOARCH=arm GOARM=7 go build HelloWorld.go


Wanneer je dit bestand naar de controller overbrengt en het uitvoert, zou je hallo wereld opnieuw moeten zien verschijnen, zo ja, gefeliciteerd. Je hebt je eerste Go-programma geschreven voor een PLCnext-controller! Bekijk de REST API-aanroep en pas deze aan uw behoeften aan!

Probleem met de vorige stap?
Heb je het bestand uitvoerbaar gemaakt met chmod +x HelloWorld ?


Hallo wereld voorbeeld

package main

import "fmt"

func main() {
fmt.Println("hello world")
}
go

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

  1. Code Ready-containers:aan de slag met procesautomatiseringstools in de cloud
  2. Aan de slag met keramisch 3D-printen
  3. Maak kennis met basiskleurstoffen!
  4. Aan de slag met TJBot
  5. Aan de slag met de RAK 831 Lora Gateway en RPi3
  6. Aan de slag met de RAK831 LoRa Gateway en RPi3
  7. Aan de slag met AI in verzekeringen:een inleidende gids
  8. Arduino-zelfstudie 01:Aan de slag
  9. Aan de slag met de Eagle Group:wat u moet weten
  10. Aan de slag met My.Cat.com
  11. Node-RED en aan de slag met Docker