條件:歐姆龍PLC變送器的輸出信號為0-10V,對應溫度為-100--200攝氏度;CP1H的模擬量輸入量程設置為0-10V,分辨率選擇6000
目的:使用SCL2指令將模擬量轉換得到的數據0-6000(BIN)對應縮放到-100--200(BCD)攝氏度顯示輸出。
程序如下:
SCL2控制字解釋: 200:CP1H的模擬量輸入通道1 D100:偏移量(帶符號BIN)詳見下圖 D101:ΔX(帶符號BIN)詳見下圖 D102:ΔY(BCD)詳見下圖 D200:轉換結果通道
結果:程序執行后就可以實現0-6000(BIN)轉換到-100--200(BCD)攝氏度顯示了。
注:因為BCD數是以十六進制來表示十進制數據的,因此對應的溫度值應該用16進制方式去監視。
例如:當200CH中的數據是&4000(即6.66V電壓輸入),那么用十六進制監控數據D200應該顯示#100。 &符號表示十進制數;#表示十六進制數。
SCL指令應用案例
條件:歐姆龍PLC變送器的輸出信號為0-10V,對應壓力為0-400MPa;CP1H的模擬量輸入量程設置為0-10V,分辨率選擇6000。
目的:使用SCL指令將模擬量轉換得到的數據0-6000(BIN)對應縮放到0-400MPa(BCD)顯示輸出。 程序如下:
結果:程序執行后就可以實現0-6000(BIN)轉換到0-400(BCD)的壓力值了。 注:因為BCD數是以十六進制來表示十進制數據的,因此對應的壓力值應該用16進制方式去監視。
例如:當200CH中的數據是&3000(即5V電壓輸入),那么用十六進制監控數據D200應該顯示#200。 &符號表示十進制數;#表示十六進制數。
使用CPM1A-AD041的模塊采集模擬量4-20ma的信號,該模擬量信號取自一位移傳感器信號,代表一個0-100mm的距離,要怎么才能把輸入通道里的數據轉換成所對應的這個距離值呢?
可以使用SCL指令做此類的定標轉換,該指令的作用是把一個16進制數據線性轉換成一個BCD碼的數據,這條指令有3個操作數見圖1,S為源字,P1是參數首字,R是結果字,從P1到P1+3要設置4個值,P1是AY,P1+1是AX,P1+2是BY,P1+3是BX(見圖2),在此例中因為輸入的數據范圍是0-1770 HEX,所以P1+1和P1+3分別是0和1770,而定標結果是0-100,所以P1和P1+2分別是0和100.具體可以這么做,例如AD041的輸入通道是002,把DM0作為參數首字,D10作為結果字存放0-100的距離值。
SCL 2 DM0 DM10 在執行SCL指令前先用MOV指令對DM0-DM3里分別賦值0,0,100,1770。之后SCL指令就能把輸入的模擬量值定標成0-100的距離值了。
CPM1A-MAD02-CH使用了4路輸入,但是它的輸入數據是每兩路放一個通道的,這樣就無法進行監視或處理單獨一路的輸入數據了,有什么辦法可以把兩路數據分離開嗎?
可以用MOVD指令,分別把兩路數據傳送到一個單獨的通道。該指令有3個操作數,
操作數排列如圖1,S是源字,也就是用模擬量輸入的通道,DI是指定數位號,每個數字指定方式如上圖2,也就是指定從源字中哪一個數字開始傳送(一個通道是4個16進制數字,一路輸入是半個通道,也就是2個16進制數字),傳送幾個數字,傳送到目標通道的哪個數字,D就是指定目標通道。例如現在MAD02的第一第二路輸入的通道是002通道,現在要把第一路數據傳送到DM0,第二路數據傳送到DM1,MOVD指令
CPM1A-AD041的外部輸入電流和電壓信號要如何接線?
電壓輸入:把外部的輸入正信號接V IN,負信號接com端;
電流輸入:把模塊上V IN和I IN的端子短接后接輸入正信號,負信號接com端。
CPM1A-MAD02-CH的參數應該怎么設置?
在n+1通道(n為分配給CPU單元或前一個擴展單元的最后一個輸出通道)的每個位對應的作用按照如下表分配,在量程對應的位是設定輸入輸出的量程范圍,在啟動位和平均值對應的位是設定該功能使用與否,例如4路輸入1路輸出全用4-20ma,平均值功能不用,就在N+1通道設置C3FF HEX就可以了。
CP1H-X□40D□-□的型號是如何定義的?
歐姆龍PLCMOVD指令的解釋
舉例說明如下:
S:200CH為傳送源地址,初始值為#ABCD(十六進制)。
D:300CH為傳送目標地址,初始值為#0000(十六進制)。
例1:D300為#0211: 從左往右解釋: 2表示傳送到目標字以位2開始(即8-11位)。
1表示傳送位數2位。
1表示傳送源字以位1開始(即4-7位)。
程序執行后,300CH中的值為#BC00。
例2:D300為#0230: 從左往右解釋: 2表示傳送到目標字以位2開始(即8-11位)。
3表示傳送位數4位。
0表示傳送源字以位0開始(即0-3位)。
程序執行后,300CH中的值為#CDAB。
CPM2A-30CDR-A配CPM1A-AD041和CPM1A-20EDR1地址是如何分配的?
CX-Programmer下傳程序的時提示UM區被保護,如何處理?
① 新建PLC程序時,在設備型號后的設定中選中了文件內存只讀,只要把文件內存只讀的鉤去掉即可;
② 詢問CPU型號:
a.CPM系列,DM 6602設為了×××1,可以在編程模式中將DM6602設為×××0后斷電上電即可;
b.C200Ha或CQM1系列,CPU蓋板下的開關中的DIP-1打在了On上,斷電將DIP-1打為Off上電即可;
c.CP/CJ/CS系列,如果CPU被加過寫保護密碼,需要先釋放密碼,CPU蓋板下的開關中的DIP-1打在了On上,斷電將DIP-1打為Off上電即可。
在輸入模擬量數據后,如果要把數據定標成帶小數點的數據,可以怎么做?
兩種辦法,一是把定標的結果數據放大10的N次方來得出小數點,例如需要2位小數,例如把0-0FA0的輸入定標成0-10.00V的BCD碼,帶兩位小數,那就當成0-1000來定標。
如果是CP1H或CQM1H那還有一種方法,就是如果把源數據轉成浮點數來做浮點運算,也能做到,但因為CPM系列的PLC不支持浮點數,所以不能用這個方法。
4-20ma模擬量輸入的時候,輸入信號為4ma,但輸入通道的數據在0,65535兩個值跳,這是正常的嗎?實際使用中如果不能有這樣的數據怎么辦?
65535的16進制其實是FFFF,因為PLC是用二進制補碼表示負數的,其實這個數據是代表-1,也就是模擬量輸入在0到-1之間跳動,是屬于正常的。
如果處理跳變的現象,不要直接用輸入通道的數據,可以把這個數據傳送到另一個中間通道后再使用,之前用一條CPS比較指令判斷輸入信號是否是負的,如果是負的,就不傳送輸入通道數據而傳送0到這個中間通道,把信號作為0來處理
幾根常用的RS-232C通訊電纜的接線?
①電纜XW2Z-200S-V連接圖:
PLC(9孔)側 PC(9針計算機)側
2――――2
3――――3
9――――5
PLC的4與5短接
PC側的4與6短接, 7與8短接
②電纜XW2Z-200S-CV連接圖:
PLC(9孔)側 PC(9針計算機)側
2――――2
3――――3
4――――8
5――――7
9――――5
③電纜XW2Z-200P-V連接圖:
PLC(25孔)側 PC(9針計算機)側
2――――2
3――――3
7――――5
PLC側4,5短接,6,20短接。
計算機側4,6短接,7,8短接。
④電纜XW2Z-200T連接圖:
PLC(9孔)側 觸摸屏(9孔)側
2――――3
3――――2
9――――9
PLC和觸摸屏兩側的4,5都要短接。
CPM1A的外設口用CPM1-CIF11轉成RS-422口后連計算機側的RS-422電纜接線?
CIF11 計算機
SDA———RDA
SDB———RDB
RDA———SDA
RDB———SDB
NC模塊的參數設置注意事項
a)當m+2控制字設置為0000,即x軸使用保存在PCU的FLASH中的軸參數時,NC模塊控制電機正常;b)當m+2控制字設置為0001,即x軸使用分配給特殊I/O單元的數據存儲器區域字設置的軸參數時,NC模塊控制電機不正常。具體表現如下:在a)狀態時,開機搜索原點(n.06),然后手動控制電機進位,然后執行原點返回命令(n.07),電機返回原點;在b)狀態時,開機搜索原點,然后手動控制電機進位,然后執行原點返回命令(n.07),電機停止不動,檢查n+2.05位,發現為ON,即表示定位結束。
根據現象,判斷是NC模塊沒有完成正確的設置,以至于它沒有能夠正確判斷相對和絕對移動。檢查公共參數區域(m,m+1……),沒有發現問題。
但是在檢查到m+25~m+28參數區域時,這4個通道內值為0。這4個通道分別是設置CCW/CW的軟限位的。在以前的試驗中我們曾發現過當軟限位未設置的情況下,NC模塊不能執行正確的絕對和相對移動,現象是讓電機按照絕對移動或者相對移動模式,運行結果是一樣的,按照相對運行的模式運行。
所以估計是這個區域沒有設置導致客戶出現問題。
將m+25~m+26設置為C0000001,m+27~m+28設置為3FFFFFFF。斷電上電,按照b)模式運行,故障消除。
CJ1W-AD041的DM區設置?
對于DM字地址定義是m=20000+(單元號*100)D(m):輸入使用設置D(m+1):輸入信號范圍設置D(m+2):輸入1均值處理設置D(m+3):輸入2均值處理設置D(m+4):輸入3均值處理設置D(m+5):輸入4均值處理設置D(m+6)~D(m+17):未使用忽略設置D(m+18):高8位是轉換時間/分辨率設置,低8位是操作模式設置具體的參數設置請參照CJ1/CS1模擬量I/O單元中文操作手冊P86
例:
我用壓力傳感器輸入4-20mA,對應工作壓力為0-70p,用SCL指令源通道我用200,參數字用D100(內存設置D100,D101,D102,D103怎么寫),我要做4個報警,在用CMP指令做比較的時候,數據比較1寫D100,數據比較2寫4個報警的具體數值嗎?
1:分辨率為6000的情況下,四個參數字如下:D100:#0 D101:#0 D102:#70 D103:#1770 ;2:分辨率為12000的情況下,四個參數字如下:D100:#0 D101:#0 D102:#70 D103:#2EE0 ;
比如SCL指令的結果通道用的是D300,那么D300里面看到的就是0-70P之間的值,CMP指令和D300里面的當前工程量作比較,滿足一定條件輸出報警
例2:
兩個壓力傳感器是電流型4-20mA輸出、其量程為0-25Mpa,我將其分別接入200CH、201CH,實際工作中的壓力計算公式是:實際壓力 X=20*25*D200/6000。(分辨率假定為6000);
我的程序是:--P_on-------Mov #0 D100
|-Mov #0 D101
|-Mov #25 D102
|-Mov #1770 D103
--P_on-------Scl 200 D100 D200
|-Cmp D200 D0(設定值)
|-P_on--1000
你的定標是正確的,不過D102設成#25太小,精度太低,建議設為#2500.比較程序的判別標記不能使用P_ON
審核編輯:劉清
-
處理器
+關注
關注
68文章
19167瀏覽量
229153 -
轉換器
+關注
關注
27文章
8628瀏覽量
146872 -
變送器
+關注
關注
13文章
1374瀏覽量
90989 -
PLC控制器
+關注
關注
0文章
41瀏覽量
9118 -
SCL
+關注
關注
1文章
239瀏覽量
17038
原文標題:歐姆龍PLC指令應用案例,很難得的干貨
文章出處:【微信號:愛上PLC,微信公眾號:愛上PLC】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論