亿迅智能制造网
工业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 的新文件,并将 HelloWorld 示例中的代码粘贴到文件中。保存文件并打开您的终端并确保您位于正确的目录中。

使用下面的命令,您将构建并运行您的 Go 代码。如果一切安装正确,Hello World 应该会显示在您的终端中。当您仍在构建应用程序时,您可以使用此命令。

go run HelloWorld.go 

就像我说的,也可以将代码构建为静态二进制文件。这是通过下面的第一个命令完成的,下一个命令运行新创建的二进制文件。如果一切顺利,你的终端会再次显示 hello world。

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 弹出,如果是这样,恭喜。你已经为 PLCnext 控制器编写了你的​​第一个 Go 程序!查看 REST API 调用并对其进行修改以满足您的需求!

上一步有问题?
您是否使用 chmod +x HelloWorld 使文件可执行?


Hello World 示例

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))
}


工业技术

  1. 请开始使用 Connext DDS - ELI5。
  2. 代码就绪容器:云端流程自动化工具入门
  3. 陶瓷 3D 打印入门
  4. 认识基本染料!
  5. TJBot 入门
  6. 开始使用 RAK 831 Lora Gateway 和 RPi3
  7. RAK831 LoRa 网关和 RPi3 入门
  8. 保险业人工智能入门:入门指南
  9. Arduino教程01:入门
  10. Eagle Group 入门:您需要了解的内容
  11. My.Cat.com 入门
  12. Node-RED 和 Docker 入门