哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

藍(lán)牙 ? 來源:工控論壇 ? 作者: 董偉 ? 2021-08-10 09:52 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、概述

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

二、問題的引出

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

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

三、解決辦法

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

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

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

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

3.2 ST編程FOR循環(huán)鏈接絕對地址

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

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

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

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

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

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

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

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

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

四 小結(jié)

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

復(fù)制 Device DDT變量類型直接鏈接絕對地址法簡單明晰,適合剛?cè)胧┠偷戮幊檀箝T的初級工程師;ST編程FOR循環(huán)鏈接絕對地址法和編寫自定義DFB功能塊鏈接絕對地址法對工程師編程水平要求稍高,通用性更強,適合對施耐德Unity軟件編程操作有一定了解的工程師使用。

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

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • plc
    plc
    +關(guān)注

    關(guān)注

    5052

    文章

    14783

    瀏覽量

    488398
  • DFB
    DFB
    +關(guān)注

    關(guān)注

    1

    文章

    34

    瀏覽量

    10322
  • OPC
    OPC
    +關(guān)注

    關(guān)注

    7

    文章

    373

    瀏覽量

    49397
  • HMI
    HMI
    +關(guān)注

    關(guān)注

    9

    文章

    726

    瀏覽量

    52267

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

文章出處:【微信號:TalkBT,微信公眾號:藍(lán)牙】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    如何為 S32DS 中的特定變量(RAM、閃存、數(shù)據(jù)閃存)強制使用特定內(nèi)存區(qū)域?

    我正在使用S32K358并使用S32 設(shè)計工作室 (S32DS)作為我的 IDE。我想預(yù)留特定內(nèi)存區(qū)域?qū)τ谀承?b class='flag-5'>變量,并確保這些分配是在構(gòu)建期間不受編譯器或鏈接器的影響——尤其是當(dāng)項目后期引入新變量
    發(fā)表于 04-16 06:52

    飛凌嵌入式ElfBoard-環(huán)境變量之刪除清空環(huán)境變量environ

    使用這種方法,除非明確知道這么操作是為了做什么。因此,最好在需要清除某個特定環(huán)境變量時使用 unsetenv()函數(shù)顯式地刪除它,以釋放其占用的內(nèi)存。
    發(fā)表于 03-26 10:23

    飛凌嵌入式ElfBoard-環(huán)境變量之添加修改環(huán)境變量putenv

    在shell中有許多方法能夠修改環(huán)境變量,例如export,set等命令;要永久修改環(huán)境變量,也可以將 export 相關(guān)語句添加到用戶的 ~/.bashrc 或 ~/.bash_profile
    發(fā)表于 03-26 09:22

    飛凌嵌入式ElfBoard-環(huán)境變量之獲取環(huán)境變量

    在shell命令行中可以通過多種方式查看環(huán)境變量;shell本身就是一個進(jìn)程,子進(jìn)程會繼承父進(jìn)程的環(huán)境變量副本,可以直接通過env命令查看當(dāng)前shell進(jìn)程的所有環(huán)境變量;如果想查看特定進(jìn)程
    發(fā)表于 03-13 08:50

    如何在EtherCAT從站上增加模擬量輸入AI變量

    要在EtherCAT從站增加模擬量輸入AI變量,首先需更新從站設(shè)備程序,定義新的AI變量并初始化。
    的頭像 發(fā)表于 03-11 16:30 ?215次閱讀
    如何在EtherCAT從站上增加模擬量輸入AI<b class='flag-5'>變量</b>

    “明牌”對局,自變量開源模型超越pi0

    “明牌”對局,自變量開源模型超越pi0
    的頭像 發(fā)表于 01-10 12:00 ?5738次閱讀
    “明牌”對局,自<b class='flag-5'>變量</b>開源模型超越pi0

    用戶對變量或寄存器進(jìn)行位操作的方法

    嵌入式系統(tǒng)總是要用戶對變量或寄存器進(jìn)行位操作。給定一個整型變量a,寫兩段代碼,第一個設(shè)置a的bit 3,第二個清除a 的bit 3。在以上兩個操作中,要保持其它位不變。 考察點: 1:不知道
    發(fā)表于 12-23 08:16

    C語言全局變量重點使用

    重要的循環(huán)中我們不建議使用全局變量。 如果函數(shù)過多的使用全局變量,比較好的做法是拷貝全局變量的值到局部變量, 這樣它才可以存放在寄存器。這種方法
    發(fā)表于 12-12 06:58

    第7章 變量進(jìn)階與點陣LED(7.1 7.2)

    走在馬路上的時候,經(jīng)常會看到馬路兩側(cè)有一些LED點陣的廣告牌,這些廣告牌看起來絢爛奪目,非常吸引人,而且還會變化很多種不同的顯示方式。本章就會學(xué)習(xí)到點陣LED的控制方式,同時也會學(xué)習(xí)C語言變量的進(jìn)階
    的頭像 發(fā)表于 12-10 16:25 ?483次閱讀

    常用變量的介紹

    extern:用在全局變量上表示該變量在其他文件中已經(jīng)定義;用在函數(shù)上作用同全局變量; static:用在全局變量上,和非靜態(tài)全局變量相比,
    發(fā)表于 11-21 07:05

    變量控件實驗

    數(shù)據(jù)、變量、數(shù)字等等顯示。2、實驗設(shè)備下載軟件一個,HMIMaker下載軟件鏈接,http://www.gz-yixian.com/Download.asp,單片機智能
    的頭像 發(fā)表于 11-20 15:04 ?2259次閱讀
    <b class='flag-5'>變量</b>控件實驗

    影響同步帶模組成本的五大核心變量分析

    影響同步帶模組成本的五大核心變量
    的頭像 發(fā)表于 10-15 17:52 ?742次閱讀
    影響同步帶模組成本的五大核心<b class='flag-5'>變量</b>分析

    PLC中Static和Temp變量的區(qū)別

    大家好,收到粉絲投稿,讓博主講下Static變量和Temp變量的區(qū)別,新入行的兄弟可能會對這兩個概念不太能理解。
    的頭像 發(fā)表于 09-24 14:51 ?1610次閱讀
    PLC中Static和Temp<b class='flag-5'>變量</b>的區(qū)別

    邊聊安全 | 以L3級自動駕駛為例,詳解DDTDDT Fallback、MRC、MRM概念

    以L3級自動駕駛為例,詳解DDT、DDTFallback、MRC、MRM概念寫在前面:在自動駕駛技術(shù)迅猛發(fā)展的今天,動態(tài)駕駛?cè)蝿?wù)(DDT)及其后備(DDTfallback)成為理解自動駕駛系統(tǒng)運作
    的頭像 發(fā)表于 09-05 16:20 ?5128次閱讀
    邊聊安全 | 以L3級自動駕駛為例,詳解<b class='flag-5'>DDT</b>、<b class='flag-5'>DDT</b> Fallback、MRC、MRM概念

    如何使用CYW20819和ModusToolbox?在閃存中的固定位定位變量?

    我正在使用 CYW20819 和ModusToolbox?并嘗試在閃存中的固定位定位變量。 我該怎么做? 我想我需要在鏈接器文件中定義一個部分,然后使用 CY_SECTION 命
    發(fā)表于 07-02 06:57
    崇仁县| 晋州市| 中山市| 怀集县| 镇平县| 城市| 墨玉县| 万盛区| 山东| 唐河县| 石柱| 嘉荫县| 禄丰县| 滦南县| 荣成市| 喜德县| 时尚| 绍兴县| 自治县| 祁连县| 清水河县| 合作市| 新民市| 海城市| 万盛区| 芦山县| 林周县| 周至县| 岳普湖县| 阿瓦提县| 乌兰察布市| 肇庆市| 英德市| 彭州市| 德江县| 龙陵县| 新龙县| 南召县| 九江市| 苏尼特左旗| 根河市|