色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Modbus常用功能程序的設計

jf_78858299 ? 來源:PLC無線通訊方案 ? 作者:PLC無線通訊方案 ? 2023-03-23 10:08 ? 次閱讀

HMI(人機界面)以其體積小,高性能,強實時等特點,越來越多的應用于工業自動化系統和設備中。它有字母、漢字、圖形和圖片等不同的顯示,界面簡單友好。配有長壽命的薄膜按鈕鍵盤,操作簡單。它一般采用具有集成度高、速度快、高可靠且價格低等優點的單片機[1]作為其核心控制器,以實現實時快速處理。PLC和單片機結合不僅可以提PLC的數據處理能力,還可以給用戶帶來友好簡潔的界面。本文以Modbus通訊協議為例,詳細討論了一個人機系統中,如何用C51實現單片機和PLC之間通訊的實例。

2Modbus通訊協議[4]

Modbus協議是應用于電子控制器上的一種通用語言。通過此協議,控制器相互之間、控制器經由網絡和其它設備之間可以通信。

Modbus協議提供了主—從原則,即僅一設備(主設備)能初始化傳輸(查詢)。其它設備(從設備)根據主設備查詢提供的數據作出相應反應。主設備查詢的格式:設備地址(或廣播,此時不需要回應)、功能代碼、所有要發送的數據、和一錯誤檢測域。從設備回應消息包括確認地址、功能碼、任何要返回的數據、和一錯誤檢測域。如果在消息接收過程中發生一錯誤,或從設備不能執行其命令,從設備將建立一錯誤消息并把它作為回應發送出去。

控制器能設置為兩種傳輸模式:ASCII和RTU,在同樣的波特率下,RTU可比ASCII方式傳送更多的數據,所以采用KTU模式。

(1)典型的RTU消息幀

典型的RTU消息幀如表1所示。

圖片

RTU消息幀的地址域包含8bit??赡艿膹脑O備地址是0...127(十進制)。其中地址0是用作廣播地址,以使所有的從設備都能認識。主設備通過將要聯絡的從設備的地址放入消息中的地址域來選通從設備。當從設備發送回應消息時,它把自己的地址放入回應的地址域中,以便主設備知道是哪一個設備作出回應。

RTU消息幀中的功能代碼域包含了8bits,當消息從主設備發往從設備時,功能代碼域將告之從設備需要執行哪些行為;當從設備回應時,它使用功能代碼域來指示是正?;貞?無誤)還是有某種錯誤發生(稱作異議回應,一般是將功能碼的最高位由0改為1)。

從主設備發給從設備消息的數據域包含附加的信息:從設備必須用于進行執行由功能代碼所定義的行為。這包括了像不連續的寄存器地址,要處理項的數目,域中實際數據字節數。如果沒有錯誤發生,從從設備返回的數據域包含請求的數據。如果有錯誤發生,此域包含一異議代碼,主設備應用程序可以用來判斷采取下一步行動。

當選用RTU模式作字符幀時,錯誤檢測域包含一16Bits值(用兩個8位的字符來實現)。錯誤檢測域的內容是通過對消息內容進行循環冗長檢測(CRC)方法得出的。CRC域附加在消息的最后,添加時先是低字節然后是高字節。

(2)所有的Modbus功能碼

Modbus的功能碼定義如表2所示。

圖片

3常用功能通訊程序的設計[5]

本文介紹了幾個Modbus常用功能程序的設計。筆者采用單片機作為主機,在單片機上編寫程序實現單片機與PLC之間的通訊。由單片機向PLC發出命令信息,PLC自動作出回應。PLC通過單片機的串行通訊口通訊,程序用C51實現。程序的子函數及其功能:

(1)串口初始化

voidProtocolInit(void)

函數功能:串口設置為異步通訊方式1(起始位1位,數據位8位,停止位1位);定時/計數器1設置為波特率發生器,通訊速率9600bps;開串行中斷,并把串行中斷設置為高優先級。

(2)CRC簡單函數

unsignedcharCrc16(unsignedchar*puchMsg,unsignedcharusDataLen)

函數功能:先調入一值是全“1”的16位寄存器,然后調用一過程將消息中連續的8位字節各當前寄存器中的值進行處理。每個8位字符都單獨和寄存器內容相或(OR),結果向最低有效位方向移動,最高有效位以0填充。LSB被提取出來檢測,如果LSB為1,寄存器單獨和預置的值或一下,如果LSB為0,則不進行。整個過程要重復8次。在最后一位(第8位)完成后,下一個8位字節又單獨和寄存器的當前值相或。最終寄存器中的值,是消息中所有的字節都執行之后的CRC值。

