日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          "); //-->

          博客專欄

          EEPW首頁 > 博客 > 通過 Docker 部署測(cè)試 CODESYS PLC示例

          通過 Docker 部署測(cè)試 CODESYS PLC示例

          發(fā)布人:toradex 時(shí)間:2025-07-22 來源:工程師 發(fā)布文章

          By Toradex 秦海

          簡介

          CODESYS 是基于 IEC 61131-3 的 PLC 開發(fā)工具,在工業(yè)控制、交通等領(lǐng)域中有著廣泛的應(yīng)用。在之前的文章中介紹了通過 Yocto Linux BSP 環(huán)境下部署 CODESYS Control Runtime 環(huán)境的示例,本文則著重測(cè)試如何通過 Docker 環(huán)境來進(jìn)行部署測(cè)試。

          本文所演示的平臺(tái)來自于 Toradex Verdin i.MX8MP 嵌入式平臺(tái)


          準(zhǔn)備

          a). Verdin i.MX8MP ARM核心版配合Dahlia 載板,并連接調(diào)試串口和 HDMI 顯示器用于測(cè)試


          BSP 配置

          a). 參考這里文章說明,下載適用于 Verdin iMX8MP 的 TorizonOS 7.x BSP Image 并通過 Toradex Easy Installer 安裝到 Verdin i.MX8MP 模塊,因?yàn)?nbsp;CODESYS 需要 Linux 包含實(shí)時(shí)補(bǔ)丁,因此請(qǐng)使用 Torizon OS 7 PREEMPT_RT 版本

          b). TorizonOS 默認(rèn)使能了 Docker 環(huán)境,可以非常方便的安裝和測(cè)試各種 Docker Image


          CODESYS Development System 下載安裝

          a). 通過 CODESYS Store 下載安裝 CODESYS Installer

          b). 通過 CODESYS Installer 安裝最新版本的 CODESYS Development System

          c). 安裝 Virtual Control for Linux SL Addon


          d). 運(yùn)行上述安裝的 CODESYS IDE,然后點(diǎn)擊菜單欄 Tools > Device Repository:

          e). 在 Device Repository 窗口點(diǎn)擊 Install... 按鍵并選擇  virtuallinux device descriptor 文件:

          C:\Program Files\CODESYS 3.5.21.10\CODESYS\CODESYS Virtual Control for Linux SL\4.16.0.0\Devices\AddOns\CODESYS Virtual Control for Linux SL\virtuallinuxarm64\4.16.0.0\codesyscontrol.devdesc.xml


          CODESYS Control Runtime Docker Image 安裝運(yùn)行

          a). 通過上述 CODESYS Development System 安裝文件獲取已經(jīng)預(yù)編譯好的 CODESYS Control Docker Image (根據(jù)具體需要部署的硬件選擇正確的架構(gòu),這里 Verdin i.MX8MP 是 ARM64 架構(gòu))

          C:\Program Files\CODESYS 3.5.21.10\CODESYS\CODESYS Virtual Control for Linux SL\Delivery\virtuallinuxarm64\Docker_codesyscontrol_virtuallinuxarm64_4.16.0.0_arm64.tar.gz


          b). 當(dāng)然安裝文件中也提供了可以自行生成 Docker Image 的所需文件,也可以自行修改重新編譯生成定制化的 Docker Image 壓縮包

          C:\Program Files\CODESYS 3.5.21.10\CODESYS\CODESYS Virtual Control for Linux SL\Delivery\virtuallinuxarm64\
          ./ Dockerfile - Dockerfile_codesyscontrol_virtuallinuxarm64_4.16.0.0
          ./ CODESYS Control DEB package - codesyscontrol_virtuallinuxarm64_4.16.0.0_arm64.deb
          ./ License - Docker_copyright_codesyscontrol_virtuallinuxarm64_4.16.0.0
          C:\Program Files\CODESYS 3.5.21.10\CODESYS\CODESYS CodeMeter for Linux SL\Delivery\
          ./ Codemeter DEB package - codemeter-lite_8.20.6539.500_arm64.deb


          c). 將 Docker_codesyscontrol_virtuallinuxarm64_4.16.0.0_arm64.tar.gz 復(fù)制到 Verdin i.MX8MP

          d). 在 Verdin i.MX8MP 安裝 CODESYS Control Docker Image

          torizon@verdin-imx8mp-06849028:~$ docker load -i Docker_codesyscontrol_virtuallinuxarm64_4.16.0.
          0_arm64.tar.gz
          torizon@verdin-imx8mp-06849028:~$ docker images
          REPOSITORY                         TAG        IMAGE ID       CREATED        SIZE
          codesyscontrol_virtuallinuxarm64   4.16.0.0   a79637a6eef3   6 weeks ago    239MB


          e). 在 Verdin i.MX8MP 運(yùn)行 CODESYS Control Docker Image

          ./ 創(chuàng)建 Docker Image 運(yùn)行需要的 mount 目錄:

          torizon@verdin-imx8mp-06849028:~$ cd ~
          torizon@verdin-imx8mp-06849028:~$ mkdir -p dockerMount/conf/codesyscontrol/
          torizon@verdin-imx8mp-06849028:~$ mkdir -p dockerMount/data/codesyscontrol/


          ./ 通過下面命令運(yùn)行 Docker Image,請(qǐng)注意下面命令僅用于演示測(cè)試,如果實(shí)際應(yīng)用部署則需要考慮安全權(quán)限設(shè)置,一個(gè)更完善的啟動(dòng)腳本可以參考這里

          torizon@verdin-imx8mp-06849028:~$ docker run --rm -dt --name codesys --network host -v ~/dockerMount/conf/codesyscontrol/:/conf/codesyscontrol/ \
          -v ~/dockerMount/data/codesyscontrol/:/data/codesyscontrol/ --privileged codesyscontrol_virtuallinuxarm64:4.16.0.0
          torizon@verdin-imx8mp-06849028:~$ docker ps
          CONTAINER ID   IMAGE                                       COMMAND                  CREATED     
             STATUS          PORTS     NAMES
          9ff098e3641f   codesyscontrol_virtuallinuxarm64:4.16.0.0   "/opt/codesys/script…"   47 seconds a
          go   Up 46 seconds             codesys


          ./ 另外,也可以通過如下命令查看 Docker Image 啟動(dòng)內(nèi)部運(yùn)行 log 信息:

          torizon@verdin-imx8mp-06849028:~$ docker logs codesys


          CODESYS PLC 示例應(yīng)用開發(fā)和部署

          a). 在 CODESYS IDE 下創(chuàng)建 New Project

          ./ 填寫 Project Name 和 Location

          ./ 填寫 Device PLC_PRG

          ./ New Project 創(chuàng)建成功,雙擊左側(cè)項(xiàng)目窗口 “Device (CODESYS Virtual Control for Linux ARM64 SL)” 條目,打開 Devices 頁面后,點(diǎn)擊 Scan Network


          ./ 此時(shí)點(diǎn)擊找到的 verdin-imx8mp 設(shè)備并點(diǎn)擊確定,設(shè)備就已經(jīng)成功連接

          b). 接下來具體實(shí)現(xiàn) Lamp/Dip Switch 示例應(yīng)用的過程可以參考這里說明。

          c). 項(xiàng)目設(shè)計(jì)完成后,點(diǎn)擊 Online->Login 進(jìn)行項(xiàng)目下載(如果之前沒有創(chuàng)建賬戶這里會(huì)要先創(chuàng)建)

          d). Login并下載 PLC 應(yīng)用到設(shè)備后,即可以通過點(diǎn)擊 Play/Stop 按鍵來運(yùn)行或者停止示例應(yīng)用了


          e). 在項(xiàng)目運(yùn)行時(shí),在 PC 瀏覽器中可以通過輸入如下網(wǎng)址可以通過 WebVisualization 功能來顯示 PLC 示例應(yīng)用了

          http://<ip_address_verdin_imx8mp>:8080/webvisu.htm

          f). 同時(shí),也可以通過在 Verdin i.MX8MP 設(shè)備上面啟動(dòng) Weston 和 Browser (chromium/Crog) Docker Image 來顯示。本文以 Cog Browser 為例,更多瀏覽器相關(guān)說明可以參考這里

          ### start weston docker image ###
          torizon@verdin-imx8mp-06849028:~$ docker container run -d --name=weston --net=host \
            --cap-add CAP_SYS_TTY_CONFIG \
            -v /dev:/dev -v /tmp:/tmp -v /run/udev/:/run/udev/ \
            --device-cgroup-rule="c 4:* rmw" --device-cgroup-rule="c 253:* rmw" \
            --device-cgroup-rule="c 13:* rmw" --device-cgroup-rule="c 226:* rmw" \
            --device-cgroup-rule="c 10:223 rmw" --device-cgroup-rule="c 199:0 rmw" \
            torizon/weston-imx8:4 \
            --developer
          ### start Cog browser docker image ###
          torizon@verdin-imx8mp-06849028:~$ docker run -d --rm --name=cog \
            -v /tmp:/tmp -v /var/run/dbus:/var/run/dbus \
            -v /dev/dri:/dev/dri --device-cgroup-rule='c 226:* rmw' \
            torizon/cog:$CT_TAG_COG \
            http://<ip_address_verdin_imx8mp>:8080

          g). 利用 docker-compose 來一次性啟動(dòng)上述的三個(gè) Docker Image

          ./ docker-compose.yml:

          services:
          weston:
            image: torizon/weston-imx8:4
            container_name: weston
            environment:
              - ACCEPT_FSL_EULA=1
            network_mode: host
            restart: unless-stopped
            cap_add:
              - CAP_SYS_TTY_CONFIG
            volumes:
              - type: bind
                source: /tmp
                target: /tmp
              - type: bind
                source: /dev
                target: /dev
              - type: bind
                source: /run/udev
                target: /run/udev
            device_cgroup_rules:
              - 'c 4:* rmw'
              - 'c 253:* rmw'
              - 'c 13:* rmw'
              - 'c 226:* rmw'
              - 'c 10:223 rmw'
              - 'c 199:0 rmw'
            command: --developer

          codesys:
            image: codesyscontrol_virtuallinuxarm64:4.16.0.0
            container_name: codesys
            network_mode: host
            privileged: true
            volumes:
              - type: bind
                source: /home/torizon/dockerMount/conf/codesyscontrol
                target: /conf/codesyscontrol
              - type: bind
                source: /home/torizon/dockerMount/data/codesyscontrol
                target: /data/codesyscontrol
            tty: true

          cog:
            image: torizon/cog:4
            container_name: cog
            network_mode: host
            depends_on:
              - codesys
              - weston
            volumes:
              - type: bind
                source: /tmp
                target: /tmp
              - type: bind
                source: /var/run/dbus
                target: /var/run/dbus
              - type: bind
                source: /dev/dri
                target: /dev/dri
            device_cgroup_rules:
              - 'c 226:* rmw'
            command: http://<ip_address_verdin_imx8mp>:8080


          ./ 啟動(dòng) docker-compose.yml:

          ./ torizon@verdin-imx8mp-06849028:~$ docker-compose up -d

          ./ 如果配置 docker-compose.yml 開機(jī)自啟動(dòng),可以參考這里。

          總結(jié)

          本文基于 NXP i.MX8MP 處理器平臺(tái)演示了通過 Docker 方式來測(cè)試部署 CODESYS PLC 示例應(yīng)用。


          *博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