- 概述
智嵌物聯網ZQWL研發的DAM-5802D模塊提供了用戶編程接口,增強了應用的靈活性,簡化了用戶的編程的難度,縮短了開發產品的周期;用戶不需要了解板卡底層驅動,只需將控制邏輯和通訊協議嵌入其中即可。
DAM-5802D模塊提供keil開發環境下的函數庫,功能強大,使用方便。開發人員只需略懂C語言(提供詳盡技術指導和咨詢)就可以在本司DAM-5802D平臺上開發所需功能。
- 開關量相關函數
- Write_Relay函數
函數原型如下:
![poYBAGIQXymAXiQgAACF3bMkkFM425.png](https://file.elecfans.com/web2/M00/31/74/poYBAGIQXymAXiQgAACF3bMkkFM425.png)
該函數需被其他函數調用才能使用。
舉例:
Write_Relay(0,1);//閉合第一路繼電器的常開觸點,斷開常閉觸點。
Write_Relay(1,0);//斷開第二路繼電器的常閉觸點,打開常開觸點。
在使用過程中,注意傳入的參數(channel,status)不能出錯,channel的范圍為0到N,N為控制板IO輸出點個數;status的值只能為0或1。參數超出定義范圍時,函數將返回錯誤信息。
- Read_Relay函數
函數原型如下:
![pYYBAGIQXymAU63LAAB1sbz1Bdc328.png](https://file.elecfans.com/web2/M00/31/7B/pYYBAGIQXymAU63LAAB1sbz1Bdc328.png)
該函數需被其他函數調用才能使用。
舉例:
unsigned char temp = 0;
temp =Read_Relay(0);//讀取第一路的輸出狀態并將結果賦給temp。
temp =Read_Relay(3);//讀取第四路的輸出狀態并將結果賦給temp。
然后根據temp的值即可判斷當前IO輸出的狀態:
temp為0則:常開觸點斷開,常閉觸點閉合。
temp為1則:常閉觸點斷開,常開觸點閉合。
temp為2則:傳入的參數channel錯誤。
temp為3則:其他未知錯誤。
- 串口通訊相關函數
ZQWL_DAM_5802D有1個RS485接口,用于收發數據。
- UART_Init函數
函數原型如下:
![poYBAGIQZGWAVJ94AAC11jsZKG0655.png](https://file.elecfans.com/web2/M00/31/75/poYBAGIQZGWAVJ94AAC11jsZKG0655.png)
該函數為串口初始化函數,如果要使用RS232/485通訊功能,必須調用該函數來初始化通訊相關參數。
舉例:
![pYYBAGIQZGWACuv4AACByG09e3s672.png](https://file.elecfans.com/web2/M00/31/7C/pYYBAGIQZGWACuv4AACByG09e3s672.png)
注意該函數的第三個參數parity,必須為以下三種:
![poYBAGIQXyuAWQ6zAAADgx7TV4I798.png](https://file.elecfans.com/web2/M00/31/74/poYBAGIQXyuAWQ6zAAADgx7TV4I798.png)
。
如果該函數調用成功則返回值為0,否則返回相應的錯誤信息。
- UART_Send_Data函數
函數原型如下:
![pYYBAGIQZGWAJlFFAABVpzdlh5w654.png](https://file.elecfans.com/web2/M00/31/7C/pYYBAGIQZGWAJlFFAABVpzdlh5w654.png)
該函數為串口發送函數,調用該函數前必須正確調用UART_Init()函數。
舉例1,直接發送字符串:
UART_Send_Data("1234567890",10);
舉例2,將數組中數據發送出去:
unsigned char temp[10];
UART_Send_Data(temp,10);
- UART_Recv_Handler函數
函數原型如下:
![pYYBAGIQZGaAAG8wAAC3KO0Oy9o371.png](https://file.elecfans.com/web2/M00/31/7C/pYYBAGIQZGaAAG8wAAC3KO0Oy9o371.png)
該函數為類似中斷函數,不能被其他函數調用。必須在正確調用UART_Init()函數后該函數才能生效。建議在該函數中首先將buff中的數據復制出來,然后退出,在別的函數中進行數據的處理。
舉例:
![poYBAGIQZGaANCr9AAA6eTOP5bw457.png](https://file.elecfans.com/web2/M00/31/75/poYBAGIQZGaANCr9AAA6eTOP5bw457.png)
- 系統指示燈相關函數
該系列控制板有1個系統LED指示燈,可以用來指示系統運行的狀態。
- RUN_LED_Toggle函數
函數原型如下:
![pYYBAGIQXyyAMyZhAABNziPgoco773.png](https://file.elecfans.com/web2/M00/31/7B/pYYBAGIQXyyAMyZhAABNziPgoco773.png)
此函數實現系統LED的狀態翻轉功能(調用后原來熄滅則會點亮,原來點亮則會熄滅)。
舉例:
RUN_LED_Toggle();//調用后,指示燈狀態翻轉。
- RUN_LED_ON函數
函數原型如下:
![pYYBAGIQXyyANOnkAABKJCT4kDI349.png](https://file.elecfans.com/web2/M00/31/7B/pYYBAGIQXyyANOnkAABKJCT4kDI349.png)
舉例:
RUN_LED_ON();//點亮系統LED指示燈
- RUN_LED_OFF函數
函數原型如下:
![poYBAGIQXyyANPPSAABKaON2I1M934.png](https://file.elecfans.com/web2/M00/31/74/poYBAGIQXyyANPPSAABKaON2I1M934.png)
舉例:
RUN_LED_OFF();//熄滅系統LED指示燈
- 延時相關函數
- Delay_ms函數
函數原型如下:
![pYYBAGIQXy2APC66AABDF9N_hJY181.png](https://file.elecfans.com/web2/M00/31/7B/pYYBAGIQXy2APC66AABDF9N_hJY181.png)
舉例:
Delay_ms(500);//延時500毫秒。
Delay_ms(2000);//延時2000毫秒。
- Delay_us函數
函數原型如下:
![poYBAGIQXy2AEBANAABRSBGt4sA051.png](https://file.elecfans.com/web2/M00/31/74/poYBAGIQXy2AEBANAABRSBGt4sA051.png)
舉例:
Delay_us(500);//延時500微秒。
Delay_us(999);//延時999微秒。
函數原型如下:
![pYYBAGIQXy2AIKzSAAB1lBK8cPc237.png](https://file.elecfans.com/web2/M00/31/7B/pYYBAGIQXy2AIKzSAAB1lBK8cPc237.png)
該函數為中斷函數,不能被其他函數調用。每隔1ms中斷一次,用戶以此為基礎可以設計出各種定時服務功能。例如設計一個10ms定時服務功能:
![poYBAGIQXy2AGjWrAABV7HPGjtQ878.png](https://file.elecfans.com/web2/M00/31/74/poYBAGIQXy2AGjWrAABV7HPGjtQ878.png)
- 看門狗相關函數
- IWDG_Init函數
函數原型如下:
![pYYBAGIQXy2AJQYtAADJjzsd6uU012.png](https://file.elecfans.com/web2/M00/31/7B/pYYBAGIQXy2AJQYtAADJjzsd6uU012.png)
舉例:
IWDG_Init(WD_1000MS);//設置看門狗定時器為1000毫秒。
IWDG_Init(WD_2000MS);//設置看門狗定時器為2000毫秒。
- Feed_Dog函數
函數原型如下:
![poYBAGIQXy2Ac653AAAqwgAi4-4022.png](https://file.elecfans.com/web2/M00/31/74/poYBAGIQXy2Ac653AAAqwgAi4-4022.png)
如果調用了IWDG_Init(),那么, Feed_Dog()函數就必須周期調用,并且調用周期必須小于看門狗定時器設定值。否則,系統將不斷的復位。
建議在產品開發階段先不用看門狗功能,產品發布時再加上此功能。
- Flash相關函數
該系列控制板均提供128字節的用戶flash空間,可以用來存放控制板掉電后需要保存的參數,比如波特率,地址碼等。
- User_Flash_Write函數
函數原型如下:
![pYYBAGIQXy6ANQJwAACsPCHrvos325.png](https://file.elecfans.com/web2/M00/31/7B/pYYBAGIQXy6ANQJwAACsPCHrvos325.png)
舉例:
![poYBAGIQXy6AKmuQAAAftixOKeU309.png](https://file.elecfans.com/web2/M00/31/74/poYBAGIQXy6AKmuQAAAftixOKeU309.png)
- User_Flash_Read函數
函數原型如下:
![poYBAGIQXy6AQzaaAACdEBaX2AQ388.png](https://file.elecfans.com/web2/M00/31/74/poYBAGIQXy6AQzaaAACdEBaX2AQ388.png)
舉例:
![pYYBAGIQXy6ABMfJAAAmKw6B5Xo012.png](https://file.elecfans.com/web2/M00/31/7B/pYYBAGIQXy6ABMfJAAAmKw6B5Xo012.png)
- 系統異常相關函數
- HardFault_Handler函數
函數原型如下:
![poYBAGIQXy6AQE5QAABY4XUDn4A871.png](https://file.elecfans.com/web2/M00/31/74/poYBAGIQXy6AQE5QAABY4XUDn4A871.png)
當系統有異常時,比如指針操作不當、數組操作不當等,會進入此中斷。
- 系統復位相關函數
- MCU_Soft_Reset函數
函數原型如下:
![pYYBAGIQXy-AQHRAAABEcZwYkgk065.png](https://file.elecfans.com/web2/M00/31/7B/pYYBAGIQXy-AQHRAAABEcZwYkgk065.png)
調用該函數后,系統將復位。
- main函數
該函數為系統入口函數,提供如下示例:
![pYYBAGIQZGmABVyuAAo3bl8A1JU819.png](https://file.elecfans.com/web2/M00/31/7C/pYYBAGIQZGmABVyuAAo3bl8A1JU819.png)
- 模擬量變量聲明
提供ADC值、0~5V型電壓值、0~10V型電壓值和0~20mA型電流值的采集,統一輸出到一個結構體中:
![poYBAGIQZGqAdSGNAATBWxr46hE168.png](https://file.elecfans.com/web2/M00/31/75/poYBAGIQZGqAdSGNAATBWxr46hE168.png)
變量的聲明在ZQWL_DAM_5802D.h文件中。
- 模塊編程
- 開發環境
該模塊開發環境使用keil 5.10版本(其他版本未驗證),有關keil的使用教程請參考其他開發文檔,keil5的安裝包下載地址:
https://pan.baidu.com/s/1rAgGc5AjeSDBvNq1KSFNsg提取碼: jxeq。
在“可編程資料”里有該控制板的keil5工程
打開“可編程資料”:
![poYBAGIQZGqAUqwnAAALjCOp98Q328.png](https://file.elecfans.com/web2/M00/31/75/poYBAGIQZGqAUqwnAAALjCOp98Q328.png)
此即為該控制板的工程文件, 打開文件:
![pYYBAGIQZGqAB79IAAAFBeirIGc842.png](https://file.elecfans.com/web2/M00/31/7D/pYYBAGIQZGqAB79IAAAFBeirIGc842.png)
打開“Proj”:
![pYYBAGIQZGqAQHaGAAArZ6t9WoI618.png](https://file.elecfans.com/web2/M00/31/7D/pYYBAGIQZGqAQHaGAAArZ6t9WoI618.png)
雙擊上圖中的“LED”,則可以通過keil軟件打開該工程。
工程配置如下圖:
![poYBAGIQZGqAP9X6AAGUh8yuL1c965.png](https://file.elecfans.com/web2/M00/31/75/poYBAGIQZGqAP9X6AAGUh8yuL1c965.png)
編譯后會生成一個IO_APP.bin文件(路徑:ZQWL_IO_APP\Proj\BIN):
![pYYBAGIQZGqAZ9X2AAATuwS0US0166.png](https://file.elecfans.com/web2/M00/31/7D/pYYBAGIQZGqAZ9X2AAATuwS0US0166.png)
- 程序下載
智嵌串口IO模塊的固件是通過《智嵌物聯 串口繼電器控制板固件升級工具》來下載程序的:
![pYYBAGIQXzKAFZO8AADIfz_Njy8864.png](https://file.elecfans.com/web2/M00/31/7B/pYYBAGIQXzKAFZO8AADIfz_Njy8864.png)
點擊上圖的“瀏覽”,將編譯好的IO_APP.bin文件載入軟件,選擇好串口參數,然后點“打開”,點“開始升級”,即可實現固件的下載,下載完成后自動運行:
![poYBAGIQXzKAJfLzAACAUhOZa8Y362.png](https://file.elecfans.com/web2/M00/31/74/poYBAGIQXzKAJfLzAACAUhOZa8Y362.png)
- 程序出錯處理
在調試程序時難免會出現程序出錯,出錯后可能造成不能直接對模塊固件下載,這時需要按照如下步驟操作:
第一步:斷電。
第二步:按住模塊上的按鍵。
第三步:上電,看到模塊的運行燈快速閃爍,說明進入到了固件下載模式,此時就可以對模塊下載固件了。注意此過程中不可以松開按鍵,直到下載成功后才能松開。
注意,智嵌物聯網ZQWL的部分網絡IO控制器也支持編程功能,如型號ZQWL-NET8880M,Smart IO,該類產品功能更強大。除此之外,智嵌物聯ZQWL新推出的Smart GW串口服務器也具有編程功能,該類產品通訊接口支持4G,網口,WIFI,CAN,RS485等,部分產品也具有IO擴展功能,性能更強大,使用更方便。
-
模擬量模塊
+關注
關注
0文章
18瀏覽量
7528
發布評論請先 登錄
相關推薦
高精度模擬量采集模塊
多路溫度模擬量采集模塊
Lora模擬量對傳模塊
模擬量采集模塊如何與PLC通訊
模擬量采集模塊是什么
精確采集與控制:遠程模擬量采集與開關控制模塊滿足多場景需求
![精確<b class='flag-5'>采集</b>與控制:遠程<b class='flag-5'>模擬量</b><b class='flag-5'>采集</b>與開關控制<b class='flag-5'>模塊</b>滿足多場景需求](https://file1.elecfans.com/web2/M00/05/A4/wKgaombRhQCAXaDzAABya4Ybexc481.png)
開關量轉模擬量如何編程
三菱PLC模擬量輸出的原理、配置方法及編程技巧
plc開關量模擬量的接線技巧
plc模擬量和數字量之間的轉換方法
什么是IO模擬量模塊?
![什么是IO<b class='flag-5'>模擬量</b><b class='flag-5'>模塊</b>?](https://file1.elecfans.com/web2/M00/00/0E/wKgZomasLq6AHzoDAAUHLUyovh4825.png)
評論