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

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

3天內(nèi)不再提示

詳細介紹S7-200SMART的自由口通信

1bGT_GKYXT1508 ? 來源:未知 ? 作者:胡薇 ? 2018-08-01 14:23 ? 次閱讀

學習S7-200 SMART時了解到,基于RS485接口可實現(xiàn)一下幾種通信

1)modbus RTU通信

2)PPI協(xié)議通信

3)USS協(xié)議通信

4)自由口通信

何為自由口通信呢?

前三種通信必須要PLC和與其通信的設(shè)備支持相同的通信協(xié)議,如果兩者之間沒有共同的通信協(xié)議則需要用到自由口通信。自由口通信也稱無協(xié)議通信,需要根據(jù)對方設(shè)備的通信數(shù)據(jù)格式編寫一個臨時協(xié)議,不僅需要編程人員學會如何編寫程序,還需要了解對方的通信數(shù)據(jù)格式,所以對編程人員要求較高,隨著標準協(xié)議(modbus,USS等)普及,自由口應(yīng)用越來越少,但是對于一下小的設(shè)備如掃碼槍等,并沒有集成標準通信協(xié)議,所以只能選用自由口通信,Moubus和USS其實是自由口的一個特例。很多人碰到自由口通信就手足無措了,其實只要掌握規(guī)律,自由口通信不一定很難。為此我總結(jié)了自由口通信的基本步驟:

1)讀懂對方的數(shù)據(jù)格式。

串行通信中,數(shù)據(jù)是一位一位的進行發(fā)送,也就是0和1。為了能夠準確的將數(shù)據(jù)發(fā)送過去,往往會加上1個起始位,1個校驗位,1個停止位(無校驗是為2個停止位)如圖1-1所示。

圖1-1

我們就以Modbus RTU為例詳細看一下串口通信中數(shù)據(jù)是如何發(fā)送和就收的。

ModbusRTU代碼系統(tǒng)如下:

·1個起始位。

·7或8個數(shù)據(jù)位,最小的有效位先發(fā)送。

·1個奇偶校驗位,設(shè)成無校驗則沒有。

·1個停止位(有校驗時),2個Bit(無校驗時)。

數(shù)據(jù)格式的描述如下表:

11-bit字符幀(BITl-BIT8為數(shù)據(jù)位):

起始位 Bit1 Bit2 Bit3 Bit4 Bit5 Bit6 Bit7 Bit8 校驗位 停止位

10-bit字符幀(BITl-BIT7為數(shù)據(jù)位):

起始位 Bit1 Bit2 Bit3 Bit4 Bit5 Bit6 Bit7 校驗位 停止位

通信中要保證通信雙方要有相同的波特率,數(shù)據(jù)格式,奇偶校驗位。

波特率:通信速度,每秒中發(fā)送的位的個數(shù),單位為Bit/S或bps。

奇偶檢驗:偶校驗的含義:在數(shù)據(jù)傳輸前附加一位偶校驗位,用來表示傳輸?shù)臄?shù)據(jù)中“1”的個數(shù)是奇數(shù)還是偶數(shù),為偶數(shù)時,校驗位置為“0”,否則置為“1”用以保持數(shù)據(jù)的奇偶性不變。奇校驗的含義:在數(shù)據(jù)傳輸前附加一位奇校驗位,用來表示傳輸?shù)臄?shù)據(jù)中“1”的個數(shù)是奇數(shù)還是偶數(shù),為奇數(shù)時,校驗位置為“0”,否則置為“1”用以保持數(shù)據(jù)的奇偶性不變。

一個字符幀中,真正起作用的是數(shù)據(jù)位。起始位、檢驗位和停止位的加入只是為了將數(shù)據(jù)位正確地傳輸?shù)綄Ψ皆O(shè)備。在實際應(yīng)用時一定要將主站和從站數(shù)據(jù)位、奇偶校驗、停止位設(shè)為一致。

在通信過程中一個完整的通信報文包括多個數(shù)據(jù)幀,一般包含地址幀、功能碼幀、數(shù)據(jù)幀、檢驗幀。在Modbus RTU中,一個報文發(fā)送完成之后會保持3.5個字節(jié)的靜默時間,再發(fā)送下一個報文,如圖1-2所示。

圖1-2

地址幀:指示從站的站號,以十六進制表示,如01H。

功能碼幀:指示操作是讀還是寫,03H為讀,06H為寫操作。

數(shù)據(jù)幀:包含要讀寫的從站參數(shù)起始地址、個數(shù)及數(shù)值,數(shù)據(jù)幀在發(fā)送的時候每個字包含兩個8位字符,先發(fā)高8位后發(fā)低8位。

