jeffSCH Posted April 19, 2013 Share Posted April 19, 2013 hi, I need help to create a autoit programm to communicate with a PLC connect by USB. I found help to communicate with TCP ethernet comunication but it is different with USB. Firstly i need to recognize the differents devices (and my PLC). I found an UDF to use COM port. I did a little programm to recognize with the file : commg.dll #include <GUIConstantsEx.au3> #include <ButtonConstants.au3> #include <WindowsConstants.au3> #include-once #include<CommMG.au3> ;******************************************************************************************************************************************************************* Func quitter() $quitter = True EndFunc HotKeySet("^q","quitter") $var = DriveGetType( "C:\Windows\system32\drivers\libusb0.sys" ) MsgBox(4096, "Drive Type:", $var) $var2 = DriveGetDrive( "all" ) MsgBox(4096,"", "Found " & $var2[0] & " drives") $GUI2 = GUICreate("Gui 2", 500, 100, 300, 200) $Label2 = GUICtrlCreateLabel("Port", 94, 32, 23, 17) $CmboPortsAvailable = GUICtrlCreateCombo("", 127, 28, 145, 25) $portlist = _CommListPorts(0);find the available COM ports and write them into the ports combo For $pl = 1 To $portlist[0] GUICtrlSetData($CmboPortsAvailable, $portlist[3]);_CommListPorts()) Next GUISetState(@SW_SHOW,$GUI2) sleep(10000) I used this function wich is in the include commMG.au3: Global $fPortOpen = False Global $hDll Global $DLLNAME = 'commg.dll' Func _CommListPorts($iReturnType = 1) Local $vDllAns, $lpres If Not $fPortOpen Then ConsoleWrite($DLLNAME & @LF) $hDll = DllOpen($DLLNAME) If $hDll = -1 Then SetError(2) $sErr = 'Failed to open commg2_2.dll' Return 0;failed EndIf $fPortOpen = True EndIf If $fPortOpen Then $vDllAns = DllCall($hDll, 'str', 'ListPorts') If @error = 1 Then SetError(1) Return '' Else ;mgdebugCW($vDllAns[0] & @CRLF) If $iReturnType = 1 Then Return $vDllAns[0] Else Return StringSplit($vDllAns[0], '|') EndIf EndIf Else SetError(1) Return '' EndIf Link to comment Share on other sites More sharing options...
stormbreaker Posted April 20, 2013 Share Posted April 20, 2013 (edited) From your script: $var = DriveGetType( "C:\Windows\System32\driverslibusb0.sys" )Were you able to get the Drive-type of a Driver?Check the help file for DriveGetType() function. Edited April 20, 2013 by MKISH ---------------------------------------- :bye: Hey there, was I helpful? ---------------------------------------- My Current OS: Win8 PRO (64-bit); Current AutoIt Version: v3.3.8.1 Link to comment Share on other sites More sharing options...
jeffSCH Posted April 26, 2013 Author Share Posted April 26, 2013 i just want to recognize the device which use this driver and i don't know why. Devices are recognize except my PLC device which not use com port... Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now