0905 【萬泉河】80模擬量例子程序升級版V2.0
寫過一篇文章,《0628 【萬泉河】優(yōu)雅的PLC程序一定是用EXCEL寫出來的》,其中演示了一個(gè)80模擬量處理的例子。
沒有使用循環(huán)。
我關(guān)于PLC程序中的,除了必要的數(shù)學(xué)算法必須用循環(huán)之外, 在調(diào)用實(shí)例環(huán)節(jié)沒必要使用循環(huán)的理念,以前的文章 《201907 【萬泉河】PLC編程中的循環(huán)語法使用》就有闡述過。
然而太多人不相信, 反而寧愿質(zhì)疑我不會(huì)循環(huán)語法。
而我讓那些堅(jiān)信循環(huán)大法好的循環(huán)派寫一個(gè)完整的80模擬量例子程序出來的時(shí)候, 沒有一個(gè)人愿意。 于是我自己模仿他們的思維,左右互搏,自己做了一套PK80模擬量例子程序。
見文章《0822 【萬泉河】解讀一個(gè)用循環(huán)法PK萬泉河80模擬量例子的例子程序》
看來我模仿的還可以, 沒有偏離他們的理念, 因?yàn)樗麄儾辉儋|(zhì)疑我不會(huì)循環(huán)語法,而開始質(zhì)疑我不會(huì)SMART 200的AI通道間接尋址,因?yàn)槲业睦邮怯肧MART 200做的。
這個(gè)PK例子幸好我只用SMART 200做, 而沒有把所有品牌, 三菱, OMRON,AB, 倍福, 貝加萊,臺達(dá), 信捷,所有品牌都做一遍。
否則,還真被他們質(zhì)疑準(zhǔn)了。 除了西門子之外的大部分品牌,我對間接尋址,變址變量這些確實(shí)知之甚少。 也不打算去挨個(gè)學(xué)會(huì)了以當(dāng)做基本功。 因?yàn)闊熍_方法架構(gòu)中不需要掌握這些知識就可以做事。 除非將來遇到特殊功能而被迫學(xué)習(xí)了解之外, 對于通用功能, 著實(shí)是沒有必要。
為了向他們證明為什么明明會(huì)用間接尋址,也沒有使用循環(huán)法來做,我又寫了文章《0825 【萬泉河】設(shè)計(jì)工作中服務(wù)與被服務(wù)》,解釋了工程項(xiàng)目中的分工原則,正常情況,IO點(diǎn)表并不是規(guī)律整齊的,反而不整齊不規(guī)則才是常態(tài)。 不可以要求設(shè)計(jì)工程師在分配點(diǎn)表時(shí)就過度分心去為后面的編程方便而做額外工作。
然而, 對死心塌地的循環(huán)派來說,沒用。他們又開始質(zhì)疑我不會(huì)做設(shè)計(jì),沒見過工程項(xiàng)目。 于是,我讓他們把自己做過的,以及見過的項(xiàng)目的點(diǎn)表數(shù)據(jù)亮出來, 修一下, 讓所有人看看,這個(gè)行業(yè)從啥時(shí)候開始,IO點(diǎn)表整齊規(guī)律了?
當(dāng)然, 我指的點(diǎn)表可不僅僅是模擬量,而是所有點(diǎn)表, 包括電機(jī)設(shè)備, 閥門等等所有類型的點(diǎn)表,都應(yīng)該是有規(guī)律的,都要能實(shí)現(xiàn)循環(huán)快捷調(diào)用的。 否則如果僅僅基本模擬量做了循環(huán), 其他設(shè)備類型還是照樣亂做一團(tuán), 程序中只有模擬量做了循環(huán), 那實(shí)在看不到快捷程度提高了多少。
而即便模擬量, 真正的工程項(xiàng)目中也未必能做到整齊有規(guī)律。我做的例子中, 前面部分的模擬量來自AIW, 后面部分來自VW, 講過了來自通訊等特殊通道,然而反而被指責(zé)為我做例子隨性, 不講規(guī)矩。
其實(shí)是我不講規(guī)矩導(dǎo)致他們的循環(huán)理想實(shí)現(xiàn)不了了。
我就把這個(gè)例子再次完善一下,模擬量的數(shù)量仍然是80個(gè), 而數(shù)據(jù)類型有4-20mA電流信號,也有RTD溫度信號,即使用了專用溫度模塊。
溫度模塊的特點(diǎn)是,不再通過上下限線性變換,而是整數(shù)值中直接帶有1-2位小數(shù),倒暫時(shí)不分別,都認(rèn)為帶1位小數(shù)好了。
而對SMART來說,AIW數(shù)據(jù)區(qū)范圍是帶不了80個(gè)模擬量的,所以用了一部分第三方的遠(yuǎn)程IO卡件, 以通訊方式讀來數(shù)據(jù)。 比如零點(diǎn)自動(dòng)化的AI卡件,以MODBUS TCP協(xié)議通訊得到。
每個(gè)公司的卡件,模數(shù)轉(zhuǎn)換時(shí),上下限定義各不相同。比如SMART 200 20MA對應(yīng)的上限值為32000, 而零點(diǎn)為27468,這一點(diǎn)倒和S7-1200/1500和S7-300相同了。
所以, 這次升級版的例子,模擬量處理的模塊增加了2個(gè), 分別是溫度模塊,用于本地的SMART200 RTD卡件和遠(yuǎn)程的零點(diǎn)的3通道RTD卡件,而零點(diǎn)專用塊,處理零點(diǎn)的4-20mA模擬量信號,上限由32000改為27648。
然后在前面版本的程序基礎(chǔ)上稍作修改之后, 程序調(diào)用過程為:
注意,由于其中對溫度信號使用了專用RTD模塊, 所以對IO表順序做了調(diào)整。卡件使用的順序?yàn)槠胀M量模塊和RTD模塊交替使用,便于與工藝現(xiàn)場對接。
肯定有聰明人對我這樣不厭其煩地做低智商的勞動(dòng)不以為然。 其實(shí)這里的坑只有自己親自做了,才能遇到。
比如,我這次修改了變量表之后,生成的數(shù)據(jù)為:
生成的程序到了PLC中是有語法錯(cuò)誤的。 這個(gè)錯(cuò)誤我遇到多次,每次處理起來都比較麻煩。這回則沒有去解決, 只是用聰明人的笨辦法將就實(shí)現(xiàn)了。
有真心學(xué)習(xí)者,可以去了解, 并自己找到好的處理方法。
當(dāng)然, 這里主要是EXCEL的數(shù)據(jù)處理。
而這一版例子程序的更多的技術(shù)含量其實(shí)是在EXCEL文件里。 上一波因?yàn)橛貌坏轿姨匾鈩h掉了, 這一回又重新祭出來了。
所以,讀者們可以看到,當(dāng)程序結(jié)構(gòu)變復(fù)雜了之后, 程序仍然可以用EXCEL優(yōu)雅地生成。
而有人如果還妄圖用循環(huán)法實(shí)現(xiàn),估計(jì)是要暈掉了。 不服的可以試試。但不需要來跟我抬杠了, 我又無所謂,每個(gè)人用什么方法做程序是自己的權(quán)利,我無權(quán)干涉。
但最近, 又冒出來越來越多的質(zhì)疑者和反對者,口口聲聲我要騙他們來買我的培訓(xùn),而我對他們的學(xué)習(xí)能力和水平是深度懷疑的。所以即將會(huì)制定一個(gè)考核標(biāo)準(zhǔn),所有煙臺方法的準(zhǔn)學(xué)員, 需要先來學(xué)習(xí)了解80系列例程,只有那些認(rèn)為自己可以從80例程中學(xué)習(xí)到技能和經(jīng)驗(yàn)的,才獲取資格購買培訓(xùn)。
而技能太低,學(xué)不懂80例程,以及技能太高, 已經(jīng)遠(yuǎn)超過80例程所包含的技能的,則不在可獲準(zhǔn)之列。
這樣,大概可以免除一大批同行的焦慮了。
本文,及本文提及的例程,會(huì)同樣放到80工位雙聯(lián)開關(guān)QQ群中,
一群:238744520
二群:870566908
歡迎對煙臺方法認(rèn)同者及反對者都可以來下載和參與討論。 同系列的其它例程也同樣可以下載到。