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

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

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

最難還是模擬量

opkgjew ? 來源:PLC標(biāo)準(zhǔn)化編程 ? 2023-03-25 10:21 ? 次閱讀

說句實話,一開始,和大家一樣,我對模擬量是不太當(dāng)回事的。

我現(xiàn)在正在做的把LBP的架構(gòu)從S7-1500移植到S7-1200,然后再到SMART 200 +KTP觸摸屏。做了其它的塊,但對模擬量是不在乎的。心里想,自己都有80模擬量的標(biāo)準(zhǔn)答案例程在手了, 就沒必要在這方面多花心思了。 需要的時候隨時可以拿出來把例程的程序用上快速的很。

所以,就越過了模擬量, 想動手搞PID塊的移植。

但卻感覺無從下手。 那些參數(shù)值設(shè)定值和運行值的處理,完全沒有感覺。不知道對LBP的PID塊該如何解耦,哪些部分改掉換成SMART自己的控制, 哪些部分借用。

所以決定, 還是先把模擬量部分完善了吧!

然而一旦動手開始搞了,才發(fā)現(xiàn)這里面的問題反而是最多的。

當(dāng)然,這里講到的問題并不是說原本我做的80模擬量的例子錯了,或者不夠完善,不夠標(biāo)準(zhǔn)答案。

那里展示的只是調(diào)用的過程。

而我現(xiàn)在在做的就是FB塊的處理。 例子里面用到的那個模擬量處理的程序塊,功能還是太簡單了。

反對把物理單位作為一個參數(shù),還要在觸摸屏上運行中或者設(shè)計模式進行修改。 然而即便去掉了單位, 對一個模擬量的處理,也還是有許多參數(shù)的。

在對LBP的程序塊進行簡化以后,它需要的參數(shù)分別有:

SP_rangeBegin 量程下限
SP_rangeEnd 量程上限
SP_limitAH 高報警
SP_limitWH 高警告
SP_limitWL 低警告
SP_limitAL 低報警
SP_timeout 超時時間
SP_hysteresis 遲滯區(qū)間

其中前兩者用于標(biāo)定量程范圍, 3-6用于判斷觸發(fā)報警,7-8用于對報警的遲滯處理。

有人或許會覺得啰嗦,就簡單標(biāo)定下量程的事, 搞這么復(fù)雜有意義嗎?

是的, 如果你還只是剛?cè)腴T階段實現(xiàn)控制任務(wù)就萬事大吉, 有人提出整改意見的時候再專心整改,那確實沒啥。

但如果你希望有一個一勞永逸的標(biāo)準(zhǔn)化的設(shè)計,但凡客戶有可能提出的刁難問題,都提前想到,都事先做在里面,就有必要提前做些準(zhǔn)備了。 多做比不做強,做了不用比用到的時候發(fā)現(xiàn)沒有相應(yīng)的功能而需要臨時打補丁,要強。

比如量程,如果設(shè)備運行期間有需要進行校準(zhǔn),那么就會有需求要你給做成參數(shù)。 而如果系統(tǒng)中有模擬量不僅僅用于顯示,還要參與邏輯判斷, 那么多數(shù)情況下需要比較限定值后做出邏輯處理,那么就有了限定值參數(shù)和遲滯參數(shù)的需求。 哪怕系統(tǒng)中只有個別模擬量有需要,也應(yīng)該盡量全部都做到,即為標(biāo)準(zhǔn)化。

而這些參數(shù)值,一方面需要運行中修改設(shè)定,另一方面又不可能全部指望下載程序后在運行畫面中輸入?yún)?shù)。 最理想的方式是,參數(shù)需要有一個初始值。 這個初始值未必準(zhǔn)確,未必符合最終設(shè)備運行需要的參數(shù),但它至少有個八九不離十,大致可用。 總比一開機全部都是0, 全部都是報警提示要好得多。

有過軟件開發(fā)的程序員都應(yīng)該了解這樣一個常識,所有軟件安裝后都要有一個初始配置。 比如微信軟件安裝后,會有基本的字體和配色,然而可以個性化修改設(shè)定。

對應(yīng)到工業(yè)系統(tǒng)工業(yè)設(shè)備,也存在一樣的需求。

