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

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

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

PLC編程給循環(huán)指令一個出口

opkgjew ? 來源:萬泉河 ? 2024-01-11 15:34 ? 次閱讀

0111 【萬泉河】PLC編程給循環(huán)指令一個出口

我在很多年前,寫過一篇文章:《PLC編程中的循環(huán)語法使用》,這篇文章被多次到處轉(zhuǎn)載, 最新的轉(zhuǎn)載是2023年11月公眾號“工控幫”的轉(zhuǎn)載,微信搜一搜就能搜到。

https://mp.weixin.qq.com/s/38HseYCWtVTC6zL9b3k4Zw

我發(fā)表這樣文章的本意,就是建議PLC的初學(xué)者和剛?cè)腴T的工程師,不要把過多精力放在研究循環(huán)上,也不要在程序中有意或者無意地使用過多的循環(huán)語句,以使程序變得難讀和不容易調(diào)試。

比如在TIA PORTAL中,如果程序在線監(jiān)控, 那么循環(huán)的這一段代碼是無法實時看到數(shù)據(jù)運行值的。所以要診斷代碼邏輯是否有錯誤,是否在按照預(yù)想的軌道運行, 還需要另外額外的工作。

這些額外工作都是非常麻煩,且影響運行效果。比如雖然現(xiàn)在PORTAL 中可以調(diào)試使用斷點,可以單步調(diào)試,但這個時候OB1循環(huán)也被迫中斷了,程序的基本控制功能也都停止了。所以PLC工程師通常是不做這種單步調(diào)試的。

然而我這樣的宣揚并沒有得到如期的效果。很多工程師仍然執(zhí)迷不悟沉迷于程序中用循環(huán)方法解決問題。甚至很多簡單問題的解決都要不惜耗費些彎路,做各種前處理后處理,只為了循環(huán)這一下的爽5秒。

包括我也推出過80系列的程序例子,演示了如何不使用循環(huán)的實現(xiàn)效果,還做了比較。見文章 <0822 【萬泉河】解讀一個用循環(huán)法PK萬泉河80模擬量例子的例子程序>

https://mp.weixin.qq.com/s/a6a1HG6DmuasLRnXwbWMaQ

但也仍然沒用。很多同行可能摸到編程的機會太少, 太多的繪圖,選型,設(shè)計,甚至接線工作耗費了他們太多的體力,導(dǎo)致對編程機會異常珍惜,對少有的能大展技能的機會不愿意放過。所以還是普遍表現(xiàn)出對循環(huán)語法的熱愛。

所以,我總結(jié)了一下在高級語言編程中需要用到循環(huán)的情形,請工控工程師們可以同比對照參考。

在高級語言中,編程需要用到循環(huán)的場景通常有2種。

其中第一種是數(shù)據(jù)量異常巨大,比如要從數(shù)據(jù)庫中抓取4萬條數(shù)據(jù)進行統(tǒng)計處理。那么顯然,寫4萬句指令是不可理喻的。必須對數(shù)據(jù)的輸入輸出做出嚴謹?shù)姆治觯业綌?shù)據(jù)的共同特征點和變化量,用循環(huán)語句來搞定。

甚至,如果索引數(shù)據(jù)復(fù)雜多樣到連共同的特征值都找不到,就是一堆亂麻數(shù)據(jù), 那也寧愿先把這些索引數(shù)據(jù)保存為文件或者數(shù)據(jù)庫,然后通過數(shù)據(jù)庫方法查詢得到,然后再進行統(tǒng)計計算??傊?,無論如何打破頭我也要使用循環(huán)實現(xiàn)。

而第二種是在編程的時候邏輯處理的步數(shù)不確定。比如配方數(shù)量是在運行中才人工輸入的。就只能用循環(huán)了。還有是挑選特定值,比如運行數(shù)組中挑選匹配值的算法,當(dāng)條件匹配后,就可以跳出循環(huán)了,邏輯的處理步數(shù)也同樣是在編程時不曉得的。那么這些都需要用到循環(huán)。

而除此之外,即便是在高級語言的編程中,都很少再有用到循環(huán)語法的情況了。

更可想而知,對于PLC系統(tǒng)這樣的環(huán)境, 能有多少需要循環(huán)才能搞定的算法了。

然而我在群交流時提出這樣的比較指標(biāo)之后, 還有人表示不服,不能理解。反問我,如果20套同樣的設(shè)備,也不要做循環(huán),也羅列調(diào)用執(zhí)行嗎?(言外之意,不用循環(huán)用羅列的方法是不是太愚蠢了)

