亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 工业技术

在 PLCnext 上构建首个 Go 应用:新手入门指南

本文指导您在 PLCnext 上构建 Go 应用的第一步。不熟悉 Go 的读者可参考官网 www.golang.org。

Go 的一大优势:易于创建 Web 应用,却能编译为静态二进制,部署到 PLCnext 无需安装额外依赖包。

本文仅涵盖针对 PLCnext 的交叉编译,包含两个小程序:经典 HelloWorld 验证编译流程,及一个 REST API 调用展示 Go 实力。制作过程中使用:

HelloWorld 入门

新建 HelloWorld.go 粘贴示例代码,保存。终端进入目录,运行:

go run HelloWorld.go

若安装正确将显示 "Hello World"。开发阶段可反复用此命令。

编译为静态二进制:

go build HelloWorld.go
./HelloWorld

再次显示 "hello world" 即成功。但直接在 PLCnext 运行该二进制会报错:

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

因 Ubuntu 与 PLCnext 架构不匹配。幸好易解决:设置构建环境变量即可生成适配 PLCnext 的二进制(注意:新二进制无法在 Ubuntu 运行)。

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

示例完整命令:

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

传输到控制器运行,再次看到 "hello world" 即成功!您已编写首个 PLCnext Go 程序。请尝试修改 REST API 示例适配您的需求!

遇到问题?
是否执行 chmod +x HelloWorld 赋予执行权限?

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} // 跳过 TLS 验证
    MakeRequest()
}
func MakeRequest() {
    resp, err := http.Get("https://192.168.18.10/_pxc_api/api/variables?paths=Arp.Plc.Eclr/MainInstance.bInputs") // 修改为您的 IP 和变量
    if err != nil { log.Fatalln(err) }
    body, err := ioutil.ReadAll(resp.Body)
    if err != nil { log.Fatalln(err) }
    log.Println(string(body))
}

工业技术

  1. 优化Cat®机械:My.Cat.com终极指南
  2. TJBot 入门指南:构建、配置与语音控制您的 AI 机器人
  3. 树莓派 3 部署 RAK 831 LoRa 网关分步指南
  4. 基于 RAK831 模块与树莓派 3 构建 LoRa 网关:分步指南
  5. Arduino入门教程01:开始你的第一个项目
  6. Eagle Group:从概念到成品的优质金属制造合作伙伴
  7. 陶瓷3D打印实操指南:技术、材料与设计技巧
  8. 保险业 AI 落地实战指南:从认知到规模化应用
  9. 在 PLCnext 上用 Docker 部署 Node-RED:分步实战指南
  10. Code-Ready Containers实战指南:基于Red Hat OpenShift的云原生流程自动化
  11. Connext DDS 101:新手入门完全指南
  12. 碱性染料认知全景:用途、安全红线与跨行业应用