西門子S7-200自由口通訊知識(shí)_第1頁(yè)
西門子S7-200自由口通訊知識(shí)_第2頁(yè)
西門子S7-200自由口通訊知識(shí)_第3頁(yè)
西門子S7-200自由口通訊知識(shí)_第4頁(yè)
西門子S7-200自由口通訊知識(shí)_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

-.z.S7-200系列自由口通訊的實(shí)現(xiàn)及應(yīng)用比擬有用的資料,有S7-200PLC的話,可以試試。1

引言

為了到達(dá)和通訊協(xié)議的控制設(shè)備進(jìn)展數(shù)據(jù)交換,以提高自動(dòng)化控制系統(tǒng)的靈活性,很多plc制造商都相繼的開(kāi)發(fā)出了方便、靈活的自由口通訊方式,例如三菱公司的f*2系列plc,omron公司的cjm1系列的plc,西門子公司的s7-200系列plc等都提供了自由口通訊模式。自由口通訊是指plc提供了串行的通訊硬件,和用于定制通訊協(xié)議的相關(guān)指令,在控制系統(tǒng)中,當(dāng)要和plc連接的控制設(shè)備的通訊協(xié)議時(shí),可以在plc中進(jìn)展編程定制通訊協(xié)議,和控制設(shè)備進(jìn)展數(shù)據(jù)通訊。本文主要介紹西門子s7-200的自由口和計(jì)算機(jī)的串口進(jìn)展的通訊,計(jì)算機(jī)中采用visualbasic進(jìn)展編程,從而實(shí)現(xiàn)計(jì)算機(jī)與可編程控制器的直接控制。該通訊方式具有效率高、容易實(shí)現(xiàn)、通訊硬件簡(jiǎn)單、容易配置等特點(diǎn)在工業(yè)控制領(lǐng)域中被廣泛應(yīng)用。2

s7-200通訊指令及特殊字節(jié)

采用自由口通訊方式時(shí),s7-200上的rs485口完全由用戶控制,可以與任何協(xié)議的設(shè)備進(jìn)展通訊,在這種情況下通訊協(xié)議完全由用戶制定,為此,s7-200提供了用于進(jìn)展通訊協(xié)議定制的特殊標(biāo)志位以及相關(guān)的通訊指令。

2.1特殊標(biāo)志字節(jié)

s7-200用于自由口通訊模式定義的特殊標(biāo)志字節(jié)有smb30和smb130,smb30用于s7-200的端口0的通訊,smb130用于s7-200的端口1的通訊,兩者的格式一樣,下面我們以smb130為例,介紹其組成。smb130各位的含義如下:

pp:兩位用于選擇通訊的校驗(yàn)方式

當(dāng)這兩位的組合是:

00無(wú)校驗(yàn)

01偶校驗(yàn)

10無(wú)校驗(yàn)

11奇校驗(yàn)

d:這一位用于選擇通訊的數(shù)據(jù)位數(shù)

d=1時(shí)7個(gè)數(shù)據(jù)位,d=0時(shí)8個(gè)數(shù)據(jù)位

bbb:用于選擇自由口通訊是的波特率,這三位的組合和通訊波特率的關(guān)系如下:

000——38400bps

001——19200bps

010——9600bps

011——4800bps

100——2400bps

101——1200bps

110——600

bps

111——300

bps

mm:用于通訊協(xié)議的選擇,當(dāng)這兩位的組合是:

00

ppi從站模式

01自由口通訊模式

10

ppi主站模式

2.2接收信息的狀態(tài)字節(jié)

s7-200在自由口通訊時(shí)用于承受信息的狀態(tài)有smb86和smb186,smb86用于s7-200的端口0的通訊,smb186用于s7-200的端口1的通訊,兩者的格式一樣,下面我們以smb186為例,介紹其組成。smb186各位的含義如下:

n=1時(shí):表示制止接收信息

r=1時(shí):表示接收信息完畢

e=1時(shí):表示收到完畢字符

t=1時(shí):表示接收信息超時(shí)錯(cuò)誤

c=1時(shí):表示接收信息字符超長(zhǎng)錯(cuò)誤

p=1時(shí):表示接收信息奇、偶校驗(yàn)錯(cuò)誤

2.3接收信息的控制字節(jié)

s7-200在自由口通訊時(shí)用于承受信息的控制字節(jié)有smb87和smb187,smb87用于s7-200的端口0的通訊,smb187用于s7-200的端口1的通訊,兩者的格式一樣,下面我們以smb187為例,介紹其組成。smb187各位的含義如下:

