久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 10371|回復(fù): 21
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)30路繼電器雙串口工控板 modbus上位機(jī)與下位機(jī)例程源碼全套資料下載

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主




modbus上位機(jī):


標(biāo)注說(shuō)明】
【輸出部分標(biāo)注說(shuō)明】
上位機(jī)界面(提供源代碼)


modbus控制30路下位機(jī)程序
軟件協(xié)議
一、串口通信定義
l  串口波特率:1位起始位、8位數(shù)據(jù)位1位停止位、偶校驗(yàn)
l  默認(rèn)地址:0x01 (通過上位機(jī)軟件可以更改下位機(jī)地址)
l  通訊接口:標(biāo)準(zhǔn)RS232  以及標(biāo)準(zhǔn)485通訊
1、指令功能表
  
功能
  
  
從機(jī)地址
  
0x01~0xff
  
  
命令
  
  
寄存器地址
  
高字節(jié)、低字節(jié)
  
  
數(shù)據(jù)域
  
  
CRC校驗(yàn)
  
高低字節(jié)
  
  
長(zhǎng)度
  
  
1個(gè)字節(jié)
  
  
1個(gè)字節(jié)
  
  
2個(gè)字節(jié)
  
  
  
  
2個(gè)字節(jié)
  
  
讀取繼電器狀態(tài)
  
  
Addr
  
  
0x02
  
  
0x0001
  
  
高字節(jié):0x00
  
低字節(jié):0x0f16個(gè)繼電器狀態(tài))
  
  
CRCH
  
CRCL
  
  
控制多路繼電器
  
  
Addr
  
  
0x0F
  
  
  0x0000~0x001e
  
  
繼電器個(gè)數(shù)
  高:0x00
  低:0x01~0x1e
  
  
字節(jié)個(gè)數(shù)
  
1個(gè)字節(jié))
  
0x01~0x04
  
  
數(shù)據(jù)域
  
對(duì)應(yīng)位為1:開
  
對(duì)應(yīng)位為0:關(guān)
  
  
CRCH
  
CRCL
  
  
控制單個(gè)繼電器
  
  
Addr
  
  
0x05
  
  0x0000~0x000f
  
  高:0xff  低:0x00 吸合  
  高:0x00 低:0x00 斷開
  
  
CRCH
  
CRCL
  
  
設(shè)定模塊地址
  
  
Addr
  
  
0x06
  
  0x0010
  
  要修改的地址兩個(gè)字節(jié)
  
  
CRCH
  
CRCL
  








