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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機的Modbus RTU通信示例一

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:476652 發(fā)表于 2022-1-27 15:16 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
各位大師,我最近在學(xué)習(xí)Modbus RTU在51上的應(yīng)用,
我用的是STC12C5A60S2單片機開發(fā)板和STC8A8K64S4A12開發(fā)板做Modbus RTU從站,程序用到是從網(wǎng)上找來幾個大神的51程序,
主站用Modbus Poll軟件,
看著程序不錯,可就是不能和Modbus Poll軟件通信成功,老是提示超時。
我是做工業(yè)plc控制的,對51單片機不是很懂,希望大神們不要笑話,
請有懂得大神指點指點,萬分感謝!!


從網(wǎng)上找的大神的源程序也一并奉上
MCGS與51單片機modbus通訊proteus仿第二版(完整版).rar (4.92 MB, 下載次數(shù): 137)

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

使用道具 舉報

沙發(fā)
ID:883242 發(fā)表于 2022-1-27 19:20 | 只看該作者
從站有點難度,為啥不用cortexxx
回復(fù)

使用道具 舉報

板凳
ID:883242 發(fā)表于 2022-1-27 19:21 | 只看該作者
從站代碼有難度,為什么不用cortex-M0單片機呢?資源和速度都足夠了。
回復(fù)

使用道具 舉報

地板
ID:476652 發(fā)表于 2022-1-27 20:41 | 只看該作者
現(xiàn)在cortex-M0的芯片都很貴了,做從站都想節(jié)省費用,用51做從站,用STM32F407做主站,
回復(fù)

使用道具 舉報

5#
ID:883242 發(fā)表于 2022-1-27 21:06 | 只看該作者
Cortex-M4不嫌貴,反到嫌Cortex-M0貴?而且MODBUS/RTU主站好寫,只要發(fā)數(shù)據(jù)幀,等從站回復(fù)即可,很普通的順序邏輯。從站難寫,要監(jiān)聽總線上面的數(shù)據(jù)幀,判斷哪些數(shù)據(jù)幀跟自己無關(guān),哪些數(shù)據(jù)幀是對自己說的。
回復(fù)

使用道具 舉報

6#
ID:161164 發(fā)表于 2022-1-28 02:27 | 只看該作者
用例程在STC89上玩了一個晚上
半成功地用Modbus點亮幾個LED和傳回幾個鍵值
睡前留一下言

因為例程用的是AT89
是12T單片
樓主用STC12和STC8都是1T單片機
波特率和定時器的設(shè)定要改一改

我用STC89+11.0592Mhz
改了TH1和TL1的計算方程還是不行

  1.         TH1 = -11059200L/12/32/9600;    //求當波特率是9600時定時器的初值<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  2.         TL1 = -11059200L/12/32/9600;
復(fù)制代碼


對比了STC的官方例程才發(fā)現(xiàn)要加括號

  1.         TH1 = -(11059200L/12/32/9600);    //求當波特率是9600時定時器的初值<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  2.         TL1 = -(11059200L/12/32/9600);
復(fù)制代碼


而且89單片機可以設(shè)定倍速

  1.         PCON |= 0X80;                   //波特率加倍
復(fù)制代碼

就是說方程式用9600算
Modbus上位機的設(shè)定就要用19200

為什么說是半成功呢?
因為雖然可以控制LED和讀取鍵值
但是反應(yīng)很慢而且還會Timeout
還有很多地方要研究一下

想不到會再這里遇到一樣干PLC的同行
明天繼續(xù)
回復(fù)

使用道具 舉報

7#
ID:311903 發(fā)表于 2022-1-28 08:23 | 只看該作者
從站最簡單的做法通過定時器判斷一定時間沒有數(shù)據(jù)就認為一幀,然后解析報文,判斷是否屬于自己的報文,是則返回即可;或者你也可以按字符格式解析,滿足一幀的條件時再判斷也可以,總的來簡單的從站應(yīng)用還是比較簡單的
回復(fù)

