工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 産業技術

PLCnextでGoアプリケーションを構築:初心者向けガイド

このブログでは、PLCnextでGo言語を使用してアプリケーションを構築する最初のステップをガイドします。Goに馴染みのない方のために、公式サイトwww.golang.orgから引用します。

Goを好む理由の1つは、Webアプリケーションを簡単に作成できるのに静的バイナリにコンパイルされるため、PLCnextコントローラにプログラムをデプロイする際にパッケージをインストールする必要がないことです。

このブログでは、PLCnext向けのクロスコンパイルのみを扱い、2つの小さなプログラムで示します。コンパイルが正常に動くか確認する定番のHello Worldプログラムと、Goの威力を示す小さなREST API呼び出しです。このブログ作成に使用した環境:

まずHello Worldアプリケーションから始めましょう。HelloWorld.goという新しいファイルを作成し、Hello Worldのサンプルコードを貼り付けて保存。ターミナルを開き、正しいディレクトリにいることを確認。以下のコマンドで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")
}

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. RAK 831 LoRaゲートウェイをRaspberry Pi 3に導入するステップバイステップガイド
  4. Raspberry Pi 3 と RAK831 モジュールで LoRa ゲートウェイを構築するステップバイステップガイド
  5. Arduino初心者チュートリアル01: 最初のプロジェクトを始めよう
  6. Eagle Groupを知る:コンセプトから完成まで一貫した高品質金属加工のパートナー
  7. セラミック3Dプリント実践ガイド:技術、材料、設計のコツ
  8. 保険業界における AI:実践的スターターガイド
  9. DockerでPLCnextにNode-REDをデプロイ:ステップバイステップガイド
  10. Code-Ready Containers:Red Hat OpenShiftによるクラウドネイティブプロセス自動化の実践ガイド
  11. 基本染料の理解:用途・安全性・産業応用