時(shí)間:2008-12-15 10:19:05來源:zhangting
圖1 rs485連接電纜圖[/align]
(2) 主要相關(guān)設(shè)備:中央處理器cpu 314;點(diǎn)到點(diǎn)通信模塊cp341-rs422/485。
(3) 功能:—向模擬屏發(fā)送模擬量數(shù)據(jù);—向模擬屏發(fā)送開關(guān)量信息;—控制屏狀態(tài),包括:全屏亮暗、全屏信號(hào)分合、 變位幀閃光;—設(shè)定和改變時(shí)鐘時(shí)間。
4 通信實(shí)現(xiàn)的方法
4.1 初始化
就串行通信而言,交換數(shù)據(jù)的雙方利用傳輸在線的電壓改變來達(dá)到數(shù)據(jù)交換的目的。如何從不斷改變的電壓狀態(tài)中解析出其中的信息,雙方必須有一套共同的譯碼方式,遵守一定的通信規(guī)則。這就是通信端口初始化。
通信端口初始化有以下幾個(gè)項(xiàng)目必須設(shè)置或確認(rèn):
(1) 通信模式
串行通信分同步和異步兩種模式。同步傳輸在通信的兩端使用同步信號(hào)作為通信的依據(jù),異步傳輸則使用起始位和停止位作為通信的判斷。模擬屏通信模式:異步傳輸;西門子plc通信模式:異步傳輸;二者通信模式相同。
(2) 數(shù)據(jù)的傳輸速率
異步通信雙方并沒有一個(gè)可參考的同步時(shí)鐘作為基準(zhǔn)。這樣雙方傳送的高低電位代表幾個(gè)位就不得而知了。要使雙方的數(shù)據(jù)讀取正常,就要考慮到傳輸速率。收發(fā)雙方通過傳輸在線的電壓改變來交換數(shù)據(jù),但發(fā)送端發(fā)送的電壓改變的速率必須和接收端的接受速率保持一致。模擬屏的通信速率:9600bps;西門子plc通信速率:600bps,1200bps,2400bps,4800bps,9600bps,19200bps,38400bps,57600bps,76800bps。初始化,將plc波特率設(shè)為:9600bps
(3) 起始位及停止位
當(dāng)發(fā)送端準(zhǔn)備發(fā)送數(shù)據(jù)時(shí),會(huì)在所送出的字符前后分別加上高電位的起始位及低電位的停止位。接收端會(huì)因起始位的觸發(fā)而開始接收數(shù)據(jù),并因停止位的通知而確定數(shù)據(jù)的字符信號(hào)已經(jīng)結(jié)束。起始位固定為1位,而停止位則有1,1.5,2等多種選擇。模擬屏的停止位: 1位;西門子plc的停止位:1位或2位。初始化,將plc數(shù)據(jù)停止位設(shè)為:1位。
(4) 數(shù)據(jù)的發(fā)送單位
不同的協(xié)議會(huì)用到不同的發(fā)送單位(歐美一般用8位、日本一般用7位組成一字節(jié)),使用幾位合成一字節(jié),雙方必須一致。模擬屏的數(shù)據(jù)發(fā)送單位: 8位為一字節(jié);西門子plc的數(shù)據(jù)發(fā)送單位:7位或8位為一字節(jié)。初始化,將plc數(shù)據(jù)發(fā)送單位設(shè)為:8位。
(5) 校驗(yàn)位的檢查
為了預(yù)防錯(cuò)誤的產(chǎn)生,使用校驗(yàn)位作為檢查的機(jī)制。校驗(yàn)位是用來檢查所發(fā)送數(shù)據(jù)正確性的一種校對(duì)碼,它分奇偶校驗(yàn),也可無(wú)校驗(yàn)。模擬屏校驗(yàn)位:none;西門子plc校驗(yàn)位:none,odd,even;初始化,將plc校驗(yàn)位設(shè)為:none。
(6) 工作模式
交換數(shù)據(jù)是通過一定的通信線路來實(shí)現(xiàn)的。微機(jī)在進(jìn)行數(shù)據(jù)的發(fā)送和接收時(shí)通信線路上的數(shù)據(jù)流動(dòng)方式有三種:單工、半雙工、全雙工。rs232和rs422使用全雙工模式,rs485使用半雙工模式。模擬屏工作模式:rs232全雙工/rs485半雙工;西門子plc工作模式:rk512 全雙工四線制(rs422);3964r全雙工四線制(rs422);ascii全雙工四線制(rs422);ascii半雙工兩線制(rs 485);初始化,將plc工作模式設(shè)為:ascii半雙工兩線制(rs485)。
(7) 數(shù)據(jù)流控制—握手
傳輸工作進(jìn)行時(shí),發(fā)送速度若大于接收速度,而接收端的cpu處理速度不夠快時(shí),接收緩沖區(qū)就會(huì)在一定時(shí)間后溢滿,造成后來發(fā)送過來的數(shù)據(jù)無(wú)法進(jìn)入緩沖區(qū)而漏失。采用數(shù)據(jù)流控制,就是為了保證傳輸雙方能正確地發(fā)送和接收數(shù)據(jù),而不會(huì)漏失。數(shù)據(jù)流控制一般稱為握手,握手分為硬件握手和軟件握手。模擬屏數(shù)據(jù)流控制:none;西門子plc數(shù)據(jù)流控制:none。要通過用戶程序詢問和控制。
(8) 錯(cuò)誤預(yù)防—校驗(yàn)碼
在傳輸?shù)倪^程中,數(shù)據(jù)有可能受到干擾而使原來的數(shù)據(jù)信號(hào)發(fā)生扭曲。為了監(jiān)測(cè)數(shù)據(jù)在發(fā)送過程中的錯(cuò)誤,必須對(duì)數(shù)據(jù)作進(jìn)一步的確認(rèn)工作,最簡(jiǎn)單的方式就是使用校驗(yàn)碼。模擬屏校驗(yàn)碼:異或校驗(yàn)和。要在plc上編校驗(yàn)碼程序。
4.2 數(shù)據(jù)發(fā)送
(1) 將同步字及測(cè)量值db36.dbw21開始的數(shù)據(jù)送到db42.dbw12開始的數(shù)據(jù)區(qū)去,為向串口發(fā)送做準(zhǔn)備。程序如下:
遙測(cè)第一幀(fc36)
l w#16#eb90
傳送兩次同步字eb90,分別給db42.dbw12和db42.dbw14
t db42.dbw12
l w#16#eb90
t db42.dbw14
l b#16#61
//將報(bào)文類型字“61”送給db42.dbb16
t db42.dbb16
l w#16#100
//第一幀將起始地址“0100”送給db42.dbw17
t db42.dbw17
//第二幀將起始地址“0120”送給db42.dbw17
l w#16#40
//將正文字節(jié)數(shù)“40”(64字節(jié))送給db42.dbw19
t db42.dbw19
l db36.dbw21
//第一幀將db36.dbw21開始的32個(gè)字的模擬量
caw 送到db42.dbw21開始的區(qū)域
t db42.dbw21
l db36.dbw23
caw
t db42.dbw23
…………………
l db36.dbw83
caw
t db42.dbw83
opn db42 //遙信校驗(yàn)
l p#17.0 //第二幀與第一幀相同
t md100
l dbw[md100]
t mw10
l 33
t mw16
l mw16
next: t mw12
l md100
l p#2.0
+d
t md100
l dbw[md100]
l mw10
xow
t mw10
l mw12
loop next
l md100
l p#2.0
+d
t md100
l mw10
t mw14
l mw14
slw 8
t dbw[md100]
l mw10
aw w#16#ff00
t mw10
l mw10
l dbw[md100]
xow
t dbw[md100]
l dbw16
t mw18
l mw18
aw w#16#ff00
t mw18
l mw18
l dbw[md100]
xow
t dbw[md100]
(2) 將db42.dbw12開始,長(zhǎng)度為95個(gè)字的數(shù)據(jù)送到串行端口,程序如下:
//supply laddr, db_no,dbb_no,len
l 256 // laddr
t db40.dbw2
l 42 // db_no
t db40.dbw4
t db42.dbw4
l 12 // dbb_no
t db40.dbw6
t db42.dbw6
l 95 // len
t db40.dbw8
t db42.dbw8
//send with instance-db
call fb8 , db21
sf :=’s’
req :=db40.dbx0.0
r :=db40.dbx0.1
laddr :=db40.dbw2
db_no :=db40.dbw4
dbb_no :=db40.dbw6
len :=db40.dbw8
r_cpu_no:=
r_typ :=
r_no :=
r_offset :=
r_cf_byt :=
r_cf_bit :=
done :=db40.dbx0.4
error :=db40.dbx0.5
status :=db40.dbw12
// generate edge p_snd_rk_req
an db40.dbx0.0 // p_snd_rk_req
s db40.dbx0.0
// set p_snd_rk_req
o db40.dbx0.4 // p_snd_rk_done
o db40.dbx0.5 // p_snd_rk_error
r db40.dbx0.0 // p_snd_rk_req
// check “complete without error”
an db40.dbx0.4
// check p_snd_rk_done if p_snd_rk_done equals 0,
jc cher
// jump to cher and check p_snd_rk_error
//”complete without error”
// p_snd_rk_done=1
l db42.dbw0
//“complete without error”
+1 // increment counter
t db42.dbw0
nop //further user function
nop
nop
be
// check “complete with error”
// p_snd_rk_error=1
cher: an db40.dbx0.5
//check p_snd_rk_error
bec //if no error occurred, jump to end
//“complete with error”
l db42.dbw2
//“complete with error”
+1 //increment counter
t db42.dbw2
l db40.dbw12
t db40.dbw14 //save status
nop //error-handling
nop
nop
be
(3) 數(shù)據(jù)刷新,程序如下:
an m2.4
l s5t#100ms
sd t0
a t0
jnb _007
l w#16#1
l md4
rrd
t md4
set
save
clr
_007: a br
= l20.0
a l20.0
a(
l md4
l l#0
==d
)
jnb _008
l 1
t md4
_008: nop 0
a l20.0
bld 102
= m2.4
a(
o m5.0
o m6.4
)
jnb _003
call fc36
_003: nop 0
a(
o m4.0
o m5.4
)
jnb _004
call fc38
_004: nop 0標(biāo)簽:
傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為傳動(dòng)網(wǎng)(connectcrack.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。
產(chǎn)品新聞
更多>2025-10-31
勇梅機(jī)械液壓閘門給煤機(jī)的優(yōu)點(diǎn)
2025-10-22
2025-10-17
2025-10-11
「一體機(jī)性價(jià)比王者」NK290M普及型數(shù)控...
2025-10-09
耐磨管道機(jī)器人檢測(cè)電纜CCTV,水下管道...
2025-09-23