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

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

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

3天內不再提示

SMART 200中拆分提取字符串內數據

opkgjew ? 來源:PLC標準化編程 ? 2023-03-29 14:00 ? 次閱讀

我在做模擬量處理模塊時,留了一個未解決的難題,一個小尾巴。即因為程序塊中使用的TEMP變量資源已經耗盡,所以被逼無奈使用了一個全局變量MD20,做了數據的傳遞功能。

然后做好了之后,我就去做PID模塊的移植了。

對那里面留下的缺憾,其實我并不怎么著急。 模塊化的設計工作就是這樣,有遺憾不可怕。 可怕的是遺憾太多,牽扯到整個系統架構, 牽一發而動全身,導致不敢動。

而我留下的這種遺憾則無所謂,我只要心中隨時留個念想, 一旦有找到好的思路后,回來打個補丁,修復一下也就完美了。 而即便沒有打補丁之前,也不影響正常的使用。 這種問題,終究不是大問題,連bug都算不上。 只是完美主義者心中的一個結而已。

然后,我在做PID模塊的時候,很快就遇到了相似的問題。 原本,按照西門子LBP的數據結構,我原本是可以輕松解決的,資源完全夠用。 因而這段時間都在做這部分的調試了。

但當調試結束,發現了一個問題,長久以來西門子以及眾多同行都忽視的問題。

即,PID的輸出值的量綱的問題。

通常,很多模塊都直接以%為單位,或者沒有單位,就0-1的一個小數數值了。

這在閥門開度等工況時是沒問題的,然而很多的PID的輸出回路會是變頻器,變頻器的運行開度,100%對應的是50Hz,那么,如果你在窗口上顯示PID回路的輸出時,如果仍然以0-100來顯示,操作人員使用中就會有些不方便。總要做數值的換算。 一不小心還容易遺忘,算錯。

所以,我決定要增加這部分的數值輸入。 然而就同樣遇到了變量使用超標了。

想到了這部分的數據在內部程序塊中只使用一次,并不總是參與數值計算。同時,模塊在調用時,輸入的是常量,在運行中也不會變動。 所以,可以考慮用字符串的形式輸入。

即, 把原本的UNIT的管腳,改名為RANG_UNIT, 包含了上下限和量綱:

0;10;Bar;0;50;Hz

字符串中使用分號;將所有數據分割。

S7-200中的字符串,在定義到子程序的管腳時,長度只有4byte,所以它本質上只是個指針。 而作為常量的字符串輸入時,則不占用任何寄存器資源。

所以,編制了一個對字符串分割的函數Split

45d09c90-cdeb-11ed-bfe3-dac502259ad0.png

每次調用, 只讀取指定的位置的數據。 我也順便做了轉換,即可以讀取到字符串放到S1指定的指針,也可以順便轉換為浮點數輸出到寄存器中使用。

由此,用一個字符串指針4BYTE替代了原本的多個浮點數,程序塊的資源終于省出來了。

45e20764-cdeb-11ed-bfe3-dac502259ad0.png

我在幾個周之前, 還分享過一個做BCC校驗的程序塊,使用場合我沒講。 其實,也是出自同樣的原因。

在LBP原程序架構中,需要多次校驗HMI上數據序列的修改,在數據滿足變化或者不變化條件時做出邏輯處理。 在PORTAL中的方法是直接對UDT進行相等比較。 所以在數據區中建立了大量的數據備份。

而對于SMART這樣的小身板,自然是沒那么多資源來存放所有數據的備份的。 所以就想到了使用BCC校驗來做。數據序列中任何一個數值如果修改,都會導致BCC校驗碼不通過,縱然理論上會有某種巧合導致BCC相同,但幾率又是小到火星撞地球,而且又是與人機界面人工操作相關,并不關乎安全,可靠性要求也不高。 所以可以以此節省規模不菲的變量資源。

算是對數據校驗的另一種另類應用。 關于相撞的幾率,我還沒算過。與浮點數的表達規則有關,可以單獨再研究。 不過未來即便有更嚴謹的應用場合,我們還可以多個校驗算法,比如BCC和CRC校驗同時上陣,估計就想撞也撞不到了。

我探討了通常意義的線性變換,PID,飛剪,卷曲等算法對我們做PLC編程的重要性并沒多高,甚至都可以認為不是我們這個行業的必備的算法技能。

然而如果非要找一些算法功能的話,這里提到的拆分和校驗,以及所實現的數據處理交換方式,某種程度上可以算做是了。

而且還會通用,多種模塊類型中都會遇到。






審核編輯:劉清

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

    關注

    3

    文章

    225

    瀏覽量

    44721
  • PID
    PID
    +關注

    關注

    35

    文章

    1473

    瀏覽量

    85616
  • PLC編程
    +關注

    關注

    46

    文章

    246

    瀏覽量

    37499
  • BCC
    BCC
    +關注

    關注

    0

    文章

    10

    瀏覽量

    7542

原文標題:0329 【萬泉河】SMART 200中拆分提取字符串內數據