然而,凡是對PLC編程有一定了解的人,都會知道,這個事情沒那么容易。 比如FB的IN管腳上一個參數(shù)值,你如果調(diào)用時給賦值了實參作為初始值,那么運行中就不再可以修改。 除非修改程序源代碼完全重新下載程序。

而如果不給設(shè)置實參, 那么它就會以統(tǒng)一的初始值,大部分為0。而且FB的多個實例之間還都是同一套初始值配置。

所以,要兼具上述兩種功能的話,上述的參數(shù)值其實需要2套,分別對應(yīng)上述的功能。 那么在程序初次運行時,先采用初始值,而后運行中這個值才可以修改。

對于模擬量信號,后面的3-8條重要程度低一些,甚至可以統(tǒng)一設(shè)置,比如限制值都分別設(shè)置為90%, 80%, 20%, 10%,總差不多。

然而量程的上下限,則只能分成2套了。

由此,我在SMART 200中規(guī)劃的模擬量函數(shù)庫的變量接口表:

978a364e-cab3-11ed-bfe3-dac502259ad0.png

這是已經(jīng)做到了極致的簡化,已經(jīng)沒有再簡化的余地了。

然而看到,最后一個變量的地址是LD55, 即用到了LB58,已經(jīng)接近了SMART子程序的上限。后面只剩下 LB59一個BYTE了。

即地址空間已經(jīng)用光了,再無空間可用了。

問題就出現(xiàn)在了這里。

我按照LBP的架構(gòu)功能實現(xiàn)的邏輯,其中有LOG15功能記錄了設(shè)備的運行記錄,最終觸摸屏顯示這個記錄時, 需要這個記錄的地址指針。 應(yīng)該是一個DWORD, 原本是在L1層中生成的,需要輸出到其OUT管腳, 外層使用這個管腳獲得地址。

然而因為SMART 200的資源限制,我已經(jīng)窮困到程序塊中接收這個地址的TEMP變量都沒有了。

所以迫不得已,我只好暫時先用了一個MD20的變量做了傳遞。

97abf5c2-cab3-11ed-bfe3-dac502259ad0.png

97b91d38-cab3-11ed-bfe3-dac502259ad0.png

我實在是太難了!

因為這一段的功能,是LBP也尚未考慮到的,所以多出來的邏輯還是自己再想辦法實現(xiàn)的。

有人會替我擔(dān)憂我在子程序塊中使用了M變量,是否會帶來錯誤,會導(dǎo)致程序塊不能被重復(fù)調(diào)用。 這完全不必擔(dān)心。 因為再多的對象實例, 使用的同一個變量,用過就丟了,無所謂。

也會有人指責(zé)我違背了自己承諾的PLC編程不使用全局變量的規(guī)則。 沒錯,我這兒也難受著呢!

如果不較真,整個程序中僅次一處使用M量,也不傷大雅。 如果較真,以后可以再看看想辦法做個場景保存和恢復(fù)的功能。

即,打一個補丁處理一下。






審核編輯:劉清

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

    關(guān)注

    5

    文章

    491

    瀏覽量

    25570
  • SMART
    +關(guān)注

    關(guān)注

    3

    文章

    224

    瀏覽量

    44712
  • S7-1200
    +關(guān)注

    關(guān)注

    11

    文章

    331

    瀏覽量

    18006
  • LBP
    LBP
    +關(guān)注

    關(guān)注

    0

    文章

    14

    瀏覽量

    8964
  • S7-1500
    +關(guān)注

    關(guān)注

    3

    文章

    300

    瀏覽量

    6439

原文標(biāo)題:0323 【萬泉河】 最難還是模擬量

