係統的框架如下圖
一台3U的plc,控製了3台步進電機,分別控製了X、Y、Z這3個(ge) 軸,PLC接了一個(ge) 手搖輪,可以手動控製這3個(ge) 軸,手搖輪的第一個(ge) 旋鈕可以選擇控製不同的軸,第二個(ge) 懸念可以選擇速度的倍率,然後通過轉盤控製電機正反運轉。
二、硬件設備:1.三菱PLC :FX3U-16MT-ES-A
2.42步進電機套裝:3台
3.數控機床電子手輪
三、軟件:所需軟件版本:GX Works2(1.576A版本)
四、I/O分配:
輸入點 |
注釋 |
輸出點 |
注釋 |
X0 |
手輪A相 |
Y0 |
X軸電機脈衝(chong) |
X1 |
手輪B相 |
Y1 |
Y軸電機脈衝(chong) |
X2 |
X軸檔位 |
Y2 |
Z軸電機脈衝(chong) |
X3 |
Y軸檔位 |
Y3 |
X軸電機方向 |
X4 |
Z軸檔位 |
Y4 |
Y軸電機方向 |
X5 |
1倍檔 |
Y5 |
Z軸電機方向 |
X6 |
10倍檔 |
Y6 |
|
X7 |
100倍檔 |
Y7 |
五、程序編寫(xie) 及思路:
(1)根據3U高速計數器的表格,可以找到X0和X1對應的高速計數器對應的高速計數器是C251。
我們(men) 隻需要把手輪上轉盤的兩(liang) 個(ge) 信號點,接入X0和X1就可以,用以下的程序就能紀錄手輪發出的脈衝(chong) 信號個(ge) 數
(2)通過M8012的上升沿信號用DMOV指令把脈衝(chong) 數讀取到D0裏麵,每隔100ms讀取1次,1倍檔時我們(men) 乘以10倍放到D2寄存器裏麵,就是相當於(yu) 算出了1秒裏麵能夠發送的脈衝(chong) 數,1s發送的脈衝(chong) 數就是的頻率,後麵控製的程序就用這個(ge) D2的數據去控製,10倍檔就控製乘以100,100倍檔就乘以1000,最後麵清空下這個(ge) 高速計數器。這樣每隔100ms就刷新一般數據(這裏我的手輪一圈的脈衝(chong) 數和步進電機轉一圈需要的脈衝(chong) 數是一致的,假如不同,那你需要根他們(men) 的比值去做一個(ge) 乘法或者除法的運算),另外,3U的plc沒有手輪控製的功能,我們(men) 程序沒辦法做到絕對的同步,動作存在誤差。
(3)由於(yu) 硬件的限製,頻率一超過10000HZ時步進電機就控製不了(不同的電機硬件這個(ge) 頻率可能不一樣,不一定是10000),所以這個(ge) 參數需要根據你實際的數據去測試這個(ge) 數據多大是極限,防止我們(men) 手輪搖的過快),所以下麵做了限製
(4)最後麵,使用可變速脈衝(chong) 輸出指令控製,不同的軸的X點對應不同的Y點進行輸出,頻率采用前麵計算出來的D2進行控製。