Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Промышленные технологии

Создание первого Go-приложения на PLCnext: руководство для начинающих

Блог проведёт через первые шаги создания Go-приложения на PLCnext. Для незнакомых с Go: golang.org. Преимущество Go — легко создавать веб-приложения, компилируемые в статический бинарник, не требующий установки пакетов на контроллере.

Рассмотрим компиляцию для PLCnext на двух программах: классический Hello World и REST API вызов. Использовалось:

Hello World

Создайте HelloWorld.go с кодом примера. Запуск для проверки:

go run HelloWorld.go

Сборка в статический бинарник:

go build HelloWorld.go
./HelloWorld

На PLCnext получите ошибку Exec format error — архитектуры не совпадают (Ubuntu x64 vs ARM). Легко исправить: задайте переменные окружения для кросс-компиляции под ARMv7 Linux:

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

Перенесите бинарник на контроллер, сделайте исполняемым (chmod +x HelloWorld) и запустите — появится "hello world". Поздравляю, первое Go-приложение для PLCnext готово!

Пример Hello World

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

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}
  MakeRequest()
}
func MakeRequest() {
  resp, err := http.Get("https://192.168.18.10/_pxc_api/api/variables?paths=Arp.Plc.Eclr/MainInstance.bInputs")
  if err != nil { log.Fatalln(err) }
  body, err := ioutil.ReadAll(resp.Body)
  if err != nil { log.Fatalln(err) }
  log.Println(string(body))
}

Измените IP и переменные под свои нужды.

Промышленные технологии

  1. Code-Ready Containers: практическое руководство по облачно-ориентированной автоматизации процессов с Red Hat OpenShift
  2. Практическое руководство по керамической 3D-печати: техники, материалы и советы по дизайну
  3. Понимание основных красителей: применение, безопасность и отраслевое использование
  4. Начало работы с TJBot: сборка, настройка и голосовое управление ИИ-роботом
  5. Пошаговое руководство по развертыванию LoRa-шлюза RAK 831 на Raspberry Pi 3
  6. Сборка LoRa-шлюза на модуле RAK831 и Raspberry Pi 3 — пошаговое руководство
  7. ИИ в страховании: практическое руководство для реального внедрения
  8. Урок Arduino для начинающих 01: Начало работы с первым проектом
  9. Откройте для себя Eagle Group: ваш партнер по качественному металлообработке
  10. Оптимизация техники Cat®: полное руководство по My.Cat.com