台達PLC(可程式邏輯控制器) 計次程式

請教有人會編寫 PLC 程式嗎

目前遇到1點小瓶頸 ..

如何計算機器運行次數以小數點方式顯示在人機介面

我的寫法是用PLS去做計次 每60秒計算1次總合
所以顯示出來的值只能從個位數起跳

我想問問是否能怎麼寫 讓每分鐘運行次數顯示至小數點後1位,例如 5.2 , 6.8
計數器1次就是1次,從沒聽過有0.幾次的,而且計數器範圍是1~多少次,單位最小就是1
弄不懂為何要0.幾次?

a0215b0726 wrote:
計數器1次就是1次,...(恕刪)

同意...應該為整數,小數點次數有點奇怪
計數器我沒用過小數點方式...
真是抱歉 沒有完整表達我的意思 讓大家誤會了

我是指 每分鐘運行次數

例如 運行次數可能為 每分鐘 4次半 或是 4.2次 , 就是要計算 機器跑1個cycle要用掉多少時間
然後以分鐘為單位做顯示,只取到小數點後1位
機器跑1個cycle如果要17秒,那就是說每分鐘能跑 3.529個cycle

這樣不知道大家能不能了解 .....
其實我只懂一點點的PLC所以不知道該怎麼表達才完整 ...

請問台達的PLC 有哪一個指令是計算 同1個點的觸發間隔 ?
例如 M25 的觸發間隔,每個cycle都會觸發M25 一次,哪個指令能拿來計算它的間隔時間 ? 以秒為單位

我是不是能取它的間隔時間暫存 然後跟分鐘相除就能得到我要的數據 ?
那,何不就顯示每個cycle需要幾秒呢?
只要你的plc算出一個cycle需要幾秒,人機介面就只需要拿這個值出來跟一分鐘作比較,自然就可以得出一分鐘跑了x.x次的結果。
fake802 wrote:
那,何不就顯示每個c...(恕刪)


請問指令是哪一個,我不知道要用哪1個指令來做計算 ......
程式邏輯問題, 跟用什麼指令無關, 學PLC指令跟邏輯是兩回事. 然後樓主的問題是最基本的數學問題而已.

假設拿馬達來說一分鐘跑60rpm, 那每個cycle就是1s, 如果是600rpm, 每個間隔時間就是0.1s=100ms.
那500rpm呢? 就是60/500=0.12s=120ms, 反過來可不可以從間隔時間去取得rpm數?

60/rpm數=時間間隔. 那時間間隔已知, 就能推算出有小數點的rpm數了.
取得週期的方法不難, 假設第一次觸發的時候目前把時間記起來, 下次再觸發的時候再把現在時間減掉
上次觸發時間, 不就知道上次到這次觸發的時間週期了嗎? 再把這次的時間記起來給下一次用.
與失敗為伍者,天天靠盃都是別人的錯。 與成功為伍者,天天跟失敗切磋直到不再出錯。
小數點無法標示 但可以這樣想阿

用整數算 假設是data值 655的話 實際想要標示的值是65.5

就用655 / "10" = 65 為新的data

新的data 65再乘上10 = "650" 又出現第二個新的data

再用原來的值655 - 650 --->出現第三個新的data 也就是"5"

這樣就有兩個data值了

第一個是65 第三個是5 至於650沒啥用...隨意發揮

如果是要顯示在觸控面板上 就劃分為兩個框框個別填入就好了

大不了框框間點個點 這樣就出來了..... | 65|.|5 |

不過有個致命缺點是無法算到結果是個位數導成的 0.0
那麼就適當加入比較方法 data小於"10" 那麼直接顯示第一個是0(上述算法的結果) 小數點是個位數值

如果還要考量到計次 那就再最後"各"新增一個data
old值+new值=old值 小數點大於10就在原有的old值+1
次序排一排就有頭緒了 還有更簡單的方法 不過我還要靠這行吃飯 能動就好~~~加油吧!!
Laurence~~~~~

hwan7200828 wrote:
小數點無法標示 ...(恕刪)


我後來有自已嘗試修改 , 不過似乎無法成功 ...
因為同1個觸發點 要計算它每次觸發的時間間距 是不可行的 ....

故 .... 此題無解 ..
通常在PLC計算都用整數計算,可先放大倍率,然後在HMI再把數值顯示小數點位數縮回來,請參考!
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!