en=0時(shí):制止接收信息

en=1時(shí):允許接收信息

sc=0時(shí):不使用起始字符開(kāi)場(chǎng)

sc=1時(shí):使用起始字符做為接收信息的開(kāi)場(chǎng)

ec=0時(shí):不使用完畢字符完畢

ec=1時(shí):使用完畢字符做為接收信息的完畢

il=0時(shí):不使用空閑線檢測(cè)

il=1時(shí):使用空閑線檢測(cè)

c/m=0時(shí):定時(shí)器是字符定時(shí)器

c/m=1時(shí):定時(shí)器是信息定時(shí)器

tmr=0時(shí):不使用超時(shí)檢測(cè)

tmr=1時(shí):使用超時(shí)線檢測(cè)

bk=0時(shí):不使用中斷檢測(cè)

bk=1時(shí):使用中斷檢測(cè)

2.4其它和自由口通訊有關(guān)的特殊字節(jié)(見(jiàn)表1)2.5自由口通訊的指令

(1)發(fā)送指令*mt其指令格式如下圖:

發(fā)送指令用于激活發(fā)送數(shù)據(jù)緩沖區(qū)tbl中的數(shù)據(jù),數(shù)據(jù)格式如下所示,數(shù)據(jù)緩沖區(qū)中的第一個(gè)數(shù)據(jù)是指定要發(fā)送的數(shù)據(jù)的總字節(jié)數(shù),最大為255個(gè),從第二個(gè)數(shù)據(jù)開(kāi)場(chǎng)是依次要發(fā)送的數(shù)據(jù)。port指定用于發(fā)送的端口,在發(fā)送完緩沖區(qū)中的最后一個(gè)數(shù)據(jù)時(shí)產(chǎn)生中斷事件。

(2)發(fā)送指令rcv其指令格式如下圖:

接收指令rcv用于從指定的端口接收數(shù)據(jù),并將接收到的數(shù)據(jù)存儲(chǔ)與其參數(shù)tbl所指定的緩沖區(qū),緩沖區(qū)的第一個(gè)字節(jié)指示接收到的字節(jié)數(shù)量,第二個(gè)字節(jié)指示接收的起始字符,最后一個(gè)字節(jié)指示的是完畢字符,起始字符和完畢字符之間的是接收到的數(shù)據(jù),同發(fā)送緩沖區(qū)一樣,接收緩沖區(qū)的最大數(shù)量也是255個(gè)字節(jié)。

(3)與自由口通訊有關(guān)的中斷(見(jiàn)表2)3

plc自由口通訊的程序設(shè)計(jì)

3.1自由口通訊的初始化子程序(見(jiàn)圖1)圖1(a)圖1(b)圖1(c)圖1(d)3.2自由口通訊的發(fā)送子程序(見(jiàn)圖2)圖2(a)圖2(b)3.3自由口通訊的接收程序(見(jiàn)圖3)圖3(a)圖3(b)3.4自由口通訊的開(kāi)場(chǎng)接收中斷效勞程序(見(jiàn)圖4)圖4

自由口通訊的開(kāi)場(chǎng)接收中斷效勞程序3.5自由口通訊的接收完成中斷效勞程序(見(jiàn)圖5)圖5

自由口通訊的接收完成中斷效勞程序4

vb中的串行口通訊組件介紹

4.1vb中串行通訊控件的引用

在vb的標(biāo)準(zhǔn)工具箱中并沒(méi)有用于串行通訊的控件,在使用時(shí)需要引用,引用的方法是在vb界面中的下拉菜單中選擇[工程]/部件,在出現(xiàn)的可選文件中選擇mscm32.oc*,選擇引用后在vb的標(biāo)準(zhǔn)工具箱中就會(huì)出現(xiàn)vb下的串行口通訊控件。如果無(wú)法按照上述的方法在部件中成功地引用組件,也可以使用該程序中的瀏覽功能,到windows/system目錄下去找mscm32.oc*,并翻開(kāi)該文件。

4.2vb中串行通訊控件的屬性

(1)mport:該屬性用于設(shè)置vb應(yīng)用程序所使用的串行口號(hào),其設(shè)置值為1~16,對(duì)應(yīng)計(jì)算機(jī)的1~16號(hào)端口。

