聯系電話:13811759207
聯系地址:北京-海淀,北京市海淀區北四環中路211號
鼎創恒達 8路傳感器輸入8路繼電器輸出控制板
(DC-8I8OV15)
使用說明書
各個位置的定義說明:
1、為12V輸入(繼電器端)。
2、為9~12V 輸入(MCU端)。 分開兩個電源目的是在干擾比較大的場合實現 控制端與輸出端光耦隔離,以保證可靠性。
3、為485輸出口
4、為485輸出口(與3是并聯的,目的是為了級聯的時候接線方便。)
5、模擬量檢測輸入端,ADC1和ADC2 可檢測0~5V的直流電壓值。
6、12V輸輸出與繼電器端12V輸入并接,目的是為了給一些無源的開關或者有源的傳感器提供電源。
7、為撥碼開關用于選擇232和485通訊方式。根據圖示來進行選擇。
板子的供電:圖示2號位置9~12V 200mA以上,1號位置12V0.5A以上。
如果在控制一些阻性負載沒有較強的電磁干擾的情況下,可以使用一組12V直流電源大于1A,并聯接到1號位置和2號位置,如果在工業較強的電磁干擾或者控制阻性負載的情況下,需要使用2組隔離的12V直流電源,分別接到1號和2號位置,因為繼電器板控制部分和繼電器輸出部分是完全隔離的。這樣就大大提高了整板的可靠性。
詳細的接口端子定義,如圖所示:
1號位置:板子左端接插件 由上而下定義為 這路12V輸出用于給一些傳感器供電,免去了傳感器的電源。
6號位置
12V地(輸出)
12V正(輸出)
輸入端的內部電路結構圖如下:
輸入端使用方法1:檢測開關的通斷。比如一些行程開關、干簧管等無源的開關。如下圖方式,每個輸入端子與左上角的地短接輸入指示燈就會亮,表示有信號輸入,燈亮的狀態,查詢輸入命令,會在相應的位顯示為1,具體看后面的指令部分。
輸入的使用方法2:檢測外部電平信號,在檢測外部電平信號的時候要將輸入信號的負極與輸入端左上角的地短接,形成共地電位。如下圖,表示一個5~12V的電池信號,+12V接入到輸入端子,此時檢測不到有效輸入,當輸入電平為0V的時候,可檢測為有效輸入。(在程序判斷上,接收到的狀態值對應位為0表示輸入了高電平,狀態值對應位為1表示輸入了低電平)見后面的指令部分。
繼電器端子說明:
在端子與繼電器之間字符標識的很清晰,CB COM CK ,COM為繼電器的共公腳,CK為常開點,CB為常閉點。是指,在不控制繼電器動作的情況下,COM腳與CB腳是短路狀態,而COM腳與CK為斷開狀態。當繼電器動作之后,COM腳與CB腳就變成斷開狀態,而COM腳與CK腳就變成閉合狀態。
繼電器其實就是一個開關,使用起來,當成開關來用,看下圖例子。
COM與常閉點適用于,繼電器不動作的常規時候,被控制的設備是工作的,而繼電器動作之后,被控制的設備停止工作的情況。
對于電源插座 1,2:
5和6標號處的電源插座都是 左端為地,右端為12V輸入。(方向參照圖示)
具體看接線端子旁邊的字符說明,GND表示地。
圖示中5號位置為ADC輸入電壓端子。ADC輸入電壓必須是0~5V,輸入電壓的共地點為 MCU電源的GND端子(即5號位置的GND端,而非1號位置的12V GND),采集的命令在說明書后面有解釋。
圖示4號位置為DB9母頭 如圖:
可看到每個孔位置都有數字,上排最右端依次向左為1~5腳,下排從最右端依次向左為6~9腳。
定義如下:
1、空
2、TXD(接計算機9針串口2腳)
3、RXD(接計算機9針串口3腳)
4、空
5、地(GND)
6、空
7、空
8、空
9、空
下圖為計算機DB9針公頭座的定義,一般只用到2,3,5腳:
其中 DB9針母頭可用標準的市場賣的串口延長線連接 PC機,進行232協議通訊。
注意:485或者232切換,是通過撥碼開關來轉換。如下圖。
3,4撥到ON 1,2撥到OFF 為232方式
1,2撥到ON3,4撥到OFF為485方式
485組網結構1:
485組網方式2
向串口繼電器板發送控制指令
注意:我們的繼電器板固件分兩種,一種是的232/485通訊,一種是支持Modbus協議的通訊方式。以下為232/485通訊協議的方式,Modbus指令見后面。
首先確定串口的通訊參數為
串口通訊協議通訊協議:(波特率9600默認,校驗位無,數據位8,停止位1)
默認的設備地址(設備號)是0x01。
控制繼電器閉合或者斷開的指令:
1、控制8組任一繼電器閉合或者斷開的指令為 6個字節
【0xAA 0xBB 設備號 繼電器號 動作參數 CRC】
其中0xAA 0xBB為固定的兩個字節的頭字節,第3字節是設備的地址碼(0x01~0xFE),第4字節為繼電器號(0x01~0x08),分別對應12組繼電器,第5字節為動作參數,值為0x01表示繼電器閉合,值為0x00標志繼電器斷開,第6字節為CRC字節,CRC為前面5字節之和對0x100取余。
C程序為 之和%0x100 VB為 MOD運算符
C程序例子
unsigned char crc;
unsigned char i;
unsigned char sendbuf[6]={0xAA,0xBB,0x01,0x3A,0x4B,0x00};
crc=0;
for(i=0;i<5;i++)
crc+=sendbuf[i];
sendbuf[5]=crc;
因為crc為unsigned char 型的變量,相加和超過0xFF自動溢出,剩下的即為余數。所以無需對0x100取余,如果是unsigned int變量,就需要對0x100取余。
例:控制設備號為0x01,8號繼電器閉合的通訊指令為
【0xAA 0xBB 0x01 0x08 0x01 0x6F】
斷開的指令為:
【0xAA 0xBB 0x01 0x08 0x00 0x6E】
此指令無返回值。
2、使串口繼電器板返回繼電器及輸入狀態信息的指令
【0xAA 0xBB 設備號 0x0D 0x01 CRC】
例:要求設備號為0x01的串口繼電器板返回板狀態信息
【0xAA 0xBB 0x01 0x0D 0x01 CRC】
注意:由于485網絡內的串口繼電器板比較多,在向多個串口繼電器板發送返回板狀態信息的命令后,待收到相應串口繼電器板的狀態信息后,要間隔10ms以上,以保證485網絡通訊不沖突。
此指令有返回值。
返回的數據通訊格式
當向串口繼電器板發送返回測試狀態的數據之后,串口繼電器板會返回一組數據其格式如下:共6個字節
【0xCC 0xDD 設備號 繼電器狀態字節 輸入狀態字節 CRC】
1,2,3字節分別為數據頭和設備地址
4字節:二進制8位從低位到高位分別對應1號繼電器到8號繼電器的狀態(1表示閉合,0表示斷開)
5字節:二進制8位從低位到高位分別對應1號輸入到8號輸入的狀態(1表示有輸入,0表示無輸入)
6字節:CRC校驗位 表示前5字節相加的和 對0xFF 取余。用于上位機校驗接收到的數據有無錯誤。
2、控制繼電器全開和全關的指令
全部閉合的指令為
【0xAA 0xBB 0x01 0x1A 0x01 CRC】
全部斷開的指令為
【0xAA 0xBB 0x01 0x1C 0x00 CRC】
此指令無返回值。
3、單字節控制8組繼電器開關指令
【0xAA 0xBB 設備號 0xCC 0x00 CRC】
前3字節如上所述
第4字節固定為0xCC,第5字節從低位到高位分別對應 1~8號繼電器,1表示閉合,0表示關閉。
讓前1~4號繼電器同時開啟,5~8號繼電器關閉的 單字節指令為
【0xCC 0xDD 設備號 0xCC 0x0F CRC】
無返回值
4、設置串口繼電器板地址的指令(使用此指令請將板子單獨接到計算機上)
當進行多塊串口繼電器板組網控制的時候,需要設置每個板子的設備地址,出廠默認的地址是0x01,我們可以通過發送指令來任意修改板子地址。
指令【0xAA 0xBB 0xFF 0x01 0x5A CRC】
第1,2字節為固定的頭字節,其中第3字節固定為0xFF,第4字節為新的設備地址,第5字節固定為0x00。
第4字節參數范圍為:0x01~0xFE。
此指令有返回值,當板子成功接收并修改為新的設備地址后,會返回3個字節為
【0xCC 0xDD 新設備地址】。
新地址設置之后即可保存至板子的EEPROM中,掉電不丟失。
5、修改通訊波特率的命令(使用此指令請將板子單獨接到計算機上)
在一些場合為了配合其它485設備或者為了獲得更遠的傳輸距離,需要修改通訊波特率(遠距離傳輸可降低通訊波特率提高可靠性,近距離可提高通訊波特率獲得更快的通訊速度,為了穩定性建議選取盡可能低的通訊波特率)。
指令【0xAA 0xBB 0xEE 0x01 0x5A CRC】
第1,2字節為固定的頭字節,其中第3字節固定為0xEE,第4字節為新的波特率參數,第5字節固定為0x00。
第4字節參數范圍為:0x01~0x05,分別對應波特率為1200bps、2400bps、4800bps、9600bps、19200bps。
此指令有返回值,當板子成功接收并修改為新的設備地址后,會返回3個字節為
【0xCC 0xDD 新設備地址】。
新地址設置之后即可保存至板子的EEPROM中,掉電不丟失。
6、保存當前繼電器狀態到EEPROM中,下次上電自動恢復到保存時的繼電器狀態。
有些場合我們需要保存當前的繼電器狀態,待到下次上電開機自動恢復到之前保存時候的繼電器狀態。
指令【0xAA 0xBB 0x01 0x0E 0x01 CRC】
第1,2字節為固定的頭字節,第3字節為設備地址,第4字節固定為0x0E,第5字節固定為0x01。
指令發送完,等待返回值,收到正確的返回值表示存儲完成。
此指令有返回值,當板子成功接收并修改為新的設備地址后,會返回3個字節為
【0xCC 0xDD 新設備地址】。
7、清零當前保存在EEPROM中的繼電器狀態。
有時候我們需要清零保存的繼電器狀態,防止混亂。此時需要這個指令。
指令【0xAA 0xBB 0x01 0x0E 0x01 CRC】
第1,2字節為固定的頭字節,第3字節為設備地址,第4字節固定為0xDE,第5字節固定為0x01。
指令發送完,等待返回值,收到正確的返回值表示清零完成。
此指令有返回值,當板子成功接收并修改為新的設備地址后,會返回3個字節為
【0xCC 0xDD 新設備地址】。
8、返回指令版本號
此指令用于查找當前的指令版本,以方便編程。
指令【0xAA 0xBB 0x01 0x0F 0x01 CRC】
第1,2字節為固定的頭字節,第3字節為設備地址,第4字節固定為0x0F,第5字節固定為0x01。
此指令有返回值,返回4個字節,【0xCC 0xDD 新設備地址 版本號】,比如返回
0xCC 0xDD 0x01 0x15 表示當前的指令版本為V1.5。
注:0xAA表示十六進制的AA,用串口調試助手的時候,無需輸入0x。
9、使串口繼電器板返回2路AD輸入狀態信息的指令
【0xAA 0xBB 設備號 0x1D 0x01 CRC】
例:要求設備號為0x01的串口繼電器板返回板狀態信息
【0xAA 0xBB 0x01 0x1D 0x01】
注意:由于485網絡內的串口繼電器板比較多,在向多個串口繼電器板發送返回板狀態信息的命令后,待收到相應串口繼電器板的狀態信息后,要間隔10ms以上,以保證485網絡通訊不沖突。
此指令有返回值。
返回的數據通訊格式
當向串口繼電器板發送返回測試狀態的數據之后,串口繼電器板會返回一組數據其格式如下:共8個字節
【0xCC 0xDD 設備號 ADC1狀態字節1 ADC1狀態字節2 ADC2狀態字節1 ADC2狀態字節2 CRC】
1,2,3字節分別為數據頭和設備地址
4字節:ADC1電壓值的低字節。
5字節:ADC1電壓值的高字節。
6字節:ADC2電壓值的低字節。
7字節:ADC2電壓值的高字節。
8字節:CRC校驗位 表示前7字節相加的和 對0xFF 取余。用于上位機校驗接收到的數據有無錯誤。
ADC1的輸入電壓是0~5V,對應的返回值是(0~1023);同理ADC2。
串口繼電器板使用及測試方法:
首先需要正確的連接電源,如無特殊要求,串口繼電器板為12V直流供電,按照1、2號位置的字符提示分清正和負,連接好電源。
其次如果使用232方式,請使用一根串口直連線(一頭為針一頭為孔,2,3,5直連),將板子12號位置的撥碼開關設置成232方式(見前面的說明)。同理,如果使用485方式,調整撥碼開關為485方式,使用232轉485模塊連接到計算機,并將485+、485-與板子上的485接口連接好。
當正確的連接了電源和通訊線,然后就可以進行指令測試了。通過串口調試助手測試,當需要得到板子狀態可發送數據如下,即可返回數據如下:
客戶可根據前面的指令介紹,使用串口調試助手測試指令,一定注意修改波特率之后,一定要記住修改后的波特率,防止下次要臨時的測試波特率,比較麻煩。
客戶可根據以上通訊協議編寫自己的控制軟件。
根據以上通訊協議,我們開發了VC6.0和VB6.0的演示程序,源代碼贈送給客戶,在購買了本產品之后,可向我們索取。我們會通過網絡傳給您。
如果您需要將串口繼電器板用于工業場合,我們還開發了一套支持Modbus的指令固件。可在選購之前,聯系我們,我們會固化這一套程序。
Modbus版本固件通訊指令:
為了使用工業環境,我們開發了支持Modbus協議的固件,這樣,客戶根據需要,可以把板子裝載到現有的Modbus環境,我們的繼電器板將成為一個從機。
設備地址出場固化為 1
設備的命令支持 0x05(設置單線圈),參考地址為1~12,數據為1即打開對應的繼電器,數據為0即關閉相應的繼電器。
設備的命令支持 0x01(讀取線圈狀態),參考地址為1~24,其中1~12為12路輸入的狀態,1為輸入高電平,0為輸入低電平。13~24為繼電器狀態,1為繼電器開,0為繼電器關。
可以用我們提供的測試軟件進行測試。Modbus測試軟件將發送給您。
設置通訊方式及地址
設置完畢點擊 連接命令
然后就可以根據需要發送0x1指令(Read Coil)和0x05指令(Force Single Coil)指令了。
以上軟件僅做測試。