Начало работы с Go on PLCnext
Этот блог проведет вас через первые шаги по созданию приложения с помощью Go на PLCnext. Для тех, кто не знаком с Go, я люблю цитировать справочный сайт www.golang.org
Особая причина, по которой вам нравится Go, заключается в том, что с его помощью легко создавать веб-приложения, но они все равно компилируются в статический двоичный файл, поэтому вам не нужно устанавливать пакеты на контроллере PLCnext для развертывания программы.
Этот блог будет заниматься компиляцией для PLCnext только с двумя небольшими программами. Классическая программа HelloWorld, чтобы убедиться, что компиляция идет хорошо, и небольшой вызов REST API, чтобы продемонстрировать мощь Go. При создании этого блога я использовал:
- Компьютер Ubuntu 18.04 LTS с установленным VS an Go для создания программ
- WinSCP для передачи двоичного файла на контроллер
- Putty для выполнения программ.
Хорошо, давайте начнем с нашего приложения HelloWorld. Создайте новый файл с именем HelloWorld.go и вставьте в него код из примера HelloWorld. Сохраните файл, откройте терминал и убедитесь, что вы находитесь в правильном каталоге.
С помощью приведенной ниже команды вы создадите и запустите свой код Go. Если все было установлено правильно, Hello World должен отображаться в вашем терминале. Вы можете использовать эту команду во время создания приложения.
go run HelloWorld.go
Как я уже сказал, также можно собрать код в статический двоичный файл. Это делается с помощью первой команды ниже, следующая команда запускает только что созданный двоичный файл. Если все пойдет хорошо, в вашем терминале снова появится привет, мир.
go build HelloWorld.go
./HelloWorld
Когда вы пытаетесь запустить этот двоичный файл на контроллере PLCnext, вы получаете:
./HelloWorld: cannot execute binary file: Exec format error
Это связано с тем, что архитектура машины Ubuntu и PLCnext не совпадают. К счастью, довольно легко создать двоичный файл, который работает для PLCnext (но учтите, что этот новый двоичный файл не будет работать на машине с Ubuntu). Когда вы устанавливаете среду сборки, как описано ниже. Go создаст двоичный файл, подходящий для PLCnext.
env GOOS=linux GOARCH=arm GOARM=7 go build
и для нашего примера это будет
env GOOS=linux GOARCH=arm GOARM=7 go build HelloWorld.go
Когда вы перенесете этот файл на контроллер и запустите его, вы должны снова увидеть всплывающее окно hello world, если это так, поздравляем. Вы написали свою первую программу Go для контроллера PLCnext! Взгляните на вызов REST API и измените его в соответствии со своими потребностями!
Проблема с предыдущим шагом?
Вы сделали исполняемый файл с помощью chmod +x HelloWorld ?
Пример "Привет, мир"
package main
import "fmt"
func main() {
fmt.Println("hello world")
}
go
Вызов 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} // 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))
}
Промышленные технологии
- Готовые контейнеры для кода:начало работы с инструментами автоматизации процессов в облаке
- Начало работы с керамической 3D-печатью
- Знакомство с основными красителями!
- Начало работы с TJBot
- Начало работы с RAK 831 Lora Gateway и RPi3
- Начало работы со шлюзом RAK831 LoRa и RPi3
- Начало работы с ИИ в страховании:вводное руководство
- Учебник по Arduino 01:Начало работы
- Начало работы с Eagle Group:что вам нужно знать
- Начало работы с My.Cat.com