PDA

View Full Version : Hiển thị toàn bộ trạng thái In/Out trong Mach3



giaiphapcnc
07-07-2015, 12:17:52 PM
Trong trường hợp card của các bác có nhiều cổng In/Out và muốn kiểm tra trạng thái thì màn hình Mach3 không đáp ứng được. Giải pháp để hiển thị toàn bộ In/Out cho Mach3 là sử dụng thêm UserLED. Để thực hiện việc này có thể viết Brain hoặc Plugin, Macro. Dưới đây là giải pháp sử dụng macropump để hiển thị thêm các trạng thái In/Out Input: từ OEMTrigger 1-15, OUTPUT: 7-20, Charge Pump, Charge Pump2, và Current Hi/Low. Màn hình Test sử dụng màn hình của 1024TestIO của Scott.

Macropump trong Mach3 được quét với tần số 10Hz (100ms sẽ được quét 1 lần). Tần số này bằng tần số quét Brain và PluginUpdate.

Dưới đây là source code Macro và màn hình và file đính kèm. Cần Copy macro vào thư mục Macro với profile đang hoạt động (chẳng hạn C:\Mach3\macros\Mach3Mill) và Enable Macropump để chương trình hoạt động.

Màn hình 1024TestIO copy vào thư mục Mach3. Sau đó chọn: View -> Load Screen -> Chọn 1024TestIO. Sẽ thấy toàn bộ Input/Output ở màn tab Diagnostics

9379
Enable Macropump

9380
Màn hình Diagnostics




'-----------------------------------------------------------------
'Hien thi trang thai In/Out trong Mach3
'Su dung Macropump: tan so quet 10Hz (100ms se quet 1 lan)
'man hinh Test su dung TestIO cua Scott
'Dev: www.tntmech.com
'-----------------------------------------------------------------
Sub Main
'Phan Input: OEMTRIG1 -> OEMTRIG15
Call SetUserLEDTNT (1301,IsActive(OEMTRIG1))
Call SetUserLEDTNT (1301,IsActive(OEMTRIG1))
Call SetUserLEDTNT (1302,IsActive(OEMTRIG2))
Call SetUserLEDTNT (1303,IsActive(OEMTRIG3))
Call SetUserLEDTNT (1304,IsActive(OEMTRIG4))
Call SetUserLEDTNT (1305,IsActive(OEMTRIG5))
Call SetUserLEDTNT (1306,IsActive(OEMTRIG6))
Call SetUserLEDTNT (1307,IsActive(OEMTRIG7))
Call SetUserLEDTNT (1308,IsActive(OEMTRIG8))
Call SetUserLEDTNT (1309,IsActive(OEMTRIG9))
Call SetUserLEDTNT (1310,IsActive(OEMTRIG10))
Call SetUserLEDTNT (1311,IsActive(OEMTRIG11))
Call SetUserLEDTNT (1312,IsActive(OEMTRIG12))
Call SetUserLEDTNT (1313,IsActive(OEMTRIG13))
Call SetUserLEDTNT (1314,IsActive(OEMTRIG14))
Call SetUserLEDTNT (1315,IsActive(OEMTRIG15))



'Phan Output: OUTPUT7-> OUTPUT20

Call SetUserLEDTNT (1316,IsOutputActive(OUTPUT7))
Call SetUserLEDTNT (1317,IsOutputActive(OUTPUT8))
Call SetUserLEDTNT (1318,IsOutputActive(OUTPUT9))
Call SetUserLEDTNT (1319,IsOutputActive(OUTPUT10))
Call SetUserLEDTNT (1320,IsOutputActive(OUTPUT11))
Call SetUserLEDTNT (1321,IsOutputActive(OUTPUT12))
Call SetUserLEDTNT (1322,IsOutputActive(OUTPUT13))
Call SetUserLEDTNT (1323,IsOutputActive(OUTPUT14))
Call SetUserLEDTNT (1324,IsOutputActive(OUTPUT15))
Call SetUserLEDTNT (1325,IsOutputActive(OUTPUT16))
Call SetUserLEDTNT (1326,IsOutputActive(OUTPUT17))
Call SetUserLEDTNT (1327,IsOutputActive(OUTPUT18))
Call SetUserLEDTNT (1328,IsOutputActive(OUTPUT19))
Call SetUserLEDTNT (1329,IsOutputActive(OUTPUT20))

'CHARGE
'CHARGE2
'CURRENTHILOW
Call SetUserLEDTNT (1330,IsOutputActive(CHARGE))
Call SetUserLEDTNT (1331,IsOutputActive(CHARGE2))
Call SetUserLEDTNT (1332,IsOutputActive(CURRENTHILOW))

End Sub



Public Sub SetUserLEDTNT (ByVal LEDCtrl As Integer, Expression As Boolean)
If (Expression) Then
SetUserLED(LEDCtrl,1)
Else
SetUserLED(LEDCtrl,0)
End If
End Sub




Download file

9378