校驗幀:CRC校驗值,也拆分成兩個字節(jié),先發(fā)低字節(jié)后發(fā)高字節(jié)。校驗幀的原理是將將所有數(shù)據(jù)幀進行CRC運算,算出一個檢驗值,加在數(shù)據(jù)幀后面一起發(fā)送過去,從站設(shè)備接收到數(shù)據(jù)后再進行一次運算,將運算的檢驗值和接收的值進行比較,如果不一致則說明數(shù)據(jù)發(fā)送出錯。

例如:從01H號站變頻器,讀取從0004H地址開始的2個數(shù)據(jù)的值。

發(fā)送報文:01H(地址幀),03H(功能碼幀),00H(起始地址高位),04H(起始地址低位),00H(數(shù)據(jù)個數(shù)高位),02H(數(shù)據(jù)個數(shù)低位),85H(CRC低位),CAH(CRC高位)

例如:將5000(1388H)寫到從站地址02H變頻器的0004H地址中。

發(fā)送報文:02H,06H,00H,04H,13H,88H,C5H,6EH

了解了通信協(xié)議的數(shù)據(jù)格式,接下來就是編寫自由口通信程序:,下面就以通過自由口通信控制英威騰變頻器啟停為例講解程序的編寫。

歸納總結(jié)了一下分為以下幾步:

1)定義通信端口。

SMB30和SMB130分別為端口0和1的控制字節(jié),提供了波特率、奇偶校驗、數(shù)據(jù)位和通信協(xié)議的選擇,如圖1-3所示。

圖1-3

利用字節(jié)傳送指令將分析所得的控制字節(jié)數(shù)據(jù)寫入到SMB30或SMB130中,如圖1-4所示。

圖1-4

往SMB30中寫入2#01001001,則定義端口0為自由協(xié)議,波特率9600,8位數(shù)據(jù)位,偶校驗。

2)按照發(fā)送指令XMT的緩沖區(qū)格式定義發(fā)送數(shù)據(jù)報文。

圖1-5

圖1-5中TBL(VB0)為發(fā)送緩沖區(qū)起始地址,格式為:

VB0:發(fā)送字節(jié)總數(shù)。

VB1:報文第一幀,即地址幀,16#01

VB2:功能碼幀,寫16#06。

VB3:通信地址高位,控制啟停地址為16#2000,高位為16#20。

VB4:通信地址低位,16#00。

VB5:寫入數(shù)值高位,16#00(寫入16#0001正轉(zhuǎn),16#0002反轉(zhuǎn),16#0005停止)。

VB6:寫入數(shù)值低位,16#01。

VB7:CRC校驗碼低位,16#43。

VB8:CRC校驗碼高位,16#CA。(校驗碼為16#CA43)

程序如圖1-6所示,此處用到一個CRC算法程序,

圖1-6

3)觸發(fā)發(fā)送指令XMT,如圖1-7所示。

圖1-7

3)接收數(shù)據(jù),接收有兩種方式,一是利用RCV指令接收,應(yīng)用較為復(fù)雜,此處不介紹;一是利用SMB2緩沖地址接收,因為端口0接收到一個字符會觸發(fā)8號中斷,并將其存放于SMB2中,通常利用8號事件觸發(fā)中斷,在中斷中將SMB2的數(shù)據(jù)轉(zhuǎn)存到其它地址,否則下一數(shù)據(jù)將覆蓋該數(shù)據(jù),直到接收完所有數(shù)據(jù)后置位一個完成標志,延時一定事件再次觸發(fā)發(fā)送指令。接收中斷程序如圖1-8所示。

圖1-8

以上介紹了S7-200SMART的自由口通信,使用自由口通信時編寫程并不是難點,關(guān)鍵在于讀懂對方通信數(shù)據(jù)格式,在以后編程過程中盡量選用支持標準協(xié)議的設(shè)備,確實需要選用自由口也不用害怕,只要按照上述步驟一步步來完成,相信肯定可以通信成功。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • S7200
    +關(guān)注

    關(guān)注

    2

    文章

    35

    瀏覽量

    16228
  • 自由口通信
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    6406

原文標題:一文讀懂S7-200 SMART自由口通信!