(2)settings:該屬性用于設(shè)置串行口的通訊參數(shù),其格式為“bbbb,p,d,s〞其中bbb為通訊的波特率,波特率圍為300~19200bps;p為奇偶校驗(yàn)方式,其設(shè)置方法是e代表偶校驗(yàn),o代表奇校驗(yàn),n代表無(wú)校驗(yàn);d為通訊的數(shù)據(jù)位數(shù),通常是8位或7位;s代表停頓位,停頓位的設(shè)定值有1、1.5、2。例如,setting屬性的設(shè)置為,msm。settings=9600,n,8,1表示通訊波特率為9600,無(wú)校驗(yàn),8個(gè)數(shù)據(jù)位,1個(gè)停頓位。

(3)portope:在使用串行口進(jìn)展通訊前必須先翻開(kāi)串行口,該屬性用于串行口的翻開(kāi)與關(guān)閉,其設(shè)置值為true或false,分別代表串行口的翻開(kāi)與關(guān)閉。

(4)input:該屬性的作用是從輸入緩沖器中將數(shù)據(jù)讀入到程序中,并去除緩沖區(qū)中已被讀走的容。

(5)output:該屬性的作用是從程序中寫(xiě)數(shù)據(jù)到輸出緩沖器中,寫(xiě)入到輸出緩沖器中的容由串口發(fā)送出去。

(6)inputlen:該屬性指定由串行口讀入的字符串長(zhǎng)度,vb所寫(xiě)的程序可以使用該屬性將存放在輸入緩沖器中讀入,但欲指定所讀入的字符的長(zhǎng)度則可以通過(guò)該屬性來(lái)設(shè)置,默認(rèn)值是0,在默認(rèn)情況下,input指令一次讀取所有輸入緩沖區(qū)中的數(shù)據(jù)。

(7)rthrehold:該屬性用于設(shè)置當(dāng)輸入緩沖器中接收到的字符數(shù)等于該屬性的設(shè)定值時(shí),引發(fā)承受事件on-m事件。當(dāng)msm.rthreho-ld=0時(shí)不會(huì)產(chǎn)生onm事件。

(8)inbuffercount:該屬性是指已接收到的并放在輸入緩沖器中等待讀取的字符的數(shù)量。在使用時(shí)可把該屬性設(shè)置為0用來(lái)去除輸入緩沖器。

(9)inputmode:該屬性用于設(shè)置由input屬性取回的數(shù)據(jù)的形式。該屬性設(shè)置值如表3。4.3vb中串行通訊控件的事件

(1)mevent屬性用于傳回以下所述的值之一,來(lái)表示不同的通訊錯(cuò)誤或事件,通訊錯(cuò)誤的返回值如表4所示。(2)通訊事件的返回值如表5所示。4.4visualbasic中用于串口通訊的程序代碼

(1)在form1的代碼的公共局部定義變量:

dimrcvlenth

as

integer

定義接收數(shù)據(jù)長(zhǎng)度的整形變量

dimrcv()

as

byte

定義接收數(shù)據(jù)的動(dòng)態(tài)數(shù)組

dimsend(50)

asbyte

定義發(fā)送數(shù)據(jù)的動(dòng)態(tài)數(shù)組

(2)在form1——load的代碼中對(duì)msm1控件進(jìn)展設(shè)置:

privatesubform_load()

rcvlenth=0

msm1.mport=1

指定計(jì)算機(jī)通訊的端口號(hào)

msm1.settings="9600,n,8,1"

設(shè)置通訊波特率及校驗(yàn)方式

msm1.inputmode=inputmodebinary

msm1.rthreshold=1

msm1.inputlen=0

msm1.outbuffercount=0

ifnotmsm1.portopenthenmsm1.portopen=true

endsub

(3)在msm1的onm()事件中參加以下代碼,用于接收數(shù)據(jù):

privatesubmsm1_on-m()

dimiasintger

dimrcvtemp()asbyte

redimpreservercv(ms-m1.inbuffercount)asbyte

selectcasemsm1.-mevent

caseevreceive

rcvtemp=msm1.input

fori=lbound(rcvtemp)toubound(rcvtemp)

rcvlenth=rcvlenth+1

rcv(rcvlenth)=rcvtemp(i)

ne*ti

endselect

endsub

(4)在timer1_timer()事件中參加如下代碼用于定時(shí)的發(fā)送數(shù)據(jù):

privatesubtimer1_timer()

dimiasintger

fori=1to50

msm1.output=send(i)

ne*ti

endsub

(5)程序界面如圖6所示。圖6

程序界面5

完畢語(yǔ)

s7-200的自由口通訊方式,使用戶可以通過(guò)plc指令自己定義通訊協(xié)議,從而與任何公開(kāi)通訊協(xié)議的rs-422或rs-232

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論