Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Tecnologia industrial

Começando com Go no PLCnext


Este blog irá guiá-lo pelos primeiros passos na construção de uma aplicação com Go no PLCnext. Para quem não conhece o Go, gosto de citar o site de referência www.golang.org

Uma razão particular para gostar do Go é que é fácil criar aplicações web, mas ainda compila para um binário estático, portanto, você não precisa instalar pacotes no controlador PLCnext para implantar o programa.


Este blog só tratará da compilação para o PLCnext com dois pequenos programas. Um programa clássico do HelloWorld para garantir que a compilação corra bem e uma pequena chamada à API REST para mostrar o poder do Go. Na elaboração deste blog usei:

Ok, vamos começar com nosso aplicativo HelloWorld. Crie um novo arquivo chamado HelloWorld.go e cole o código do exemplo HelloWorld dentro do arquivo. Salve o arquivo e abra seu terminal e verifique se você está no diretório correto.

Com o comando abaixo, você criará e executará seu código Go. Se tudo foi instalado corretamente, o Hello World deve ser exibido no seu terminal. Você pode usar esse comando quando ainda estiver construindo seu aplicativo.
go run HelloWorld.go 

Como eu disse, também é possível construir o código para um binário estático. Isso é feito com o primeiro comando abaixo, o próximo comando executa o binário recém-criado. Se tudo correr bem, olá mundo é novamente mostrado no seu terminal.

go build HelloWorld.go
./HelloWorld

Ao tentar executar este binário no controlador PLCnext você obtém:

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

Isso ocorre porque a arquitetura da máquina Ubuntu e PLCnext não combinam. Felizmente, é bastante fácil criar um binário que funcione para o PLCnext (mas observe que esse novo binário não será executado na máquina Ubuntu). Quando você define o ambiente de compilação conforme descrito abaixo. Go irá criar um binário adequado para o PLCnext.

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


e para o nosso exemplo seria
env GOOS=linux GOARCH=arm GOARM=7 go build HelloWorld.go


Quando você transfere este arquivo para o controlador e o executa, você deve ver o hello world aparecendo mais uma vez, se sim, parabéns. Você escreveu seu primeiro programa Go para um controlador PLCnext! Dê uma olhada na chamada da API REST e modifique-a para atender às suas necessidades!

Problema com o passo anterior?
Você tornou o arquivo executável com chmod +x HelloWorld ?


Exemplo Olá Mundo


package main

import "fmt"

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

Chamada de 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))
}

Tecnologia industrial

  1. Contêineres prontos para código:Introdução às ferramentas de automação de processos na nuvem
  2. Introdução à impressão 3D em cerâmica
  3. Familiarizando-se com os corantes básicos!
  4. Introdução ao TJBot
  5. Introdução ao RAK 831 Lora Gateway e RPi3
  6. Primeiros passos com o RAK831 LoRa Gateway e RPi3
  7. Introdução à IA em seguros:um guia introdutório
  8. Arduino Tutorial 01:Começando
  9. Introdução ao Grupo Eagle:o que você precisa saber
  10. Introdução ao My.Cat.com