本文內容基于SoMachine v4.3版本編寫,所用控制器型號:LMC058LF42,外接編碼器型號:XCC-1406PR01K
LMC058控制器本體提供:
2 個嵌入式專用 I/O 模塊(DM72F0 和 DM72F1),該模塊具有:
5 路快速輸入
2 路常規輸入
2 路快速輸出
如下圖所示,在SoMachine中DM72F0&DM72F1可配置的高速計數和編碼器類型如下:
專用功能分配標準及最大數量如下:
從配置類型來說,LMC058高速計數可以配置為:
Event_Latch
該功能可以配置為兩種情況:
鎖存(缺省):
鎖存是一種可以分配給快速輸入的功能,該功能用于記憶(或鎖存)持續時間短于掃描周期的所有脈沖,如果某個脈沖短于一次掃描,控制器將鎖存該脈沖,而該脈沖將在下一次掃描時更新,且該鎖存機制只能識別上升沿,下降沿不能鎖存,鎖存效果如下圖:
下面的時序圖顯示了鎖存的效果:
簡單的來說就是:鎖存允許捕捉和記錄持續時間短于控制器掃描時間的傳入脈沖。當輸入到達狀態 1 時,此狀態保持不變,直到 MAST 任務讀取輸入。
需要特別注意的是:鎖存僅在MAST任務中可以被使用。
每個專用模塊(DM72F0 或DM72F1)最多可以配置4路Event_latch(如下圖所示)
事件:
事件檢測可在跳變沿上啟動事件任務。 事件任務”可由上升沿、下降沿或這兩種輸入(I0 到 I3)觸發。
具體操作步驟如下:
配置DI點,如下圖所示,配置I0為Event_Latch0,模式為事件,上升沿觸發。
在應用程序樹中新建一個TASK任務,類型選擇“外部”,觸發使用BLOCK0_I0。
配置完成后,將需要被事件觸發的POU添加到Task任務下,當PLC檢測到I0上升沿時,該POU被觸發運行。
HSCSimple
HSCSimple就是單個輸入計數器,配置成Simple類型可以支持兩種類型的輸入模式:
一次性(One-shot):在此模式下,A輸入上每應用一次脈沖,計數器當前值寄存器就會(從用戶定義的值)遞減一次,直到計數器達到 0。(硬件配置如下圖所示)
在配置好輸入后,我們可以使用“HSCSimple_LMC058”功能塊對其進行操作。
功能塊引腳定義如下:
觸發功能塊后,可以看到輸出管腳CurrentValue管腳的值會從配置中的預設值開始不斷減小,直到0為止。
需要注意的是ACK_Modulo管腳可以復位計數值為初始值,但需要重新觸發Enable和Sync。
2、模數回路(Modulo-loop):在此模式下,計數器從 0 計數到用戶定義的模數值,然后返回到 0 并重新啟動計數,周而復始,反復執行。(硬件配置如下圖所示)
程序當中用到的功能塊與上面相同。
另外假如需要在程序當中修改計數器的預設值的話可以使用“EXPERTSetParam”功能塊。
功能塊引腳定義如下:
其中Param參數管腳可以修改的參數具體如下:
這里我以修改HSCSimple0的模數值為例,將模數值改為1000。將“要寫入的參數”改為“EXPERT_MODULO”,“參數值”改為1000。然后出發功能塊即可。
寫入完成后,Done管腳會置TRUE。
寫入完成。
-
控制器
+關注
關注
114文章
17054瀏覽量
183627 -
嵌入式
+關注
關注
5146文章
19600瀏覽量
316345 -
計數器
+關注
關注
32文章
2290瀏覽量
96250
原文標題:LMC058嵌入式I/O高速計數器功能詳解(上篇)
文章出處:【微信號:SE_AUT,微信公眾號:自動化小天地】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
各種功能的計數器實例(VHDL源代碼)
ARM嵌入式系統硬件設計及應用實例

lmc058運動控制器產品手冊
嵌入式系統教程之嵌入式系統的IO模塊詳細資料說明

評論