文章出處:【微信號:PLC標準化編程,微信公眾號:PLC標準化編程】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何在bash中分割字符串

    假設我們有一個由逗號或者下劃線隔開的多個單詞組成的字符串,需要拆分這個字符串提取各個單詞。
    發表于 12-07 17:10 ?3731次閱讀

    如何提取字符串某幾個位置的元素

    如何提取字符串某幾個位置的元素,如字符串AA 01 08 D6 DF FF,我想提取其中的08和D6,請問該如何實現?或者說如何提取一維數
    發表于 10-28 18:48

    labview截取字符串時為什么不能顯示出字符串的漢字

    我要輸出數量字符串的最后一個字符,使用截取字符串時輸出的最后一個字符是數字或字母時子字符串可以
    發表于 05-05 11:11

    采集數據經過截取字符串實時數據采集問題,求指教

    利用截取字符串函數截取數據信息,發現有相當大的延遲,大概幾秒鐘的間隔才能實現新的字符串的截取,這樣的話會出現對采集信息的遺漏,如何實現數據的實時截取?求大神指教問題如圖,上面的壓力值是
    發表于 10-28 17:01

    LABVIEW中使用tdms存取字符串數組的問題

    出來的數據類型是波形,提取波形信息后沒有辦法直接索引連接字符串類型的輸出,究竟應該怎么用TDMS存取字符串類型的數據呢?
    發表于 08-15 17:26

    字符串拆分

    串口連續傳來如是字符串”V-12.98C0.18“希望把字符串拆分為V后的為一組數,C后的為一組數。上述字符串應該拆為-12.98和0.18。我嘗試了用匹配模式匹配中間的空格分成兩個
    發表于 05-22 11:57

    Labview之截取字符串

    Labview之截取字符串,很好的Labview資料,快來下載學習吧。
    發表于 04-19 10:23 ?0次下載

    取字符串的C語言程序免費下載

    本文檔的主要內容詳細介紹的是讀取字符串的C語言程序免費下載。
    發表于 04-11 17:18 ?10次下載
    讀<b class='flag-5'>取字符串</b>的C語言程序免費下載

    LabVIEW字符串拆分的詳細資料說明

    本文檔的主要內容詳細介紹的是LabVIEW字符串拆分的詳細資料說明。
    發表于 12-12 08:00 ?12次下載
    LabVIEW<b class='flag-5'>字符串</b><b class='flag-5'>拆分</b>的詳細資料說明

    C語言字符串匹配和數據提取源碼

    C語言字符串匹配與數據提取源碼
    的頭像 發表于 02-27 15:42 ?2420次閱讀
    C語言<b class='flag-5'>字符串</b>匹配和<b class='flag-5'>數據</b><b class='flag-5'>提取</b>源碼

    strtok拆分字符串

    大家好,我是驚覺,今天聊聊字符串字符串的使用場景非常之多,人機交互和雙機通信都會用到。比如:通過串口向單片機發送指令,以執行操作或配置參數。單片機讀取傳感器數據數據格式是
    發表于 01-13 15:46 ?8次下載
    strtok<b class='flag-5'>拆分</b><b class='flag-5'>字符串</b>

    字符串的相關知識

    TCL 數據類型只有一種:字符串。這些字符串可以是字母、數字、布爾值、標點符號等特殊字符的組合。在某些特殊命令的作用下,
    的頭像 發表于 03-29 11:41 ?1170次閱讀

    labview掃描字符串怎么用

    介紹如何在 LabVIEW 中使用掃描字符串以及相關的技巧和注意事項。 字符串是 LabVIEW 的一種基本數據類型,表示一系列字符的序列
    的頭像 發表于 12-29 10:12 ?2119次閱讀

    字符串在編程的應用實例

    字符串在編程中有著廣泛的應用,它們被用于表示文本數據、處理用戶輸入、構建動態內容等。以下是一些字符串在編程的應用實例: 1. 用戶輸入與輸出 用戶輸入 :程序通常需要從用戶那里獲取輸
    的頭像 發表于 01-07 15:33 ?95次閱讀

    字符串數據的存儲方式

    數據庫是現代信息技術存儲和管理數據的核心組件。字符串作為最常見的數據類型之一,在數據
    的頭像 發表于 01-07 15:41 ?107次閱讀
    主站蜘蛛池模板: 欧美白人战黑吊| 国内精品久久久久影院男同志| 国产成人在线免费| 欧美一区二区在线观看| 一个人日本的视频免费完整版 | 8050午夜二级一片| 久久成人免费大片| 野草观看免费高清视频| 和美女啪啪啪动态图| 亚洲国产日韩制服在线观看| 国产午夜精品AV一区二区麻豆| 婷婷综合久久狠狠色| 国产AV无码成人黄网站免费| 日韩精品特黄毛片免费看| 大香交伊人| 手机在线播放成人亚洲影院电影| wankz tv videos国产| 欧洲另类一二三四区| 变形金刚7免费观看完整| 日韩欧美1区| 国产精品久久久久永久免费看 | 日韩在线 无码 精品| 国产电影三级午夜a影院| 小荡娃奶真大| 精品高潮呻吟99AV无码| 越南女子杂交内射BBWXZ| 久久这里只有精品1| 97在线超碰免费视频| 欧美日韩一级黄色片| 国产99热在线观看| 亚洲男女羞羞无遮挡久久丫| 久久热在线视频精品| 97精品国偷拍自产在线| 欧美成人3d动漫专区| 国产精品成人影院| 夜色伊甸园| 青青青草免费| 韩国三级久久精品| 5G在线观看免费年龄确认18| 日韩欧美中文字幕一区| 国内精品久久久久久西瓜色吧|