(3)初始化變量

voidInitvar(void)

函數功能:初始化所有過程變量。

(4)串行中斷服務程序

voidProtocolSerialProcess(void)interrupt4using2

函數功能:發送中斷發送主機形成的命令數組,發送完后置標志位;接收中斷接收PLC返回的響應數組,存入接收數組,并置標志位,且假設響應正確,留待主機處理。

(5)讀N個位變量(線圈)

voidProtocolRead_bit(unsignedcharDeviceAddr/ PLC局號 /,unsignedcharRegType/ 寄存器類型 /,unsignedintBitAddr/ 起始地址 /,unsignedcharSubAddr/ 子地址 /,unsignedintBitNum/ 位數 /)

函數功能:根據函數參數,形成讀N個位變量的命令數組,啟動發送。等待發送完并接收完(如超時未接收完則重新發送)。分析接收數組:正確,保存讀取的數據;錯誤,重新發送。

(6)寫一個位變量

voidProtocolSetBit(unsignedcharDeviceAddr/ PLC局號 /,unsignedcharRegType/ 寄存器類型 /,unsignedintBitAddr/ 地址 /,unsignedcharSubAddr/ 子地址 /,unsignedi

ntClrSet/ 寫值“1”或“0” /)

函數功能:根據函數參數,形成置某位變量為“1”或“0”的命令數組,啟動發送。等待發送完并接收完(如超時未接收完則重新發送)。分析接收數組:正確,返回;錯誤,重新發送。

(7)讀N個字節變量

voidProtocolReadByte(unsignedcharDeviceAddr/ PLC局號 /,unsignedcharRegType/ 寄存器類型 /,unsignedintRegAddr/ 起始地址 /,unsignedcharSubAddr/ 子地址 /,unsignedintRegNum/ 個數 /)

函數功能:根據函數參數,形成讀N個字節變量的命令數組,啟動發送。等待發送完并接收完(如超時未接收完則重新發送)。分析接收數組:正確,保存讀取的數據;錯誤,重新發送。

(8)寫N個字節變量

voidProtocolSetByte(unsignedcharDeviceAddr/ PLC局號 /,unsignedcharRegType/ 寄存器類型 /,unsignedintRegAddr/ 起始地址 /,unsignedcharSubAddr/ 子地址 /,unsignedintRegNum/ 個數 /)

函數功能:根據函數參數,形成寫N個字變量的命令數組(要寫的數從某參數數組中讀取),啟動發送。等待發送完并接收完(如超時未接收完則重新發送)。分析接收數組:正確,返回;錯誤,重新發送。

4結束語

以上的程序已經通過實驗,并應用于實際的人機系統中。依照類似的方法,可以編寫其他不同功能的程序,實現對PLC的不同控制和操作。利用單片機和PLC進行優勢互補,可以組成網絡化、智能化的工業控制系統。另外整個單片機系統程序用C51語言編程,程序簡潔,便于閱讀與調試。單片機和人機界面結合可以實時的顯示PLC的工作狀況,實時的控制、設置、調整PLC工作情況,提高工業控制的自動化程度和實時性。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6035

    文章

    44554

    瀏覽量

    634667
  • plc
    plc
    +關注

    關注

    5010

    文章

    13271

    瀏覽量

    463068
  • MODBUS
    +關注

    關注

    28

    文章

    1799

    瀏覽量

    76955
  • 串行通訊
    +關注

    關注

    2

    文章

    77

    瀏覽量

    16370