2、指令示例及詳解
1.       讀取30路繼電器狀態(tài)(地址0x01
  
地址
  
  
功能
  
  
繼電器起始地址
  
  
讀取個(gè)數(shù)
  
  
CRC校驗(yàn)
  
  0x01
  
  0x02
  
  :0x00
  
  :0x01
  
  :0x00
  
  :0x1e
  
  0xA9
  
  0xC2
  








從機(jī)回應(yīng)
  
地址
  
  
功能
  
  
字節(jié)數(shù)
  
  
返回繼電器狀態(tài)
  
  
CRC校驗(yàn)
  
  0x01
  
  0x02
  
  0x02
  
  :0x00
  
  :0x00
  
  0x59
  
  0xB8
  







注:返回的十六路狀態(tài)0為斷開,1為吸合
2.       控制多路繼電器
a.控制所有繼電器全開主機(jī)發(fā)送:
  
地址
  
  
功能
  
  
繼電器起始地址
  
  
控制繼電器個(gè)數(shù)
  
  
字節(jié)個(gè)數(shù)
  
  
數(shù)據(jù)域
  
  
CRC校驗(yàn)
  
  0x01
  
  0x0F
  
  :0x00
  
  :0x00
  
  :0x00
  
  :0x1e
  
  0x04
  
  0xff 0xff
  0xff 0xff
  
  0xc1
  
  0xc2
  










從機(jī)回應(yīng):
  地址
  
  功能
  
  繼電器起始地址
  
  控制繼電器個(gè)數(shù)
  
  CRC校驗(yàn)
  
  0x01
  
  0x0F
  
  :0x00
  
  :0x00
  
  :0x00
  
  :0x1e
  
  0xd5
  
  0xC3
  








注:控制多路時(shí)數(shù)據(jù)域中二進(jìn)制數(shù)對(duì)應(yīng)位為1是打開某一路繼電器,為0關(guān)閉某一路繼電器
b控制所有繼電器全關(guān)主機(jī)發(fā)送:
  
地址
  
  
功能
  
  
繼電器起始地址
  
  
控制繼電器個(gè)數(shù)
  
  
字節(jié)個(gè)數(shù)
  
  
數(shù)據(jù)域
  
  
CRC校驗(yàn)
  
  0x01
  
  0x0F
  
  :0x00
  
  :0x00
  
  :0x00
  
  :0x0F
  
  0x04
  
  0x00 0x00
  0x00 0x00
  
  0xc3
  
  0x17
  










從機(jī)回應(yīng):
  地址
  
  功能
  
  繼電器起始地址
  
  控制繼電器個(gè)數(shù)
  
  CRC校驗(yàn)
  
  0x01
  
  0x0F
  
  :0x00
  
  :0x00
  
  :0x00
  
  :0x1e
  
  0xd5
  
  0xC3
  








注:控制多路時(shí)數(shù)據(jù)域中二進(jìn)制數(shù)對(duì)應(yīng)位為1是打開某一路繼電器,為0關(guān)閉某一路繼電器
3.       控制單個(gè)繼電器狀態(tài)
控制第一路繼電器開主機(jī)發(fā)送:
  
地址
  
  
功能
  
  
繼電器地址
  
  
打開繼電器
  
  
CRC校驗(yàn)
  
  0x01
  
  0x05
  
  :0x00
  
  :0x00
  
  :0xFF
  
  :0x00
  
  0x8C
  
  0x3A
  








從機(jī)回應(yīng):
  
地址
  
  
功能
  
  
繼電器地址
  
  
打開繼電器
  
  
CRC校驗(yàn)
  
  0x01
  
  0x05
  
  :0x00
  
  :0x00
  
  :0xFF
  
  :0x00
  
  0x8C
  
  0x3A
  









控制第一路繼電器關(guān)主機(jī)發(fā)送:
  
地址
  
  
功能
  
  
繼電器地址
  
  
打開繼電器
  
  
CRC校驗(yàn)
  
  0x01
  
  0x05
  
  :0x00
  
  :0x00
  
  :0x00
  
  :0x00
  
  0xCD
  
  0xCA
  








從機(jī)回應(yīng):
  
地址
  
  
功能
  
  
繼電器地址
  
  
打開繼電器
  
  
CRC校驗(yàn)
  
  0x01
  
  0x05
  
  :0x00
  
  :0x00
  
  :0x00
  
  :0x00
  
  0xCD
  
  0xCA
  








3、上位機(jī)測(cè)試軟件
上位機(jī)簡(jiǎn)介
1.上位機(jī)編譯環(huán)境:vs2008.net
2.使用語(yǔ)言是vb.net
3.使用該軟件需要安裝framwork3.5軟件(一般win7系統(tǒng)都已安裝)
4.打開該軟件前請(qǐng)先把數(shù)據(jù)線和控制板連接好,控制板供電
file:///Z:\TEMP\msohtmlclip1\01\clip_image002.jpg
上位機(jī)軟件可控制七個(gè)30路繼電器輸出控制板,如要需要控制更多從機(jī)設(shè)備,需要更改上位機(jī)軟件.
一、把默認(rèn)的0x01地址改為其他地址如下:
  地址
  
  功能
  
  繼電器起始地址
  
  更改地址
  
  CRC校驗(yàn)
  
  備注
  
  01
  
  06
  
  00
  
  10
  
  00
  
  01
  
  49
  
  CF
  
  設(shè)備1
  
  01
  
  06
  
  00
  
  10
  
  00
  
  02
  
  09
  
  CE
  
  設(shè)備2
  
  01
  
  06
  
  00
  
  10
  
  00
  
  03
  
  C8
  
  0E
  
  設(shè)備3
  
  01
  
  06
  
  00
  
  10
  
  00
  
  04
  
  89
  
  CC
  
  設(shè)備4
  
  01
  
  06
  
  00
  
  10
  
  00
  
  05
  
  48
  
  0C
  
  設(shè)備5
  
  01
  
  06
  
  00
  
  10
  
  00
  
  06
  
  08
  
  0D
  
  設(shè)備6
  
  01
  
  06
  
  00
  
  10
  
  00
  
  07
  
  C9
  
  CD
  
  設(shè)備7
  


單片機(jī)源程序如下:
  1. #include "hader\\main.h"
  2. //#include"hader\\STC12C5A60S2.H"
  3. /******************************
  4. modbus RTU 的C51程序
  5. 單片機(jī)STC12C5A60S2  晶振:11.0592
  6. 通信波特率 9600 8位數(shù)據(jù) 1位停止位 偶校驗(yàn) 485通位接口
  7. 單片機(jī)控制板地址 localAddr(變量)
  8. 通信可設(shè)置數(shù)據(jù)的地址:
  9. 字地址 0 - 255 (只取16位的低8位)
  10. 位地址 0 - 255 (只取16位的低8位)
  11. 注:用一般51單片機(jī)有幾路輸出將不能使用
  12. *******************************/

  13. uint32        dwTickCount,dwIntTick;        //時(shí)鐘
  14. uint8        idata sendBuf[16],receBuf[16]; //發(fā)送接收緩沖區(qū)
  15. uint8        idata checkoutError;        // ==2 偶校驗(yàn)錯(cuò)  
  16. uint8        idata receTimeOut;                //接收超時(shí)
  17. uint8        idata c10ms;                        //10ms 計(jì)時(shí)
  18. bit                b1ms,bt1ms,b10ms,bt10ms,b100ms,bt100ms;        //定時(shí)標(biāo)志位

  19. // 串行中斷程序
  20. void commIntProc() interrupt 4
  21. {
  22.         if(TI)
  23.         {
  24.                 TI = 0;
  25.                 if(sendPosi < sendCount) //如果發(fā)送位置小于發(fā)送計(jì)數(shù),那么繼續(xù)發(fā)送
  26.                 {
  27.                         sendPosi++;
  28.                         ACC = sendBuf[sendPosi];
  29.                         TB8 = P;        //加上校驗(yàn)位
  30.                         SBUF = sendBuf[sendPosi];
  31.                 }
  32.                 else //否則發(fā)送完畢,置接收狀態(tài)
  33.                 {
  34. //                        b485Send = 0;    //發(fā)送完后將485置于接收狀態(tài)
  35.                         receCount = 0;   //清接收地址偏移寄存器
  36.                         checkoutError = 0;
  37.                 }
  38.         }
  39.         else if(RI)
  40.         {
  41.                 RI = 0;
  42.                 receTimeOut = 10;    //通訊超時(shí)值
  43.                 receBuf[receCount] = SBUF;
  44.                 ACC = receBuf[receCount];
  45.                 if(P != RB8)
  46.                         checkoutError = 2;        //偶校驗(yàn)出錯(cuò)
  47.                 receCount++;          //接收地址偏移寄存器加1
  48.                 receCount &= 0x0f;    //最多一次只能接收16個(gè)字節(jié)
  49.         }

  50. }   // void CommIntProc()

  51. //定時(shí)器0 1ms 中斷
  52. void timer0IntProc() interrupt 1
  53. {
  54.         TL0 = TIMER_LOW;
  55.     TH0 = TIMER_HIGHT;
  56.     dwIntTick++;
  57.         bt1ms = 1;
  58.     c10ms++;
  59.     if(c10ms >= 10)
  60.     {
  61.         c10ms = 0;      //10ms計(jì)時(shí)器清零
  62.         bt10ms = 1;
  63.     }
  64. }   // void Timer0IntProc()

  65. //定時(shí)處理
  66. void timeProc(void)
  67. {
  68.         static uint8 c200ms;

  69.   //  bWatchDog = ~ bWatchDog;    //看門狗取反
  70.         b1ms = 0;
  71.         b10ms = 0;
  72.         b100ms = 0;
  73.         
  74.         ET0 = 0;        //禁用定時(shí)器0
  75. //        dwTickCount = dwIntTick;        //
  76.         ET0 = 1;

  77.         if(bt1ms)        //如果1ms到
  78.         {
  79.                 bt1ms = 0;
  80.                 b1ms = 1;

  81.         if(receTimeOut>0)        //如果接收超時(shí)值>0
  82.         {
  83.             receTimeOut--;        //接收超時(shí)-1(1ms減1次)
  84.             if(receTimeOut==0 && receCount>0)   //判斷通訊接收是否超時(shí)
  85.             {
  86. //                b485Send = 0;       //將485置為接收狀態(tài)
  87.                 receCount = 0;      //將接收地址偏移寄存器清零
  88.                                 checkoutError = 0;
  89.             }
  90.         }
  91.         }
  92.         
  93.         if(bt100ms)
  94.         {
  95.                 bt100ms = 0;
  96.                 b100ms = 1;
  97.         }
  98.     if(bt10ms)      //判斷中斷10ms標(biāo)志位是否1
  99.     {
  100.         bt10ms = 0;     //清中斷10ms標(biāo)志位
  101.                 b10ms = 1;

  102.         c200ms++;                   //200ms計(jì)時(shí)器加1
  103.         if(c200ms >= 20)            //判斷是否計(jì)時(shí)到200ms
  104.         {
  105.             c200ms = 0;             //清200ms計(jì)時(shí)器
  106.       //      bRunLED = ~bRunLED;     //取反運(yùn)行指示燈         
  107.         }
  108.     }
  109. }   // void TimerProc(void)

  110. //初始化串口
  111. void initUart(void)
  112. {
  113.   //串口2波特率
  114.         SCON = 0x50;                                 //方式1,8位數(shù)據(jù),波特率可變
  115.         TH1=  0xfd;        
  116.         TL1 = 0xfd;                             //波特率 9600
  117.     TR1=1;               
  118.         SCON = 0xd0;
  119.     PCON = 0;
  120.     ES = 1;
  121. }//void initUart(void)

  122. //初始化中斷
  123. void initInt(void)
  124. {

  125.         TMOD = 0x21;
  126.         TH0 = TIMER_HIGHT;
  127.         TL0 = TIMER_LOW;
  128.         TR0 = 1;        
  129.     ET0 = 1;
  130.         initUart();        //串口初始化
  131.         EA = 1;               
  132. }
  133. //初始化
  134. void initProg(void)
  135. {        
  136. ……………………

  137. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
簡(jiǎn)要說(shuō)明:
一、 尺寸:長(zhǎng)233.7mmX寬182.7mmX高25mm
二、 主要芯片:STC12C60S2支持雙串口(支持51系列DIP40封裝單片機(jī))
三、 工作電壓:直流12伏供電(另有24V供電)
四、 串口1(COM1)下載程序,(串口1和串口2均可與上位機(jī)通訊)
五、輸出供電采用延時(shí)通電電路(1至10秒可調(diào))
功能:當(dāng)輸出接有被控制設(shè)備,避免單片機(jī)初次上電(或下載程序)時(shí),輸出設(shè)備誤動(dòng)作。此功能在實(shí)際應(yīng)用中起到很大作用
五、 特點(diǎn):
             1、具有電源指示。
             2、三十路帶光電隔離輸出控制繼電器。
              3、標(biāo)準(zhǔn)的11.0592M晶振。(便于設(shè)置串口波特率)
             4、具有上電復(fù)位和手動(dòng)復(fù)位。
             5、支持51系列DIP40封裝單片機(jī)。  
       5、輸出三十路繼電器的供電采用延時(shí)供電 (避免被控制設(shè)備誤動(dòng)作)        
             6、輸出三十路具有LED指示。
              7、三十路12V繼電器控制,控制設(shè)備。
             8、可控制交流220V/10A一下設(shè)備。(最大控制設(shè)備2000W)
              9、具有雙串口通信功能(可以同時(shí)和上位機(jī)通信)。
             10、單片機(jī)無(wú)加密,可插拔更換,可隨意更改程序。



所有資料51hei提供下載:

例程.rar

2.22 MB, 下載次數(shù): 379, 下載積分: 黑幣 -5

產(chǎn)品使用手冊(cè).doc

3.56 MB, 下載次數(shù): 274, 下載積分: 黑幣 -5

modbus上位機(jī).rar

3.35 MB, 下載次數(shù): 380, 下載積分: 黑幣 -5

modbus控制30路下位機(jī)程序.rar

164.21 KB, 下載次數(shù): 419, 下載積分: 黑幣 -5

GYJ-0062_30路繼電器雙串口單片機(jī)控制板原理圖及PCB圖.pdf

2.11 MB, 下載次數(shù): 337, 下載積分: 黑幣 -5

GYJ-0062_30路繼電器雙串口單片機(jī)控制板產(chǎn)品使用手冊(cè).doc

3.56 MB, 下載次數(shù): 293, 下載積分: 黑幣 -5

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏45 分享淘帖 頂6 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:66287 發(fā)表于 2018-3-2 10:10 | 只看該作者
學(xué)習(xí)了,謝謝分享!
回復(fù)

使用道具 舉報(bào)

板凳
ID:239953 發(fā)表于 2018-4-15 18:51 | 只看該作者
學(xué)習(xí)學(xué)習(xí),感謝大神分享。
回復(fù)

使用道具 舉報(bào)

地板
ID:309683 發(fā)表于 2018-4-16 22:23 | 只看該作者

學(xué)習(xí)學(xué)習(xí),感謝分享
回復(fù)

使用道具 舉報(bào)

5#
ID:576536 發(fā)表于 2019-7-2 16:38 | 只看該作者
學(xué)習(xí)學(xué)習(xí),感謝分享
回復(fù)

使用道具 舉報(bào)

6#
ID:106121 發(fā)表于 2019-8-29 13:39 | 只看該作者
學(xué)習(xí)一下 感謝分享
回復(fù)

使用道具 舉報(bào)

7#
ID:510170 發(fā)表于 2019-10-25 16:13 | 只看該作者
感謝樓主無(wú)私奉獻(xiàn)
回復(fù)

使用道具 舉報(bào)

8#
ID:832201 發(fā)表于 2020-10-21 16:29 | 只看該作者
謝謝提供思路
回復(fù)

使用道具 舉報(bào)

9#
ID:97678 發(fā)表于 2020-10-22 12:03 | 只看該作者
這是什么產(chǎn)品需要這么多的繼電器!!!牛!!!
回復(fù)

使用道具 舉報(bào)

10#
ID:67722 發(fā)表于 2020-10-30 13:45 | 只看該作者
謝謝提供思路
回復(fù)

使用道具 舉報(bào)

11#
ID:67722 發(fā)表于 2020-10-30 13:46 | 只看該作者
謝謝提供思路
回復(fù)

使用道具 舉報(bào)

12#
ID:1063214 發(fā)表于 2023-2-16 14:55 | 只看該作者
謝謝提供思路
回復(fù)

使用道具 舉報(bào)

13#
ID:462629 發(fā)表于 2023-3-2 12:45 | 只看該作者
這是完整版本的嗎?
回復(fù)

使用道具 舉報(bào)

14#
ID:1063034 發(fā)表于 2023-3-8 22:02 | 只看該作者
謝謝大神,學(xué)習(xí)了。這是完整版嗎?
回復(fù)

使用道具 舉報(bào)

15#
ID:563507 發(fā)表于 2023-4-15 21:23 | 只看該作者
學(xué)習(xí)了,好資料感謝分享!
回復(fù)

使用道具 舉報(bào)

16#
ID:1083996 發(fā)表于 2023-8-22 08:09 | 只看該作者
好帥氣的板子,這個(gè)有余料嗎
回復(fù)

使用道具 舉報(bào)

17#
ID:126422 發(fā)表于 2023-8-22 09:18 | 只看該作者
看著有點(diǎn)像PLC的意思。
回復(fù)

使用道具 舉報(bào)

18#
ID:249808 發(fā)表于 2024-6-8 15:41 | 只看該作者
下載回來(lái)研究研究……
回復(fù)

使用道具 舉報(bào)

19#
ID:432653 發(fā)表于 2024-6-17 04:31 | 只看該作者
上位機(jī)測(cè)試軟件打不開
回復(fù)

使用道具 舉報(bào)

20#
ID:432653 發(fā)表于 2024-6-17 04:32 | 只看該作者
上位機(jī)測(cè)試軟件打不開
回復(fù)

使用道具 舉報(bào)

21#
ID:1046170 發(fā)表于 2024-7-30 23:17 | 只看該作者
學(xué)習(xí)了,謝謝分享!
回復(fù)

使用道具 舉報(bào)

22#
ID:60122 發(fā)表于 2024-8-11 10:50 來(lái)自手機(jī) | 只看該作者
我有8入8出和15入15出的板子,
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 中文在线日韩 | 日本大香伊一区二区三区 | 中文精品视频 | 精品久久久久久久久久久久 | 日韩淫片免费看 | 免费在线视频精品 | 欧美一级片中文字幕 | 中文字幕日韩一区二区 | av一区二区三区 | 91久久久久久 | 日韩乱码一二三 | 天天色天天射天天干 | 亚洲网站在线观看 | 国产精品av久久久久久久久久 | 91人人在线 | 欧洲成人午夜免费大片 | va精品| 一区二区三区国产好 | 中文字幕动漫成人 | 日本国产精品视频 | 国产美女视频一区 | 香蕉久久久 | 午夜视频一区二区 | 精品久久久网站 | 综合久久久| 亚洲欧美视频一区 | 日韩精品一区二区三区中文在线 | 91社区视频 | 一起操网站 | 一区二区三区高清不卡 | 激情在线视频网站 | 操久久 | 激情一区| 久久99精品久久久久久国产越南 | 91精品91久久久 | 久久久精品综合 | 久久综合久久久 | 亚洲视频中文字幕 | 国产日韩一区二区三区 | 天天搞天天操 | 韩国av一区二区 |