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:
- Uma máquina Ubuntu 18.04 LTS com VS an Go instalado para criar os programas
- WinSCP para transferir o binário para o controlador
- Putty para executar os programas.
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
- Contêineres prontos para código:Introdução às ferramentas de automação de processos na nuvem
- Introdução à impressão 3D em cerâmica
- Familiarizando-se com os corantes básicos!
- Introdução ao TJBot
- Introdução ao RAK 831 Lora Gateway e RPi3
- Primeiros passos com o RAK831 LoRa Gateway e RPi3
- Introdução à IA em seguros:um guia introdutório
- Arduino Tutorial 01:Começando
- Introdução ao Grupo Eagle:o que você precisa saber
- Introdução ao My.Cat.com