1.pc與歐姆龍cpm1a系列plc的連接
如圖1a所示的點對點結(jié)構的連接方式,稱為1:1host link通信方式。歐姆龍cpm1a系列plc沒有rs232c串行通信端口,它是通過外設通信口與上位機進行通信的,因此cpm1a需配置rs232c通信適配器cpm1-cif01(其模式開關應設置在“host”)才能使用。1:1 host link通信時,上位機發(fā)出指令信息給plc,plc返回響應信息給上位機。這時,上位機可以監(jiān)視plc的工作狀態(tài),例如可跟蹤監(jiān)測、進行故障報警、采集plc控制系統(tǒng)中的某些數(shù)據(jù)等。還可以在線修改plc的某些設定值和當前值,改寫plc的用戶程序等。
圖1 pc與cpm1a系列plc的連接
a)1:1 b)1:n
如圖1b所示的為多點結(jié)構的連接方式,稱為1:n host link通信方式,一臺上位機最多可以連接32臺plc。在這種通信方式下,上位機要通過鏈接適配器b500-al004與cpm1a系列plc連接,每臺plc都要在通信口配一個rs422適配器。利用1:n host link通信方式,可以用一臺上位機監(jiān)控多臺plc的工作狀態(tài),實現(xiàn)集散控制。
2.通信協(xié)議
omron公司cpm1a型plc與上位計算機通信的順序是上位機先發(fā)出命令信息給plc,plc返回響應信息給上位機。每次通信發(fā)送/接受的一組數(shù)據(jù)稱為一“幀”。幀由少于131個字符的數(shù)據(jù)構成,若發(fā)送數(shù)據(jù)要進行分割幀發(fā)送,分割幀的結(jié)尾用cr碼一個字符的分界符來代替終終止符。發(fā)送幀的一方具有發(fā)送權,發(fā)送方發(fā)送完一幀后,將發(fā)送權交給接受方。
發(fā)送幀的基本格式為:
@
機號
識別碼
正文
fcs
終止符
其中:
@ ——為幀開始標志;
機號——指定與上位機通信的plc(在plc的dm6653中設置);
識別碼——該幀的通信命令碼(兩個字節(jié));
正文——設置命令參數(shù);
fcs——幀校驗碼(兩個字符),它是從@開始到正文結(jié)束的所有字符的ascⅱ碼按位異或運算的結(jié)果;
終止符——命令結(jié)束符,設置“*”和“回車”兩個字符表示命令結(jié)束。
響應的基本格式為:
@
機號
識別碼
結(jié)束碼
正文
fcs
終止符
其中:
@ ----為幀開始標志;
機號----應答的的plc號,與上位機指定的plc號相同;
識別碼----該幀的通信命令碼,和上位機所發(fā)的命令碼相同;
結(jié)束碼----返回命令結(jié)束有無錯誤等狀態(tài);
正文——設置命令參數(shù),僅在上位機有讀數(shù)據(jù)時生效;
fcs——幀校驗碼,由plc計算給出,計算方法同上;
終止符——命令結(jié)束符。
3.plc的通信設置
通信前需在系統(tǒng)設定區(qū)域的dm6650-dm6653中進行通信條件設定,具體內(nèi)容見表1。
表1 plc通信設定區(qū)功能說明
通道地址
位
功能
缺省值
dm6650
00-07
上位鏈接
外設通信口通信條件標準格式設定:
00:標準設定(啟動位:1位、字長:7位、奇偶校驗:偶、停止位:2位、比特率:9600bps)
01:個別設定(由dm6651設定)
外設通信口設為上位鏈接
08-11
1:1鏈接
(主動方)
外設通信口1:1鏈接區(qū)域設定
0:lr00-lr15
12-15
全模式
外設通信口使用模式設定
0:上位鏈接 2:1:1鏈接從動方
3:1:1鏈接主動方 4:nt鏈接
dm6651
00-07
上位鏈接
外設通信口比特率設定
00:1200bps 01:2400bps 02:4800bps
03:9600bps 04:19200bps(可選)
08-15
上位鏈接
外設通信口幀格式設定
啟動位 字長 停止位 奇偶校驗
00: 1 7 1 偶校驗
01: 1 7 1 奇校驗
02: 1 7 1 無校驗
03: 1 7 2 偶校驗
04: 1 7 2 奇校驗
05: 1 7 2 無校驗
06: 1 8 1 偶校驗
07: 1 8 1 奇校驗
08: 1 8 1 無校驗
09: 1 8 2 偶校驗
10: 1 8 2 奇校驗
11: 1 8 2 無校驗
dm6652
00-15
上位鏈接
外設通信的發(fā)送延時設定
設定值:0000-9999(bcd),單位10ms
dm6653
00-07
上位鏈接
外設通信時,上位link模式的機號設定
設定值:00-31(bcd)
08-15
不可使用
4.通信過程
通信開始先由上位機依次對plc發(fā)出一串字符的測試幀命令。為充分利用上位機cpu的時間,可使上位機與plc并行工作,在上位機等待plc回答信號的同時,使cpu處理其它任務。某plc在接到上位機的一個完整幀以后,首先判斷是不是自己的代號,若不是就不予理睬,若是就發(fā)送呼叫回答信號。上位機接到回答信號后,與發(fā)送測試的數(shù)據(jù)比較,若兩者無誤,發(fā)出可以進行數(shù)據(jù)通信的信號,轉(zhuǎn)入正常數(shù)據(jù)通信,否則提示用戶檢查線路重新測試或通信失敗。