答案是當(dāng)然咯!我80例子中,80個工位都羅列出來的,區(qū)區(qū)20更何足掛齒呢!

看起來這不用循環(huán)把一大票人憋得那是相當(dāng)難受??!

這樣吧,我來給個出路。

眼光放高一點, 你的工作任務(wù)不是一臺設(shè)備,而是一系列參數(shù)不同的設(shè)備。你需要做的不僅僅是這臺設(shè)備的PLC程序,而是要做一臺能生成一系列不同參數(shù)設(shè)備的PLC程序的電腦端的程序。

即, 你需要的是PLC程序+生成PLC程序的電腦上的程序,我們不妨叫它PLC++程序。而且最好的目標(biāo)是,這套電腦上的程序的使用者也不是你自己,而是你簡單培訓(xùn)后輸出的對象,比如設(shè)備車間的工人。

公司接到訂單以后,根據(jù)合同設(shè)備配置不同,參數(shù)數(shù)值也當(dāng)然不同。那么車間工人除了組裝盤柜之外, 還把這些數(shù)值輸入到你給他的電腦程序的界面,輸入完成后,按下“生成PLC程序”按鈕,則程序自動生成, 生成后再打開編程軟件下載到PLC,或者更自動點,你的程序都可以驅(qū)動指揮TIA PORTAL自動將生成的PLC程序下載到PLC中,HMI畫面程序下載到觸摸屏中。

這樣, 在你和工人都不需要見到程序代碼的情況下,程序就已經(jīng)成功下載到設(shè)備中,設(shè)備就已經(jīng)有了靈魂,就已經(jīng)具備開機運行的條件了。

所以,如果你有天高的技能這回就有了施展的平臺了。在這套生成程序的PLC++程序里, 你隨便怎么折騰都可以,絕對不會有人指責(zé)你程序?qū)懙暮脡?。?dāng)然我猜, 循環(huán)一定是少不了的。因為比如上一個系統(tǒng)80個模擬量+20個伺服包含了自動邏輯, 而下一個系統(tǒng)要你做出79個模擬量+15臺伺服的自動控制,這套PLC++程序一定相當(dāng)復(fù)雜,沒有循環(huán)語法是萬萬達不到的。

當(dāng)然,也仍然符合我對使用循環(huán)語法的場景的論斷:循環(huán)次數(shù)不確定。

那些循環(huán)語法的信徒們終于有了釋放的出口了。

然后, 你們自然也會比較得出怎么編寫PLC程序更方便生成PLC++程序了。

審核編輯:黃飛

聲明:本文內(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)注

    5014

    文章

    13349

    瀏覽量

    464451
  • 模擬量
    +關(guān)注

    關(guān)注

    5

    文章

    492

    瀏覽量

    25590
  • Portal
    +關(guān)注

    關(guān)注

    1

    文章

    29

    瀏覽量

    10359

原文標(biāo)題:0111 【萬泉河】PLC編程給循環(huán)指令一個出口

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

