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

Construire votre première application Go sur PLCnext : Guide débutant

Ce blog vous guidera à travers les premières étapes pour construire une application avec Go sur le PLCnext. Pour ceux qui ne connaissent pas Go, je cite 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 qu'il compile quand même vers un binaire statique, donc vous n'avez pas à installer de packages sur le contrôleur PLCnext pour déployer le programme.

Ce blog ne traite que de la compilation pour PLCnext avec deux petits programmes. Un classique "Hello World" pour vérifier que la compilation fonctionne et un petit appel REST API pour montrer la puissance de Go. Pour la rédaction de ce blog, j'ai utilisé :

Commençons avec notre application HelloWorld. Créez un nouveau fichier appelé HelloWorld.go et collez le code de l'exemple HelloWorld à l'intérieur. Sauvegardez le fichier et ouvrez votre terminal en vous assurant d'être dans le bon répertoire.

Avec la commande ci-dessous, vous construirez et exécuterez votre code Go. Si tout était correctement installé, "Hello World" devrait s'afficher dans votre terminal. Vous pouvez utiliser cette commande pendant que vous développez votre application.

go run HelloWorld.go

Comme dit, il est aussi possible de compiler le code en binaire statique. Cela se fait avec la première commande ci-dessous, la suivante exécute le binaire fraîchement créé. Si tout va bien, "hello world" s'affiche à nouveau dans votre terminal.

go build HelloWorld.go
./HelloWorld

Quand 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 du 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 tournera pas sur la machine Ubuntu). Quand vous définissez l'environnement de build 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 :

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

Quand vous transférez ce fichier vers le contrôleur et l'exécutez, vous devriez voir "hello world" apparaître à nouveau. Si c'est le cas, félicitations ! Vous avez écrit votre premier programme Go pour un contrôleur PLCnext ! Regardez l'appel REST API et modifiez-le selon vos besoins !

Problème à 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")
}

Appel REST API (HTTP GET)

package main

import (
    "crypto/tls"
    "io/ioutil"
    "log"
    "net/http"
)

func main() {
    http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true} // Désactive la vérification TLS à cause du mauvais certificat
    MakeRequest()
}

func MakeRequest() {
    resp, err := http.Get("https://192.168.18.10/_pxc_api/api/variables?paths=Arp.Plc.Eclr/MainInstance.bInputs") // changez vers votre IP et 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. Code-Ready Containers : Guide Pratique d'Automatisation Cloud-Native avec Red Hat OpenShift
  2. Guide pratique de l'impression 3D céramique : techniques, matériaux et conseils de conception
  3. Comprendre les colorants basiques : usages, sécurité et applications industrielles
  4. Démarrage avec TJBot : Construire, Configurer et Contrôler par la Voix Votre Propre Robot IA
  5. Guide Pas à Pas pour Déployer une Passerelle LoRa RAK 831 sur Raspberry Pi 3
  6. Construire une passerelle LoRa avec le module RAK831 sur Raspberry Pi 3 – Guide pas à pas
  7. IA dans l'assurance : Guide pratique de démarrage pour une implémentation réelle
  8. Tutoriel Arduino Débutant 01 : Démarrez votre Premier Projet
  9. Découvrez le groupe Eagle : votre partenaire pour la fabrication métallique de qualité