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