女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

利用Modbus通訊協議如何在人機系統中實現C51單片機和PLC的通信

電子設計 ? 來源:網絡整理 ? 作者:佚名 ? 2019-11-21 07:50 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

、引言

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

2、Modbus通訊協議

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

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

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

(1) 典型的RTU消息幀

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

利用Modbus通訊協議如何在人機系統中實現C51單片機和PLC的通信

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

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

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

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

(2) 所有的Modbus功能碼

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

利用Modbus通訊協議如何在人機系統中實現C51單片機和PLC的通信

3、常用功能通訊程序的設計

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

(1) 串口初始化

void ProtocolInit(void)

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

(2) CRC簡單函數

unsigned char Crc16(unsigned char *puchMsg, unsigned char usDataLen)

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

(3) 初始化變量

void Initvar(void)

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

(4) 串行中斷服務程序

void ProtocolSerialProcess(void) interrupt 4 using 2

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

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

void ProtocolRead_bit(unsigned char DeviceAddr/* PLC局號*/, unsigned char RegType/*寄存器類型*/, unsigned int BitAddr/*起始地址*/, unsigned char SubAddr/*子地址*/, unsigned int BitNum/*位數*/)

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

(6) 寫一個位變量

void ProtocolSetBit(unsigned char DeviceAddr/* PLC局號*/, unsigned char RegType/*寄存器類型*/, unsigned int BitAddr/*地址*/, unsigned char SubAddr/*子地址*/, unsigned i nt ClrSet/*寫值“1”或“0”*/)

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

(7) 讀N個字節變量

void ProtocolReadByte(unsigned char DeviceAddr/* PLC局號*/, unsigned char RegType/*寄存器類型*/, unsigned int RegAddr/*起始地址*/, unsigned char SubAddr/*子地址*/, unsigned int RegNum/*個數*/)

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

(8) 寫N個字節變量

void ProtocolSetByte(unsigned char DeviceAddr/* PLC局號*/, unsigned char RegType/*寄存器類型*/, unsigned int RegAddr/*起始地址*/, unsigned char SubAddr/*子地址*/, unsigned int RegNum/*個數*/)

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

4、結束語

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

責任編輯:gt


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

    關注

    6067

    文章

    44991

    瀏覽量

    650398
  • plc
    plc
    +關注

    關注

    5037

    文章

    13919

    瀏覽量

    474527
  • 計數器
    +關注

    關注

    32

    文章

    2291

    瀏覽量

    96404
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    如何用C51實現單片機PLC之間通訊

    本文以 Modbus通訊協議為例,詳細討論了一個人機系統,如何用
    發表于 05-26 06:42

    TMS320F240 DSP與C51單片機串行通訊實現

    本文介紹一種實現TMS320F240 DSP與C51單片機串行通訊的方法。詳細說明了TMS320F240 DSP與C51
    發表于 11-23 15:55 ?27次下載

    C51實現單片機CRC快速算法

    摘要:本文介紹了CRC的基本原理和計算方法,給出了利用C51實現單片機CRC的快速算法關鍵字:CRC;C51
    發表于 09-10 11:14 ?51次下載

    MODBUS實現觸摸屏與單片機通信

    講解如何利用 MODBUS通信協議實現觸摸屏與單片機通信和控審I。詳細介紹了觸摸屏與
    發表于 08-15 14:27 ?330次下載
    用<b class='flag-5'>MODBUS</b><b class='flag-5'>實現</b>觸摸屏與<b class='flag-5'>單片機</b>的<b class='flag-5'>通信</b>

    利用Keil C51實現單片機與PC串口通信任務

    【LabVIEW從入門到精通】5.2.4.1 利用Keil C51實現單片機與PC串口通信
    發表于 01-08 15:47 ?0次下載

    利用Keil C51實現單片機與PC串口通信任務2

    【LabVIEW從入門到精通】5.2.4.3 利用Keil C51實現單片機與PC串口通信
    發表于 01-08 15:47 ?0次下載

    modbus通信協議51單片機C語言實現免費下載

    本文檔的主要內容詳細介紹的是modbus通信協議51單片機C語言實現免費下載。
    發表于 07-02 16:06 ?146次下載
    <b class='flag-5'>modbus</b><b class='flag-5'>通信協議</b><b class='flag-5'>51</b><b class='flag-5'>單片機</b><b class='flag-5'>C</b>語言<b class='flag-5'>實現</b>免費下載

    單片機C51語言程序設計基礎的資料合集免費下載

    本文檔的主要內容詳細介紹的是單片機C51語言程序設計基礎的資料合集免費下載包括了:單片機開發概述,構建C51集成開發環境,單片機
    發表于 03-16 08:00 ?19次下載
    <b class='flag-5'>單片機</b><b class='flag-5'>C51</b>語言程序設計基礎的資料合集免費下載

    C51單片機流水燈C代碼

    C51單片機流水燈C代碼
    發表于 11-05 15:20 ?34次下載
    <b class='flag-5'>C51</b><b class='flag-5'>單片機</b>流水燈<b class='flag-5'>C</b>代碼

    C51單片機實現雙機通訊

    C51單片機實現雙機通訊(代碼為原創,供參考)一、實驗任務:編程控制單片機實現與其他
    發表于 11-11 18:21 ?60次下載
    <b class='flag-5'>C51</b><b class='flag-5'>單片機</b><b class='flag-5'>實現</b>雙機<b class='flag-5'>通訊</b>

    C51單片機與實時系統RTX51(Tiny / Full)

    C51單片機與實時系統RTX51(Tiny / Full)
    發表于 11-18 14:51 ?51次下載
    <b class='flag-5'>C51</b><b class='flag-5'>單片機</b>與實時<b class='flag-5'>系統</b>RTX<b class='flag-5'>51</b>(Tiny / Full)

    C51單片機C52單片機內部的資源區別

    C52單片機可以理解為是C51單片機的增強版? 兩個方面有差異,存儲空間和定時器計數器方面有區別 ○ C52
    發表于 11-19 10:36 ?20次下載
    <b class='flag-5'>C51</b><b class='flag-5'>單片機</b>與<b class='flag-5'>C</b>52<b class='flag-5'>單片機</b>內部的資源區別

    如何利用MODBUS通信協議實現觸摸屏與單片機通信和控制

    講解如何利用MODBUS通信協議實現觸摸屏與單片機通信和控審I。詳細介紹了觸摸屏與
    發表于 08-02 09:50 ?19次下載

    8051單片機RS485通訊C51程序

    8051單片機RS485通訊C51程序。
    發表于 04-07 15:01 ?20次下載

    如何利用ModBus通信協議實現觸摸屏與單片機通信

    電子發燒友網站提供《如何利用ModBus通信協議實現觸摸屏與單片機通信.pdf》資料免費下載
    發表于 10-19 11:19 ?10次下載
    如何<b class='flag-5'>利用</b><b class='flag-5'>ModBus</b><b class='flag-5'>通信協議</b><b class='flag-5'>實現</b>觸摸屏與<b class='flag-5'>單片機</b>的<b class='flag-5'>通信</b>