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