文章出處:【微信號:PLC標(biāo)準(zhǔn)化編程,微信公眾號:PLC標(biāo)準(zhǔn)化編程】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    模擬量和開關(guān)

    模擬量和開關(guān) 在控制系統(tǒng)中,一個常見的術(shù)語就是模擬量和開關(guān)。 不論輸入還是輸出,一個參數(shù)要么是
    發(fā)表于 12-11 11:38 ?3047次閱讀

    模擬量模塊接線方法 模擬量模塊編程詳細介紹

    模擬量類型的模塊有三種:普通模擬量模塊、RTD模塊和TC模塊。普通模擬量模塊可以采集標(biāo)準(zhǔn)電流和電壓信號。其中,電流包括:0-20mA、4-20mA兩種信號,電壓包括:+/-2.5V、+/-5V
    的頭像 發(fā)表于 11-10 14:17 ?1.4w次閱讀
    <b class='flag-5'>模擬量</b>模塊接線方法 <b class='flag-5'>模擬量</b>模塊編程詳細介紹

    PLC模擬量說明

    PLC模擬量說明
    發(fā)表于 03-19 11:47 ?8次下載

    PLC模擬量的控制特點_PLC模擬量的分類

    模擬量按一定時間間隔取值,稱為采樣。采樣后得到的值即為離散。顯然,離散在時間上是離散的,即只在采樣的瞬間代表當(dāng)時的模擬量值,其他時刻的模擬量
    的頭像 發(fā)表于 09-13 15:43 ?6593次閱讀

    plc中的模擬量信號如何讀取

    PLC讀取模擬量信號必須要有模擬量輸入模塊,即常說的AI模塊。
    的頭像 發(fā)表于 11-12 16:21 ?1.2w次閱讀

    什么是模擬量?什么是AI和什么是AO?AI是輸入還是輸出?

    什么是模擬量 模擬量是指一些連續(xù)變化的物理,如電壓、電流、壓力、速度、流量等信號,模擬信號是幅度隨時間連續(xù)變化的信號,通常電壓信號為0~
    的頭像 發(fā)表于 09-03 10:46 ?2.8w次閱讀

    什么是模擬量和開關(guān),有什么區(qū)別

    眾所周知,在控制系統(tǒng)中有兩個常見的術(shù)語,“模擬量”和“開關(guān)”。不論輸入還是輸出,一個參數(shù)要么是模擬量,要么是開關(guān)。
    的頭像 發(fā)表于 12-18 14:58 ?4.2w次閱讀

    開關(guān)模擬量是什么,開關(guān)模擬量的轉(zhuǎn)換原理

    開關(guān)模擬量是什么?剛接觸工控行業(yè)的人可能不太清楚。先說什么是開關(guān)模擬量。有哪些功能,有什么區(qū)別? 開關(guān)
    發(fā)表于 02-05 16:45 ?1.2w次閱讀

    什么是模擬量,它的概念是怎樣的

    模擬量是什么? 模擬量是指一些連續(xù)變化的物理,如電壓、電流、壓力、速度、流量等信號模擬量是指幅度連續(xù)變化的信號
    發(fā)表于 03-03 14:59 ?3w次閱讀

    PLC模擬量及PID控制

    掌握模擬量的輸入及輸出,能使用模擬量輸入輸出模塊組成PLC模擬量控制系統(tǒng),并能根據(jù)工藝要求設(shè)置模塊參數(shù),
    發(fā)表于 04-23 11:03 ?35次下載

    模擬量和開關(guān)的區(qū)別

    模擬量和開關(guān)量具體的區(qū)別分別為:開關(guān)——是指輸出無源信號,模擬量——是指輸出有源信號。常用的一些探測器接入的有源信號即是模擬量。
    發(fā)表于 06-16 16:07 ?2.8w次閱讀

    開關(guān)模擬量是什么

    開關(guān)是指輸出無源信號,模擬量則是有源信號的輸出。通常使用探測器接入有源信號即模擬量
    發(fā)表于 07-06 16:21 ?1.1w次閱讀

    常見的模擬量IO都有哪些種類?

    模擬量IO是指用于測量和控制模擬量信號的輸入輸出接口。
    的頭像 發(fā)表于 06-07 14:44 ?3365次閱讀

    請問PLC是如何讀取模擬量信號的?

    PLC讀取模擬量信號必須要有模擬量輸入模塊,即常說的AI模塊。
    的頭像 發(fā)表于 01-02 09:35 ?793次閱讀
    請問PLC是如何讀取<b class='flag-5'>模擬量</b>信號的?

    plc模擬量輸出怎么接線 plc模擬量輸出是什么信號

    PLC模擬量輸出(PLC Analog Output)是指在PLC系統(tǒng)中,根據(jù)輸入信號的大小,通過模擬量輸出模塊將數(shù)字信號轉(zhuǎn)換為模擬量信號輸出到外部設(shè)備。這種輸出信號可以是電壓或電流等連續(xù)變化的信號
    的頭像 發(fā)表于 02-05 14:46 ?5817次閱讀