青春灬顏
共同學(xué)習(xí),共同進(jìn)步。
級(jí)別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 146 個(gè)
工控威望: 197 點(diǎn)
下載積分: 418 分
在線時(shí)間: 110(小時(shí))
注冊(cè)時(shí)間: 2023-08-31
最后登錄: 2024-11-02
查看青春灬顏的 主題 / 回貼
樓主  發(fā)表于: 2023-11-27 11:39
氣缸急停,復(fù)位,動(dòng)點(diǎn)原點(diǎn)信號(hào),屏蔽,濾波,輸出控制報(bào)警這些應(yīng)該都不能少的把
共同學(xué)習(xí),共同進(jìn)步。
gxtmdb82164
級(jí)別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 741 個(gè)
工控威望: 1119 點(diǎn)
下載積分: 340 分
在線時(shí)間: 584(小時(shí))
注冊(cè)時(shí)間: 2019-09-22
最后登錄: 2024-10-31
查看gxtmdb82164的 主題 / 回貼
1樓  發(fā)表于: 2023-11-27 14:39
太復(fù)雜了,寫軟件特別是在進(jìn)行塊封裝、FB之類的模塊化編程的時(shí)候,一定不能想著把所有功能都塞到一個(gè)組件里面搞定,軟件開發(fā)的基本原則就是高內(nèi)聚低耦合,只有強(qiáng)相關(guān)的功能才可以封裝到一起。

當(dāng)然,這都是理論,實(shí)際操作的時(shí)候,怎么舒服怎么來~

舉例:
我自己用的單線圈電磁閥氣缸控制,輸入只有使能(Enable)、輸入(InPut),原點(diǎn)(SensorA)終點(diǎn)(SensorB),時(shí)間脈沖(TP),超時(shí)(TimeRange),復(fù)位(Reset)
輸出點(diǎn)只有 輸出(OutPut)、報(bào)警(Alarm)

塊內(nèi)的邏輯只有電磁閥輸出,原點(diǎn)終點(diǎn)和超時(shí)報(bào)警邏輯,其他沒了,這就已經(jīng)很復(fù)雜了

至于說1L提出的那些復(fù)雜功能,不好意思,都不是氣缸控制塊應(yīng)該管的事情,氣缸控制就只管氣缸控制

急停應(yīng)該是狀態(tài)管理的任務(wù),濾波應(yīng)該是輸入模塊的任務(wù)(我自己的程序會(huì)再寫一遍輸入,從X點(diǎn)過渡到M點(diǎn)或者其他什么內(nèi)部軟元件,且在整個(gè)程序最前面),至于輸出互鎖,特殊邏輯之類的,也都是M點(diǎn)內(nèi)部運(yùn)算完成以后再輸出到Y(jié)點(diǎn)

簡(jiǎn)單來說,不能動(dòng)的條件全部串到Enable前面,Enable沒了氣缸塊自己保持自己的狀態(tài),要做自動(dòng)撤回就在輸出上再串上enable,包括1L提到的什么屏蔽,無非不給使能嘛;要求動(dòng)的條件全部并到InPut前面,手動(dòng)也是動(dòng),自動(dòng)也是動(dòng),手自動(dòng)共享塊提供的基本功能和超時(shí)保護(hù),至于點(diǎn)動(dòng)也好,連續(xù)也好,控制一下輸入不就行了,另外寫程序去搞定,如果頻繁使用也可以封裝~
本帖最近評(píng)分記錄:
  • 下載積分:+5(oyangsiyuan) 好貼好貼!