色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

DDT變量鏈接到定位變量方法

藍牙 ? 來源:工控論壇 ? 作者: 董偉 ? 2021-08-10 09:52 ? 次閱讀

一、概述

工業控制系統使用中,上位機組態軟件、HMI觸摸屏等顯示設備與控制設備PLC按指定通訊協議進行數據交換是最為基本的功能了,以施耐德Modbus TCP協議為例,只要提供了支持此協議的PLC中變量的Modbus寄存器地址和數據類型,不管此PLC是哪個廠家的,都能實現HMI與PLC之間的數據交換。

二、問題的引出

目前PLC編程的主流思路不再是使用基于絕對地址的定位變量了,而是使用變量名+數據類型的非定位變量方式。以施耐德M580為例,其X80的I/O模塊的通道值都是用Device DDT非定位變量表示的,并且不能直接指定%M、%MW等地址與其對應上。

這種表示方式對于OPC DA/UA及施耐德自己的HMI觸摸屏來說沒有什么問題,可以直接對應上,但是對于支持標準Modbus TCP協議的其它廠家觸摸屏和上位機組態軟件來說就不方便了,因為需要變量對應上標準Modbus寄存器地址才行。

三、解決辦法

孔乙己說過,回字有四種寫法。同樣的,解決上述問題也有多種方法可以實現。思路是將M580里面的DDT地址對應到%M及%MW寄存器中,從而能和HMI進行MODBUS TCP通訊,

3.1復制 Device DDT變量類型直接鏈接絕對地址

此種方法的思路是新建一個結構體變量,類型輸入與X80 I/O模塊數據類型一致如T_U_DIS_STD_IN_32,然后編寫程序鏈接上絕對地址如%MW10,詳見下圖:

d75927e0-f86d-11eb-9bcf-12bb97331649.png

3.2 ST編程FOR循環鏈接絕對地址

第一種方法比較費地址數量,適用于I/O模塊不多,地址富余的工程項目。

如果I/O模塊過多,可以嘗試利用FOR循環編程批量鏈接地址的方式,如下圖:每一個I/O模塊使用一個FOR循環指令,將通道值(.VALUE)鏈接到%M或者%MW寄存器地址。

這種方式的優勢在于省寄存器地址,不像方法1,不管開關量還是模擬量,都必須關聯%MW寄存器地址,而且不需要的狀態等DDT變量也必須鏈接%MW寄存器地址。不過,ST編程FOR循環鏈接絕對地址有一個缺點,就是因為DDT變量名稱太過接近并且I/O模塊通道數不一樣,修改的時候容易眼花誤操作。

3.3編寫自定義DFB功能塊鏈接絕對地址

舉例32通道點X80的DI模塊,DDT中變量眾多,我們只需要轉換32個通道數值即可;

新建DFB塊DI_EXCHANGE,輸入管腳DI_INT,數據類型T_U_DIS_STD_IN_32(調用DFB時,輸入就可只填寫MOD_DIS_32_2),輸出管腳DO_OUT,數據類型ARRAY[0..31] OF EBOOL;

編寫邏輯程序,采用ST編程方式,把輸入點的值一個一個賦值到輸出,鏈接到%M寄存器,然后在MAST里面程序段中調用DI_EXCHANG即可,實現32點的DI模塊的通道值批量鏈接到了%M中。

同樣的,32點DO模塊的處理方法是類似的,新建X80_DDO_32,定義輸入IN1,數據類型T_U_DIS_STD_OUT_32,輸出OUT1,OUT2,數據類型INT,編寫ST程序鏈接上%M寄存器,在MAST里面調用新建的功能塊X80_DDO_32即可。

這些DFB功能塊做好后直接右鍵導出的功能塊類型XDB格式,可以再導入到其它程序段中直接調用即可,移植方便,無須再次制作此DFB塊。

四 小結

針對M580的X80 I/O模塊的通道值都是用Device DDT非定位變量表示,并且不能直接指定%M、%MW等地址與其對應上,但是觸摸屏和上位機組態軟件來說需要變量對應上標準Modbus寄存器地址的問題,提出了3種解決方法。這3種方法特點明確,各有優劣。