收藏 人收藏

    評論

    相關推薦

    轉:Keil的使用方法 - 常用功能(二)

    Ⅰ、概述 上一篇文章是總結關于Keil使用方法-常用功能(一),關于(文件和編譯)工具欄每一個按鈕的功能描述和快捷鍵的使用。我將每一篇Keil使用方法的文章都匯總在一起,回顧前面的總結請點擊下面
    發表于 06-13 10:42

    allegro軟件常用功能操作匯總

    allegro軟件常用功能操作匯總文章部分截圖:點擊下載
    發表于 04-30 16:00

    Pads Router布線器常用功能應用技巧

    ;下面是對于其中的一些常用功能介紹:一、切線1.1、進入到pads router中,?按下F3,從焊盤拉出一條導線,【鼠標右鍵】–【啟用切線模式】,如圖1接著1.1步驟,用來平滑切除想要切斷的導線
    發表于 09-20 09:05

    wavplayer是什么?wavplayer的常用功能有哪些

    for record:使能wav錄音功能The record device name:指定錄音使用的聲卡設備,默認和播放一致,使用sound02、使用wavplayer 的常用功能已經導出到 Finsh
    發表于 07-12 14:17

    變頻器的常用功能

    變頻器的常用功能
    發表于 08-23 10:48 ?86次下載

    AltiumDesigner設計常用功能鍵大全

    Altium Designer 設計常用功能鍵大全
    發表于 07-03 15:19 ?0次下載

    Jenkins是什么_Jenkins常用功能_jenkins的使用總結

    本文詳細回答了Jenkins是什么,Jenkins常用功能以及jenkins的使用總結。Jenkins 是一個可擴展的持續集成引擎。Jenkins其實就是一個工具,這個工具的作用就是調用各種其他的工具來達成你的目的。
    發表于 02-06 14:44 ?2.8w次閱讀
    Jenkins是什么_Jenkins<b class='flag-5'>常用功能</b>_jenkins的使用總結

    modbus常用功能碼解讀

    Modbus具有兩種串行傳輸模式,ASCII 和 RTU。它們定義了數據如何打包、解碼的不同方式。支持 Modbus 協議的設備一般都支持 RTU 格式。通信雙方必須同時支持上述模式中的一種。
    發表于 02-08 09:06 ?1.8w次閱讀
    <b class='flag-5'>modbus</b><b class='flag-5'>常用功能</b>碼解讀

    allegro 軟件常用功能

    allegro 軟件常用功能操作匯總 1.在allegro中怎樣移動元件的標識 edit--move,右邊find面板只選text~~~ 2.allegro 查找元件的方法 按 F5 然后在
    發表于 04-25 15:56 ?6302次閱讀
    allegro 軟件<b class='flag-5'>常用功能</b>

    fbd編程常用功能

    FBD是用功能塊圖去實現程序編制的一種編程語言,咬文嚼字的來說,它首先是功能塊,然后是才是圖,圖表。意思就是說用很多的功能方塊,組合起來,像一張圖一樣,這張圖就實現了相關的
    的頭像 發表于 12-28 10:40 ?1.7w次閱讀
    fbd編程<b class='flag-5'>常用功能</b>

    Keil的使用方法 - 常用功能(二)

    Keil的使用方法 - 常用功能(二)
    的頭像 發表于 04-07 14:55 ?3309次閱讀
    Keil的使用方法 -  <b class='flag-5'>常用功能</b>(二)

    Keil的使用方法 - 常用功能(一)

    Keil的使用方法 - 常用功能(一)
    的頭像 發表于 04-07 14:51 ?8815次閱讀
    Keil的使用方法 -  <b class='flag-5'>常用功能</b>(一)

    相機的這幾個常用功能,你都用對了嗎

    我們在使用相機進行拍攝創作時,如果對相機的一些功能一知半解,只知其一不知其二,往往會對我們拍攝造成困擾,這一課小編給大家聊聊幾個常用功能的正確使用技巧,希望對大家有所幫助。
    的頭像 發表于 03-14 15:57 ?3454次閱讀

    allegro常用功能介紹

    allegro常用功能介紹
    發表于 01-10 11:53 ?0次下載

    Juniper防火墻幾種常用功能的配置

    這里講述的Juniper防火墻的幾種常用功能主要是指基于策略的NAT的實現,包括:MIP、VIP和DIP,這三種常用功能主要應用于防火墻所保護服務器提供對外服務。
    的頭像 發表于 04-03 10:52 ?3108次閱讀
    主站蜘蛛池模板: 超碰在线视频 免费| 亚洲欧美国产综合在线一区| 国产电影尺度| 午夜不卡av免费| 果冻传媒AV精品一区| 一线高清视频在线播放| 麻美ゆま夫の目の前で犯 | 在线免费观看毛片| 男男女女爽爽爽视频免费| 波多野结衣 无码片| 天堂岛www| 精品含羞草免费视频观看| 最美白虎逼| 飘雪在线观看免费高清完整版韩国 | 日本男女动态图| 国产成人无码精品久久久免费69 | 东北真实仑乱| 羞羞一区二区三区四区片| 九九久久久2| 99福利视频| 色欲无码国产喷水AV精品| 狠狠色丁香婷婷久久综合五月| 在线免费观看毛片| 人与人特黄一级| 国家产午夜精品无人区| 97午夜精品| 四房播播开心色播| 久久久精品成人免费看| vidosgratis tv少女| 性色少妇AV蜜臀人妻无码| 久久影院午夜理论片无码| yellow免费观看完整版直播| 吸奶舔下面| 麻豆精选2021| 囯产免费久久久久久国产免费 | 欧美一道本一区二区三区| 国产精品亚洲欧美| 2020国产成人免费视频| 十次啦中文网| 久久毛片视频| 囯产愉拍亚洲精品一区|