收藏 人收藏

    評論

    相關(guān)推薦

    plc基本指令的應(yīng)用有哪些

    控制、數(shù)據(jù)類型轉(zhuǎn)換、算術(shù)運算、比較操作、程序控制以及基本的輸入輸出操作等多個方面。 、邏輯運算指令 邏輯運算指令PLC編程中最常用的
    的頭像 發(fā)表于 10-21 17:16 ?1058次閱讀

    PLC指令的簡要說明

    PLC(可編程邏輯控制器)的指令雖然因不同的制造商和型號而有所差異,但有指令是相對比較通用的。
    的頭像 發(fā)表于 09-18 14:15 ?629次閱讀

    三菱plc累加指令怎么用

    三菱PLC(Programmable Logic Controller,可編程邏輯控制器)是工業(yè)自動化領(lǐng)域常用的種控制器。累加指令PLC
    的頭像 發(fā)表于 06-20 11:34 ?3943次閱讀

    三菱plc常用的編程指令有哪些

    三菱PLC(Programmable Logic Controller)是種廣泛應(yīng)用于工業(yè)自動化領(lǐng)域的可編程邏輯控制器。它具有強大的編程功能,可以滿足各種工業(yè)自動化需求。以下是三菱
    的頭像 發(fā)表于 06-20 10:49 ?3663次閱讀

    三菱plc常開指令是什么

    三菱PLC(Programmable Logic Controller,可編程邏輯控制器)是種廣泛應(yīng)用于工業(yè)自動化領(lǐng)域的控制設(shè)備。它通過編程實現(xiàn)對機械設(shè)備的控制,以滿足生產(chǎn)過程中的各
    的頭像 發(fā)表于 06-20 10:44 ?1677次閱讀

    三菱plc編程指令大全講解

    三菱PLC(Programmable Logic Controller,可編程邏輯控制器)是種廣泛應(yīng)用于工業(yè)自動化領(lǐng)域的控制設(shè)備。它通過編程實現(xiàn)對各種機械設(shè)備的控制,具有靈活性高、可
    的頭像 發(fā)表于 06-19 17:05 ?1.1w次閱讀
    三菱<b class='flag-5'>plc</b><b class='flag-5'>編程</b><b class='flag-5'>指令</b>大全講解

    三菱PLC傳送指令的用法

    三菱PLC(可編程邏輯控制器)在工業(yè)自動化領(lǐng)域中扮演著至關(guān)重要的角色。其中,傳送指令(MOV)作為PLC編程中的基礎(chǔ)
    的頭像 發(fā)表于 06-18 09:41 ?4439次閱讀

    PLC中ALT和ALTP指令的區(qū)別

    PLC(可編程邏輯控制器)編程中,ALT和ALTP是兩重要的指令,它們各自具有獨特的功能和應(yīng)用場景。本文將從多個方面對這兩
    的頭像 發(fā)表于 06-17 16:42 ?3968次閱讀

    PLC中SFTL指令的用法

    在工業(yè)自動化控制系統(tǒng)中,PLC(Programmable Logic Controller,可編程邏輯控制器)扮演著至關(guān)重要的角色。PLC通過執(zhí)行各種指令來控制設(shè)備的運行,其中SFTL
    的頭像 發(fā)表于 06-15 17:48 ?3551次閱讀

    PLC的常用指令及其應(yīng)用

    在工業(yè)自動化領(lǐng)域中,可編程邏輯控制器(PLC)憑借其高度的可靠性和靈活性,成為控制各種機械設(shè)備和工業(yè)過程的核心設(shè)備。PLC通過執(zhí)行系列的控制指令
    的頭像 發(fā)表于 06-15 17:36 ?3559次閱讀

    cnc怎么編程m99循環(huán)次數(shù)

    CNC(計算機數(shù)控)編程種用于控制機床自動加工零件的技術(shù)。M99是在數(shù)控程序中用于結(jié)束循環(huán)指令
    的頭像 發(fā)表于 06-14 15:49 ?2580次閱讀

    plc控制伺服電機的指令有哪些

    PLC(可編程邏輯控制器)是種廣泛應(yīng)用于工業(yè)自動化領(lǐng)域的控制設(shè)備。伺服電機作為執(zhí)行元件,可以通過PLC進行精確控制。以下是關(guān)于PLC控制伺
    的頭像 發(fā)表于 06-12 11:39 ?2584次閱讀

    ?PLC左移指令和右移指令

    PLC(可編程邏輯控制器)中,左移(Shift Left)指令和右移(Shift Right)指令通常用于位級操作,對位寄存器中的位進行移位操作。這些
    發(fā)表于 03-15 14:12 ?7496次閱讀
    ?<b class='flag-5'>PLC</b>左移<b class='flag-5'>指令</b>和右移<b class='flag-5'>指令</b>

    什么是PLC循環(huán)移位指令 PLC循環(huán)移位的特點

    PLC循環(huán)移位指令包括循環(huán)左移指令循環(huán)右移指令。在
    的頭像 發(fā)表于 03-07 16:57 ?2252次閱讀
    什么是<b class='flag-5'>PLC</b><b class='flag-5'>循環(huán)</b>移位<b class='flag-5'>指令</b> <b class='flag-5'>PLC</b><b class='flag-5'>循環(huán)</b>移位的特點

    循環(huán)指令loop規(guī)定循環(huán)次數(shù)

    循環(huán)指令是計算機編程中非常重要的概念,它允許程序重復(fù)執(zhí)行段代碼塊,使得程序可以更有效地處理大量數(shù)據(jù)和重復(fù)性任務(wù)。在本文中,我們將詳盡、詳實、細致地介紹
    的頭像 發(fā)表于 02-14 16:10 ?1785次閱讀