復制 Device DDT變量類型直接鏈接絕對地址法簡單明晰,適合剛入施耐德編程大門的初級工程師;ST編程FOR循環鏈接絕對地址法和編寫自定義DFB功能塊鏈接絕對地址法對工程師編程水平要求稍高,通用性更強,適合對施耐德Unity軟件編程操作有一定了解的工程師使用。

不管白貓還是黑貓,能夠抓住老鼠的貓就是好貓,同樣,不管使用何種方法操作,能耐解決實際問題就是工程師能力的體現,解決上述問題的方法也不止這三種,更多的可能性等待你去探索實踐。

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • plc
    plc
    +關注

    關注

    5016

    文章

    13385

    瀏覽量

    464827
  • DFB
    DFB
    +關注

    關注

    1

    文章

    27

    瀏覽量

    9933
  • OPC
    OPC
    +關注

    關注

    7

    文章

    350

    瀏覽量

    46285
  • HMI
    HMI
    +關注

    關注

    9

    文章

    597

    瀏覽量

    48658

原文標題:施耐德M580系列的X80 I/O模塊通道值非定位Device DDT變量鏈接到定位變量方法

文章出處:【微信號:TalkBT,微信公眾號:藍牙】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    圖紙模板中的文本變量

    “ ?文本變量和系統自帶的內置變量,可以幫助工程師靈活、高效地配置標題欄中的信息,而不用擔心模板中的文字對象被意外修改。 ? ” 文本變量的語法 文本變量以?${VARIABLENAM
    的頭像 發表于 11-13 18:21 ?213次閱讀
    圖紙模板中的文本<b class='flag-5'>變量</b>

    如何在文本字段中使用上標、下標及變量

    在KiCad的任何文本字段中,都可以通過以下的方式實現上標、下標、上劃線以及顯示變量及字段值的描述: 文本變量“文本變量”可以在 原理圖設置->工程->文本變量 中設置。下圖中設置了一
    的頭像 發表于 11-12 12:23 ?167次閱讀
    如何在文本字段中使用上標、下標及<b class='flag-5'>變量</b>

    Linux環境變量配置方法

    Linux上環境變量配置分為設置永久變量和臨時變量兩種。環境變量設置方法同時要考慮環境Shell類型,不同類型的SHELL設置臨時
    的頭像 發表于 10-23 13:39 ?210次閱讀

    Xilinx設計工具怎么設置環境變量

    如果您不確定如何設置環境變量,嘗試"1" 或 "TRUE"。
    的頭像 發表于 10-22 13:32 ?248次閱讀

    Keil中變量不被初始化方法

    有些時候在我們的應用過程中要求變量有連續性,或者現場保留,例如Bootloader跳轉,某種原因的復位過程中我們有些關鍵變量不能被初始化,在不同的編譯環境下有不同的設置,本文就這個操作做總結,分別
    的頭像 發表于 08-30 11:47 ?797次閱讀
    Keil中<b class='flag-5'>變量</b>不被初始化<b class='flag-5'>方法</b>

    請問頭文件能不能定義變量呢?

    最近在編譯一個工程的時候,突然遇到了變量重復定義的問題,根據提示打開這幾個 C 文件,并沒有發現定義變量的地方。后來再找一找,原來變量定義在了頭文件里面。
    的頭像 發表于 04-28 09:33 ?1239次閱讀

    全局變量太多有哪些弊端?

    隨著全局變量的增多,不同模塊的變量名可能會產生沖突或混淆,導致代碼難以理解和維護。同時,全局變量使得代碼中的依賴關系變得復雜,難以追蹤和理解。這增加了新開發人員的學習成本,也增加了修改和調試的難度。
    發表于 04-24 09:15 ?940次閱讀

    鴻蒙TypeScript入門學習第4天:【TS變量聲明】

    變量是一種使用方便的占位符,用于引用計算機內存地址。 我們可以把變量看做存儲數據的容器。
    的頭像 發表于 03-29 14:49 ?1460次閱讀

    TSMaster如何同時記錄標定變量和DBC信號至BLF文件

    客戶在使用TSMaster軟件標定功能時,有如下使用場景:將DBC文件中的信號與A2L文件中的標定變量同時記錄在一個記錄文件。針對此應用場景,TSMaster軟件提供了一種方法來滿足此需求。今天重點
    的頭像 發表于 03-25 08:20 ?826次閱讀
    TSMaster如何同時記錄標定<b class='flag-5'>變量</b>和DBC信號至BLF文件

    C語言變量應用詳解

    變量其實只不過是程序可操作的存儲區的名稱。C 中每個變量都有特定的類型,類型決定了變量存儲的大小和布局,該范圍內的值都可以存儲在內存中,運算符可應用于變量上。
    發表于 03-18 11:18 ?453次閱讀
    C語言<b class='flag-5'>變量</b>應用詳解

    字符型、指針型等變量等該如何初始化

     對于數值類型的變量往往初始化為0,但對于其他類型的變量,如字符型、指針型等變量等該如何初始化呢?
    的頭像 發表于 03-18 11:02 ?1597次閱讀

    C語言中的三種形式變量

    局部變量是在一個函數、代碼塊內部聲明的變量,只能被該函數或者代碼塊內部應用。局部變量在函數之外不可用。
    發表于 03-11 17:34 ?791次閱讀
    C語言中的三種形式<b class='flag-5'>變量</b>

    電阻應變片形變量有多大?電阻應變片能承受的拉應變最大是多少?

    可以通過計算材料的拉伸或壓縮來確定。下面將詳細介紹電阻應變片的形變量及其計算方法。 首先,我們需要了解一些基本概念。應變是指物體在受到外力作用后發生的形變。在拉伸力作用下,材料會發生橫向收縮,使其長度變化;在壓
    的頭像 發表于 02-04 15:11 ?1764次閱讀

    Tasking的鏈接選項配置,怎樣影響const變量的地址定位

    Tasking的鏈接選項 配置 怎樣影響 const 變量的地址定位
    發表于 02-02 09:19

    Linux系統中設置環境變量方法和技巧

    在Linux中環境變量是一種保存有關系統環境配置的信息的對象。它們被廣泛用于存儲有關系統操作的信息比如路徑、文件名等。通過合理配置環境變量我們可以方便地訪問和執行各種命令和程序。
    的頭像 發表于 02-01 11:09 ?1743次閱讀
    Linux系統中設置環境<b class='flag-5'>變量</b>的<b class='flag-5'>方法</b>和技巧
    主站蜘蛛池模板: 日韩欧美一级 | 久久精品动漫99精品动漫 | 农民工老头在出租屋嫖老熟女 | 四虎影视永久无码精品 | 好大好硬好爽好深好硬视频 | 熟女久久久久久久久久久 | 日韩精品久久久久影院 | 欧美乱妇15p图 | 亚洲一级毛片免费在线观看 | 色婷婷国产精品视频一区二区三区 | 嫩草影院永久在线一二三四 | 欧美多毛的大隂道 | 高清国产激情视频在线观看 | 久久久精品免费免费直播 | 国产女人视频免费观看 | 精品一区二区三区免费观看 | 国模丽丽啪啪一区二区 | 男人狂躁进女人免费视频公交 | 久久久久综合 | 国产AV一区二区三区日韩 | 国产精品久久久久久影院 | 我的美女奴隶 | 国产午夜在线精品三级a午夜电影 | 一品道门在线视频 | 99影视久久电影网久久看影院 | 漂亮的av女演员 | 一道本无吗d d在线播放 | 亚洲无碼网站观看 | 欧美日韩视频一区二区三区 | 韩国无遮羞禁动漫在线观看96 | 起碰免费公开97在线视频 | 性美国人xxxxx18 | 2018高清国产一区二区三区 | 最近中文字幕MV免费高清视频8 | 国产亚洲精品久久精品录音 | 色色色999| metart中国撒尿人体欣赏 | 欧美大片免费观看 | 国产99精品在线观看 | 99久久国产露脸国语对白 | 在线a亚洲视频 |