文章出處:【微信號:GKYXT1508,微信公眾號:工控云學堂】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    西門子s7-200smart modbus-tcp通信實例編程詳細指導

    西門子s7-200smart modbus-tcp通信實例編程詳細指導
    發(fā)表于 11-24 12:21

    IGT-DSER智能網(wǎng)關(guān)的網(wǎng)2連接S7-200Smart

    IGT-DSER智能網(wǎng)關(guān)模塊有哪些功能?IGT-DSER智能網(wǎng)關(guān)的網(wǎng)2與S7-200Smart是如何進行連接的?
    發(fā)表于 09-23 06:27

    西門子PLC S7-200smart程序下載錯誤分析

    。西門子PLC S7-200smart的CPU預(yù)置的IP地址為:192.168.2.1?! ?. 通信參數(shù)是否匹配  如果用戶下載系統(tǒng)塊,注意用戶項目系統(tǒng)塊中的西門子PLC S7-200smart
    發(fā)表于 07-23 15:27 ?4716次閱讀

    西門子S7-200自由通信詳細使用教程資料免費下載

    S7-200 CPU 具有自由通信能力。自由通信
    發(fā)表于 10-11 08:00 ?52次下載
    西門子<b class='flag-5'>S7-200</b><b class='flag-5'>自由</b><b class='flag-5'>口</b><b class='flag-5'>通信</b>的<b class='flag-5'>詳細</b>使用教程資料免費下載

    S7-200smart 與臺達變頻器通訊功能及參數(shù)程序

    S7-200smart 與臺達變頻器通訊控制程序
    的頭像 發(fā)表于 07-27 08:59 ?2.6w次閱讀
    <b class='flag-5'>S7-200smart</b> 與臺達變頻器通訊功能及參數(shù)程序

    西門子S7-200SMART接入BL102 PLC網(wǎng)關(guān)

    ,BL102網(wǎng)關(guān)采集西門子S7-200SMART的數(shù)據(jù)通過 WAN 連接 4G 路由器 R40,使用 R40 的路由功能將數(shù)據(jù)上傳到各個云平臺。 注:WAN 和 LAN 都可以采
    發(fā)表于 10-28 17:08 ?1964次閱讀
    西門子<b class='flag-5'>S7-200SMART</b>接入BL102 PLC網(wǎng)關(guān)

    PLC網(wǎng)關(guān)采集西門子S7-200SMART數(shù)據(jù)配置流程

    PLC網(wǎng)關(guān)采集西門子S7-200SMART數(shù)據(jù)配置流程
    發(fā)表于 11-04 11:37 ?4055次閱讀
    PLC網(wǎng)關(guān)采集西門子<b class='flag-5'>S7-200SMART</b>數(shù)據(jù)配置流程

    西門子S7-200SMART如何接入MQTT云平臺

    西門子S7-200SMART如何接入MQTT云平臺
    發(fā)表于 11-10 16:49 ?3403次閱讀

    組態(tài)王與S7-200SMART PLC以太網(wǎng)通信

    組態(tài)王與S7-200SMART PLC以太網(wǎng)通信,對于剛接觸者有點難度,不知如何進行配置,如何通信,那么接下來教大家來一步一步來做通信。
    的頭像 發(fā)表于 09-07 16:26 ?5465次閱讀

    工業(yè)智能物聯(lián)網(wǎng)網(wǎng)關(guān)鋇錸BL110網(wǎng)LAN采集西門子PLC S7-200Smart

    工業(yè)智能物聯(lián)網(wǎng)網(wǎng)關(guān)鋇錸BL110網(wǎng)LAN采集西門子PLC S7-200Smart
    的頭像 發(fā)表于 09-30 17:53 ?1062次閱讀

    西門子s7-200smarts7-1200PLC通信技術(shù)

    S7-1200與S7-200SMART S7 通訊的另外一種方法是S7-200SAMRT PLC做客服端,S7-1200做服務(wù)器。該方式需要
    發(fā)表于 11-17 20:16 ?8079次閱讀

    詳細講解S7-200PLC自由通訊

    主要內(nèi)容: S7-200 PLC串口通訊概覽 S7-200 PLC自由通訊基礎(chǔ) S7-200 PLC
    的頭像 發(fā)表于 01-03 16:46 ?1.2w次閱讀

    西門子S7-200Smart如何轉(zhuǎn)換Modbus

    西門子S7-200Smart Modbus網(wǎng)關(guān)
    的頭像 發(fā)表于 11-03 18:41 ?4097次閱讀
    西門子<b class='flag-5'>S7-200Smart</b>如何轉(zhuǎn)換Modbus

    如何實現(xiàn) S7-200smart系列PLC的本地數(shù)采及云端數(shù)采?

    客戶創(chuàng)造更多的價值。S7-200SMARTCPU支持多種通信協(xié)議,可與PLC、觸摸屏、變頻器、伺服驅(qū)動器、上位機等連網(wǎng)通信。S7-200SMART在工業(yè)場景應(yīng)用廣泛
    的頭像 發(fā)表于 10-12 18:08 ?1253次閱讀
    如何實現(xiàn) <b class='flag-5'>S7-200smart</b>系列PLC的本地數(shù)采及云端數(shù)采?

    西門子S7-1200與S7-200SMART進行PN通信

    S7-200SMART編程軟件自V2.4版本、CPU固件也是自2.4版本起起開始支持Profinet通信。S7-200SMART即可以做IO控制器,也可以做IO設(shè)備。下面的例程以S7-200S
    的頭像 發(fā)表于 07-10 16:05 ?4918次閱讀
    西門子<b class='flag-5'>S7</b>-1200與<b class='flag-5'>S7-200SMART</b>進行PN<b class='flag-5'>通信</b>!