使用道具 舉報

8#
ID:311903 發(fā)表于 2022-1-28 08:28 | 只看該作者
還有一個比較有意思的事情,這個代碼串口初始化跟硬件相關(guān),你得按你的板子晶振頻率來修改相應(yīng)的串口初始化,以及校驗?zāi)J?/td>
回復(fù)

使用道具 舉報

9#
ID:476652 發(fā)表于 2022-1-28 12:40 | 只看該作者
我的單片機水平肯定遠遠趕不上前面幾位大神的水平了!
也感謝大神 lkc8210通宵達旦的尋找問題,
回復(fù)

使用道具 舉報

10#
ID:161164 發(fā)表于 2022-1-28 15:46 | 只看該作者
溫柔的郎 發(fā)表于 2022-1-28 12:40
我的單片機水平肯定遠遠趕不上前面幾位大神的水平了!!
也感謝大神 lkc8210通宵達旦的尋找問題,

上班摸魚的時候玩了一下仿真
竟然成功了!!
沒有Timeout
不知道為什么真機會timeout
回復(fù)

使用道具 舉報

11#
ID:90212 發(fā)表于 2022-2-11 22:07 | 只看該作者
同行!我也是干自動化,但現(xiàn)在落魄成電工了!
人家電工為了提升都開始學(xué)plc了,我卻倒過來了,嘆嘆嘆

搞串口通信,必須神器!
因為串口具有獨占性,所以能用來檢測串口通信的神器很少,我一般用CommMonitor,有坡姐版的,很好用

我從經(jīng)驗來判斷,可能是通信協(xié)議不一致,比如奇偶校驗等!
回復(fù)

使用道具 舉報

12#
ID:313048 發(fā)表于 2022-2-12 10:32 | 只看該作者
lkc8210 發(fā)表于 2022-1-28 15:46
上班摸魚的時候玩了一下仿真
竟然成功了!
沒有Timeout

仿真是理想情況下的,真機可能存在波特率偏差,通信干擾等情況。
回復(fù)

使用道具 舉報

13#
ID:161164 發(fā)表于 2022-2-12 11:03 | 只看該作者
AUG 發(fā)表于 2022-2-12 10:32
仿真是理想情況下的,真機可能存在波特率偏差,通信干擾等情況。

回家研究發(fā)現(xiàn)是數(shù)據(jù)地址溢出了
原代碼所設(shè)的傳回數(shù)組只有16Byte
其中頭3Byte及尾2Byte用作地址/功能碼 / 字節(jié)長度 及 CRC驗證
可用的只余下11Byte
而每個Modbus數(shù)據(jù)占用兩個Byte
所以上位機只能要求5個數(shù)據(jù)
我當時要求的是10個
而代碼又沒有溢出保護
所以跑飛了
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 黄色av网站在线观看 | 剑来高清在线观看 | 国产欧美精品一区二区三区 | k8久久久一区二区三区 | 成人国产毛片 | 性网站免费 | 九九色综合 | 91麻豆久久久 | 精品1区| 玖玖综合网 | 久久9999久久 | av电影一区 | 三级在线观看 | 欧美精品tv| 中文字幕日韩欧美一区二区三区 | av一区二区三区 | 91av视频 | 91精品一区二区三区久久久久 | 日韩成人国产 | 免费黄色网址视频 | 久草资源网站 | 国产精品三级久久久久久电影 | 欧美亚洲视频在线观看 | 亚洲成人高清 | jlzzjlzz欧美大全 | 91久久精品国产91久久 | 欧美精品综合在线 | 国产在线观看一区二区三区 | 日韩免费 | 亚洲国产成人精品女人久久久 | 成年人视频免费在线观看 | 欧美一级二级三级视频 | 色五月激情五月 | 国产成人免费视频网站视频社区 | 人人草人人干 | 久久精品网 | 国产夜恋视频在线观看 | 国产精品久久久久aaaa樱花 | 免费在线黄 | 日韩三级在线 | 欧美激情久久久 |