MAIN:
LD SM0.1
MOVB XXX , SMB30 //根據(jù)和對(duì)方約定的波特率,字符格式等設(shè)定
MOVB 16#9C, SMB87 //允許接收信息,使用SMB90值檢察空閑狀態(tài),定時(shí)器是信息定時(shí)器 , 超過(guò)SMW92值停止接收
MOVW +80, SMW92 //根據(jù)報(bào)文長(zhǎng)短,波特率及從站響應(yīng)的快慢設(shè)定,這個(gè)時(shí)間要小于接收中斷(INT3)里定時(shí)中斷的時(shí)間。
MOVW +0, SMW90
MOVB 200, SMB94 //SMW94 最大接收字符數(shù),這里無(wú)用,但必須要設(shè)置。
ENI
LD SM0.1
ATCH 接收:INT3, 9 //傳輸完成中斷
MOVB 150, SMB34
ATCH 發(fā)送:INT2, 10 //定時(shí)中斷
發(fā)送:
LD SM0.0
DTCH 10
XMT VB100, 0
接收:
LD SM0.0
RCV VB200, 0
MOVB 250, SMB34
ATCH 發(fā)送:INT2, 10
1 本程序只適用于單從站的問(wèn)答式規(guī)約(包括MODBUS)。該程序?yàn)橹髡境绦颉?BR> 2 發(fā)送的數(shù)據(jù)放置在數(shù)據(jù)塊,比如讀取從站地址為16#12的寄存器的數(shù)據(jù)。校驗(yàn)提前算好,減輕PLC負(fù)擔(dān)。
VB100 16#8 16#12 16#03 16#00 16#0A 16#00 16#02 16#E6 16#AA
3 不用考慮起始字符 結(jié)束字符等等,以下是通訊流程圖,不論從站有無(wú)故障,詢問(wèn)不受影響。
4 9600波特率,從站回復(fù)13字節(jié)
5 校驗(yàn)程序可以放在主程序里,
有時(shí)間再發(fā)一個(gè)多從站的程序,程序大小和這個(gè)基本程序不變。