רÀûÃû³Æ£ºÒ»ÖÖ»ùÓÚºìÍâ¶ÔÉäµÄ°õ·¿·À×÷±×·½·¨
¼¼ÊõÁìÓò£º
±¾·¢Ã÷Éæ¼°Ò»ÖÖ¼ÆËã»úÓ¦Óü¼Êõ£¬¾ßÌåµØËµÊÇÒ»ÖÖ»ùÓÚºìÍâ¶ÔÉäµÄ°õ·¿·À×÷±×·½·¨¡£
±³¾°¼¼Êõ£º
Ëæ×ŵç×ӵذõµÄÆÕ¼°£¬°õ·¿¹ÜÀíÈí¼þµÄ×÷ÓÃÏÔµÃÔ½À´Ô½ÖØÒª£¬µ«Ä¿Ç°µÄ°õ·¿¹ÜÀíÈí¼þÖÐÒ»°ãÖ»ÄÜʵÏÖ³ÆÖصŦÄÜ£¬¼òµ¥µÄ»ñÈ¡ÎïÁϵÄÖØÁ¿£¬Õë¶Ô¹ý°õ¹ý³ÌÖеÄһЩ×÷±×µÄ·½·¨Ò»°ãÖ»ÄÜʹÓÃÈ˹¤¼à¿ØµÄ·½Ê½½øÐÐÔ¤·À£¬Ð§Âʵͣ¬Ð§¹ûÒ²Ò»°ã¡£
·¢Ã÷ÄÚÈÝ
±¾·¢Ã÷µÄ¼¼ÊõÈÎÎñÊÇÕë¶ÔÉÏÊöÏÖÓм¼ÊõµÄ²»×㣬ÌṩһÖÖ»ùÓÚºìÍâ¶ÔÉäµÄ°õ·¿·À×÷±×·½·¨¡£±¾·¢Ã÷µÄ¼¼ÊõÈÎÎñÊǰ´ÒÔÏ·½Ê½ÊµÏÖµÄÒ»ÖÖ»ùÓÚºìÍâ¶ÔÉäµÄ°õ·¿·À×÷±×·½·¨£¬ ÆäÌØµãÊÇ
ÔÚ°õÌåǰºóÁ½¶Ë¸÷°²×°Ò»¶ÔºìÍâ¶ÔÉäÉ豸£» ºìÍâ¶ÔÉäÉ豸ͨ¹ýÐźÅÏßÁ¬½Óµ½¿ª¹ØÁ¿IO¿¨£» ÀûÓÃIO¿¨½«ºìÍâ¶ÔÉäµÄµçѹÐźÅת»»ÎªµçƽÐźŴ«µÝµ½¼ÆËã»ú£» ͨ¹ýÈí¼þÓë°å¿¨Í¨ÐŵĽӿڶÔÏ󽫽ÓÊÕµ½µÄµçƽÐźÅʶ±ðΪÊý×ÖÐźţ» Èí¼þÖÐͨ¹ýÅжÏÊý×ÖÐźţ¬¶Ô¹ý°õ¹ý³ÌÖÐÊÇ·ñ´æÔÚ×÷±×ÏÖÏó½øÐÐÅжϣ¬ÈôÅжϳöǰ¶ËºÍ/»òºó¶ËµÄºìÍâ¶ÔÉä±»µ²×¡£¬Ôò¹ý°õ¹ý³ÌÖдæÔÚ×÷±×ÏÖÏó¡£±¾·¢Ã÷µÄ·½·¨½«ºìÍâ¸ÐÓ¦¼¼Êõ¼°ÎïÁªÍø¼¼ÊõÏà½áºÏ£¬ÔÚ²»ÓÃÈ˹¤¼à¿ØµÄǰÌáÏÂÒ²¿ÉÒÔÓÐЧµÄÔ¤·À³ÆÖعý³ÌÖеijµÁ¾²»ÍêÈ«Éϰõ×÷±×ÏÖÏóºÍÁ½³µÍ¬Ê±Éϰõ×÷±×ÏÖÏó£¬Ìá¸ß°õ·¿¹ÜÀíÈí¼þµÄ¿Æ¼¼º¬Á¿£¬Äܹ»ÓÐЧµÄÌá¸ß¹ý°õЧÂÊ£¬¸øÆóÒµ´øÀ´½Ï´ó¾¼ÃÐ§Òæ¡£
¸½Í¼1ÊDZ¾·¢Ã÷»ùÓÚºìÍâ¶ÔÉäµÄ°õ·¿·À×÷±×·½·¨µÄÔÀíͼ(Ò»)£» ¸½Í¼2ÊDZ¾·¢Ã÷»ùÓÚºìÍâ¶ÔÉäµÄ°õ·¿·À×÷±×·½·¨µÄÔÀíͼ(¶þ)£» ¸½Í¼3ÊDZ¾·¢Ã÷»ùÓÚºìÍâ¶ÔÉäµÄ°õ·¿·À×÷±×·½·¨µÄÔÀíͼ(Èý)¡£
¾ßÌåʵʩÀý·½Ê½²ÎÕÕ˵Ã÷Ê鸽ͼÒÔ¾ßÌåʵʩÀý¶Ô±¾·¢Ã÷µÄ»ùÓÚºìÍâ¶ÔÉäµÄ°õ·¿·À×÷±×·½·¨×÷ÒÔÏÂÏêϸµØËµÃ÷¡£ÊµÊ©Àý
ÔÚ°õÌå¦Éǰ¶Ë°²×°Ò»¶ÔºìÍâ¶ÔÉäÉ豸2£¬ÔÚ°õÌå1ºó¶Ë°²×°µÚ¶þ¶ÔºìÍâ¶ÔÉäÉ豸3¡£
ºìÍâ¶ÔÉäÉ豸1¡¢ºìÍâ¶ÔÉäÉ豸2·Ö±ðͨ¹ýÐźÅÏßÁ¬½Óµ½¿ª¹ØÁ¿IO¿¨PCI1761¡£È總ͼ1¡¢2Ëùʾ£¬³ÆÖØÊ±Èô³µÁ¾4ǰÂÖ»òºóÂÖûÓÐÍêȫͣÔÚ³ÆÌ¨ÉÏ£¬¶øÊÇÔÚ³ÆÌ¨µÄ±ßÑØÓëµØÃæÖ®¼äʱ£¬ºìÍâ¶ÔÉäÉ豸1»òºìÍâ¶ÔÉäÉ豸2µÄºìÍâ¹âÏß±»×è¶Ï£¬ºìÍâ¶ÔÉäϵͳΪ¶Ï¿ª×´Ì¬£¬´ËʱºìÍâ¶ÔÉäÉ豸1»òºìÍâ¶ÔÉäÉ豸2½«Ðźŷ¢Ë͵½¿ª¹ØÁ¿IO¿¨PCI1761µÄijһ·£¬Í¨¹ýÈíÓ²¼þ½Ó¿Ú¶ÁÈ¡PCI1761Õâһ·µÄ״̬Ϊ¸ßµçƽ״̬(±¨¾¯×´Ì¬)£¬²¢¾Ý´ËÅжϳö³µÁ¾4ûÓÐÍêÈ«ÉϺ⣬´æÔÚѹ±ßÏÖÏó£¬Èí¼þͨ¹ýÏà¹ØµÄ·½Ê½È絯³ö±¨¾¯Ìáʾ¿ò¸æ¾¯Ë¾°õÔ±£¬´Ëʱ£¬°õ·¿¹ÜÀíϵͳ½ûÖ¹ÈκÎÈ˱£´æÊý¾ÝºÍ´òÓ¡°õµ¥£¬Ö±ÖÁ³µÁ¾ÍêÈ«ÉϺ⡣µ±³µÁ¾4ÍêȫͣÔÚ³ÆÌ¨ÉÏʱ£¬ºìÍâ¶ÔÉäÉ豸1ºÍºìÍâ¶ÔÉäÉ豸2Ϊ½Óͨ״̬£¬¹ý³ÌͬÉÏ£¬ÕâʱÈí¼þ¶ÁÈ¡µÄPCI1761ijһ·µÄ״̬ΪµÍµçƽ״̬(Õý³£×´Ì¬)£¬ÕâÑù¾ÍÔÊÐíÕý³£¹ý°õ¡£×ÜÊö֮Ϊ£¬µ±³µÁ¾ÉÏºâ³ÆÖØÊ±£¬ÏµÍ³ÊµÊ±¼ì²âIO¿¨µÄ״̬£¬²¢¾Ý´ËÅжϳµÁ¾ÊÇ·ñÍêÈ«ÉϺ⣬Ȼºó·Ö±ð½øÐÐһЩÏàÓ¦µÄºóÐø²Ù×÷£¬ÕâÑù¿ÉÓÐЧµØÔ¤·À³µÁ¾²»ÍêÈ«ÉϰõºÍÁ½³µÍ¬Ê±ÉϰõµÄ×÷±×¡£È總ͼ3Ëùʾ£¬µ±Á½³µ4ͬʱÉϰõʱ£¬ºìÍâ¶ÔÉäÉ豸2µÄºìÍâ¹âÏß±»×è¶Ï£¬Í¬Ñù»áµ¯³ö±¨¾¯Ìáʾ¡£Èí¼þ·½Ã棬·â×°ÓÚIO°å¿¨µÄ½Ó¿Ú³ÌÐò£¬Íê³ÉÈçϼ¸¸ö¹¤×÷
1)³õʼ»¯½Ó¿Ú£¬Ö÷ÒªÍê³É°å¿¨³õʼ»¯£¬×¼±¸½øÐкóÐø²Ù×÷£»
2)×¢Ïú½Ó¿Ú£¬Íê³É½Ó¿ÚµÄ½âÎö£¬±ãÓÚ½Ó¿ÚºóÐøÄܹ»¼ÌÐøÊ¹Óã»
3)¶Áȡijһ·Ðźţ¬¶ÁÈ¡´«µÝµ½°å¿¨Ä³Ò»Â·µÄÐźţ»
4)Ïòijһ·дÐźţ¬Ïò°å¿¨Ä³Ò»Â·Ð´Ðźš£ÈíÓ²¼þ½Ó¿ÚºËÐijÌÐòαÂëÈçÏ UAPIº¯Êý˵Ã÷
Function Long DRV_DeviceOpen(Long DeviceNum, Ref Long DriverHandle) Function Long DRV_GetErrorMessage(Long li_errcode, String ls_szErrMsg) Function Long DRV_DeviceClose(Ref Long DriverHandle)
Function Long DRV_DioffriteBit( Long DriverHandle, Ref PT_DiowriteBit DioffriteBit)
Function Long DRV_DioReadBit ( Long DriverHandle, Ref PT_DioReadBit DioReadBit)
Function Long DRV_GetAddress(Ref ULong refvalue ) Library ¡¨adsapi32. dll¡¨ 2¡¢Êý¾Ý½á¹¹ËµÃ÷
1)¶Á¿¨ÓÃÊý¾Ý½á¹¹
global type pt_dioreadbit from structure integerport
integerbit
unsignedlongstate
end type
2)д¿¨ÓÃÊý¾Ý½á¹¹
global type pt_diowritebit from structure integerport±íʾ¼ÆËã»úÄڵĵÚal_
integerbit
unsignedlongstate
end type
3¡¢³õʼ»¯Î±Âë
¹¦ÄÜÃèÊö³õʼ»¯¼ÆËã»úÄڵĵÚaldevicenum¿é°å¿¨´«Èë²ÎÊý valuelongal_devicenum
devicenum¿é°å¿¨0 ±íʾµÚÒ»¿é°å¿¨£¬1 ±íʾµÚ¶þ¿é°å¿¨
µ÷Óð忨³õʼ»¯ API º¯Êý il_errcode = DRV_DeviceOpen(al_devicenum, il_ driverhandle)
ildriverhandleΪ°å¿¨³õʼ»¯ºó²úÉúµÄ¾ä±ú IF il_errcode O 0³õʼ»¯Ê§°Ü·µ»ØFalse ELSE³õʼ»¯³É¹¦·µ»ØTrue
4¡¢×¢ÏúαÂë
¹¦ÄÜÃèÊöÔÚ³ÌÐòÍ˳öʱ¹Ø±Õ°å¿¨£¬±£Ö¤°å¿¨µÄÕý³£¹Ø±Õµ÷Óð忨עÏúAPIº¯Êý
il_errcode = DRV_DeviceClose (il_driverhandle) il_driverhandle Ϊ°å¿¨³õŲ̊»¯Ê±·µ»ØµÄ¾ä±ú
IF il_errcode O 0 ×¢Ïúʧ°Ü·µ»Ø False ELSE×¢Ïú³É¹¦·µ»ØTrue
5¡¢¶Áȡijһ·ÐźÅαÂë
¹¦ÄÜÃèÊö¶ÁÈ¡°å¿¨µÄijһλ
value
value
integer
integer
ai¡ªport
ai bit
°å¿¨±àºÅµÚÒ»¿é±à
°å¿¨µÄ·Êý£¬×ܹ²
´«Èë²ÎÊý ºÅΪ0
8·ÓÉ0µ½7
ipiM^^a^lW pt_dioreadbit_instance fS^Jft^S port bit state State Ϊµ÷Óà API º¯Êý²úÉú State = DRV_GetAddress (refvalue_instance) refvalue_instance ΪҪ·µ»ØµÄ¶Á¿¨µÄ״ֵ̬
µ÷ÓöÁ¿¨ API º¯Êý DRV_DioReadBit (il_driverhandle, pt_dioreadbit_instance) ¶Áµ½µÄ¿¨µÄijһ·µÄ״ֵ̬ÓÉrefvaluejnstance·µ»Ø 6¡¢Ïòijһ·дÐźÅαÂ빦ÄÜÃèÊöÏò°å¿¨µÄijһ·дһ¸öµçƽÐźÅ
´«Èë²ÎÊývalue integerai_port°å¿¨±àºÅµÚÒ»¿é±à
ºÅΪ0
valueintegerai¡ªbit
Êý£¬×ܹ²8·ÓÉ0µ½7
valueunsignedlongaul_state^£»Ò»^Á¢°×É×
״̬£¬0ΪµÍµçƽ£¬1Ϊ¸ßµçƽ
¸øÐ´¿¨½á¹¹Ìåpt_diowritebit_instance¸³³õÖµ°üÀ¨port bit Mate·Ö±ð¶ÔÓ¦Èý¸ö´«ÈëµÄÈý¸ö²ÎÊý
µ÷ÓÃд¿¨ API º¯Êý il_errcode =DRV_diowritebit(il_driverhandle, pt_ diowritebit_instance)½«ÐźÅдÈ뿨ÖÐ
¸ù¾Ýд¿¨·µ»ØÖµil_errCOdeÅжÏÊÇ·ñд¿¨³É¹¦·Ö±ð½øÐкóÐø´¦Àí¡£
ȨÀûÒªÇó
1. Ò»ÖÖ»ùÓÚºìÍâ¶ÔÉäµÄ°õ·¿·À×÷±×·½·¨£¬ÆäÌØÕ÷ÔÚÓÚÔÚ°õÌåǰºóÁ½¶Ë¸÷°²×°Ò»¶ÔºìÍâ¶ÔÉäÉ豸£»ºìÍâ¶ÔÉäÉ豸ͨ¹ýÐźÅÏßÁ¬½Óµ½¿ª¹ØÁ¿IO¿¨£»ÀûÓÃIO¿¨½«ºìÍâ¶ÔÉäµÄµçѹÐźÅת»»ÎªµçƽÐźŴ«µÝµ½¼ÆËã»ú£»Í¨¹ýÈí¼þÓë°å¿¨Í¨ÐŵĽӿڶÔÏ󽫽ÓÊÕµ½µÄµçƽÐźÅʶ±ðΪÊý×ÖÐźţ»Èí¼þÖÐͨ¹ýÅжÏÊý×ÖÐźţ¬¶Ô¹ý°õ¹ý³ÌÖÐÊÇ·ñ´æÔÚ×÷±×ÏÖÏó½øÐÐÅжϣ¬ÈôÅжϳöǰ¶ËºÍ/»òºó¶ËµÄºìÍâ¶ÔÉä±»µ²×¡£¬Ôò¹ý°õ¹ý³ÌÖдæÔÚ×÷±×ÏÖÏó¡£
È«ÎÄÕªÒª
±¾·¢Ã÷¹«¿ªÁËÒ»ÖÖ»ùÓÚºìÍâ¶ÔÉäµÄ°õ·¿·À×÷±×·½·¨£¬ÊôÓÚ¼ÆËã»úÓ¦Óü¼Êõ¡£¸Ã·½·¨»ùÓÚºìÍâ¶ÔÉä¼¼Êõ£¬ÀûÓÃIO¿¨½«ºìÍâ¶ÔÉä²úÉúµÄÄ£ÄâÐźÅת»»ÎªÊý×ÖÐźţ¬½ø¶øÍ¨¹ýÈíÓ²¼þ½Ó¿Ú½«´ËÊý×ÖÐźŴ«µÝ¸ø°õ·¿µÄÈí¼þ¿ØÖÆÏµÍ³£¬°õ·¿µÄÈí¼þ¿ØÖÆÏµÍ³¸ù¾ÝºìÍâ¶ÔÉ䵲סÓë·ñ²úÉúµÄ²»Í¬ÐźŶԼÜÉèÔڵذõÁ½¶ËµÄºìÍâ¶ÔÉäÆ÷½øÐÐÊÇ·ñ±»³µÁ¾µ²×¡µÄÅжϣ¬½ø¶øÅжϳöÔÚ¹ý°õ¹ý³ÌÖÐÊÇ·ñ´æÔÚ×÷±×µÄÏÖÏó¡£ÓëÏÖÓм¼ÊõÏà±È£¬±¾·¢Ã÷µÄ»ùÓÚºìÍâ¶ÔÉäµÄ°õ·¿·À×÷±×·½·¨¿ÉÒÔ¶Ô°õ·¿ÏµÍ³´æÔڵIJ»ÍêÈ«Éϰõ×÷±×ºÍÁ½³µÍ¬Ê±Éϰõ×÷±×½øÐÐÓÐЧµÄÔ¤·À£¬¾ßÓкܺõÄÍÆ¹ãÓ¦ÓüÛÖµ¡£
Îĵµ±àºÅG01G23/00GK102564550SQ20121003065
¹«¿ªÈÕ2012Äê7ÔÂ11ÈÕ ÉêÇëÈÕÆÚ2012Äê2ÔÂ13ÈÕ ÓÅÏÈȨÈÕ2012Äê2ÔÂ13ÈÕ
·¢Ã÷ÕßÓÚ¿¿, ÈÎÑåÇà, ÕÔÐñ¶« ÉêÇëÈË:À˳±¼¯ÍÅɽ¶«Í¨ÓÃÈí¼þÓÐÏÞ¹«Ë¾