Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Technologie industrielle

Prise en main de Go sur PLCnext

Ce blog vous guidera dans les premières étapes de construction d'une application avec Go sur PLCnext. Pour ceux qui ne connaissent pas le Go, j'aime citer le site de référence www.golang.org

Une raison particulière d'aimer Go est qu'il est facile de créer des applications Web mais se compile toujours en un binaire statique, vous n'avez donc pas besoin d'installer de packages sur le contrôleur PLCnext pour déployer le programme.


Ce blog ne s'occupera que de la compilation pour le PLCnext avec deux petits programmes. Un programme HelloWorld classique pour être sûr que la compilation se passe bien et un petit appel API REST pour montrer la puissance de Go. Dans la création de ce blog, j'ai utilisé :

Ok, commençons avec notre application HelloWorld. Créez un nouveau fichier appelé HelloWorld.go et collez le code de l'exemple HelloWorld dans le fichier. Enregistrez le fichier et ouvrez votre terminal et assurez-vous que vous êtes dans le bon répertoire.

Avec la commande ci-dessous, vous allez créer et exécuter votre code Go. Si tout a été installé correctement, Hello World devrait s'afficher dans votre terminal. Vous pouvez utiliser cette commande lorsque vous êtes encore en train de créer votre application.

go run HelloWorld.go 

Comme je l'ai dit, il est également possible de construire le code en un binaire statique. Cela se fait avec la première commande ci-dessous, la commande suivante exécute le binaire nouvellement créé. Si tout se passe bien, hello world s'affiche à nouveau dans votre terminal.

go build HelloWorld.go
./HelloWorld

Lorsque vous essayez d'exécuter ce binaire sur le contrôleur PLCnext, vous obtenez :

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

C'est parce que l'architecture de la machine Ubuntu et PLCnext ne correspondent pas. Heureusement, il est assez facile de créer un binaire qui fonctionne pour le PLCnext (mais notez que ce nouveau binaire ne fonctionnera pas sur la machine Ubuntu). Lorsque vous définissez l'environnement de construction comme décrit ci-dessous. Go créera un binaire adapté au PLCnext.

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


et pour notre exemple ce serait

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


Lorsque vous transférez ce fichier sur le contrôleur et que vous l'exécutez, vous devriez voir bonjour le monde réapparaître, si c'est le cas, félicitations. Vous venez d'écrire votre premier programme Go pour un automate PLCnext ! Jetez un œil à l'appel de l'API REST et modifiez-le selon vos besoins !

Problème avec l'étape précédente ?
Avez-vous rendu le fichier exécutable avec chmod +x HelloWorld ?


Exemple Hello World

package main

import "fmt"

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

Appel API REST (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))
}


Technologie industrielle

  1. Conteneurs Code Ready :Premiers pas avec les outils d'automatisation des processus dans le cloud
  2. Initiation à l'impression 3D céramique
  3. Se familiariser avec les teintures de base !
  4. Premiers pas avec TJBot
  5. Premiers pas avec le RAK 831 Lora Gateway et RPi3
  6. Premiers pas avec la passerelle LoRa RAK831 et RPi3
  7. Premiers pas avec l'IA dans l'assurance :un guide d'introduction
  8. Tutoriel Arduino 01 :Prise en main
  9. Premiers pas avec le groupe Eagle :ce que vous devez savoir