本文介紹的 pc 與三菱 fx 系列 plc 通訊,是通過 plc 的程式設計口與 pc 機的串列埠進行的,採用 sc-09 程式設計電纜作為計算機與 plc 通訊的連線。電纜的 9 芯 d 形插頭連線在計算機串列埠上,另一端連線 plc 的 rs-422 程式設計口。
編寫 pc 的通訊程式可採用組合語言、各種高階語言,也可以採用工控組態軟體或直接採用 plc 廠家的通訊軟體。本文採用 vb6 . 0 軟體,它必須依據所連線 plc 的通訊規程來編寫通訊協議,所以先簡單介紹 fx 系列 plc 的通訊協議。
一、 fx 系列 plc 的通訊協議
1 .資料傳輸格式
fx 系列 plc 採用非同步格式,由 1 位起始位、 7 位資料位、 l 位偶校驗位及 l 位停止位組成,波特率為 9600bps ,字元為 asci ⅱ碼。
2 .通訊命令
fx 系列 plc 有 4 條通訊命令,即讀命令、寫命令、強制通命令、強制斷命令。表 1 中, x 為輸入繼電器; y 為輸出繼電器; m 為輔助繼電器; s 為狀態元件; t 為定時器; c 為計數器; d 為資料暫存器。
3 .通訊控制字元
fz 系列 plc 採用面向字元的傳輸規程,用到 5 個通訊控制字元,如表 2 所示。
4 .報文格式
pc 機向 plc 傳送的報文格式如表 3 所示。其中, stx 為開始標誌; ets 為結束標誌; cmd 為命令的 asc ⅱ碼: sumh 、 suml 為從 cmd 到 etx 按位元組求累加和,溢位不計。由於每位元組十六進製制數變為兩位元組 asc ⅱ**,故校驗和為 sumh 與 sumi 。
plc 向 pc 機傳送的應答報文格式如表 4 所示。
二、 pc 通訊程式的編寫
1 .通訊口初始化
, mscomm 控制項簡介: vb 帶有專門管理序列通訊的 mscomm 控制項。只需設定幾個主要引數就可以實現 plc 與 pc 間的序列通訊。要完成通訊必須設定 mscomm 的相關屬性值,即通訊口初始化,其步驟如下:
(1)coinmport :設定或傳回通訊連線埠代號。
(2)settings :設定初始化引數。以字 - 符串的形式設定或傳回連線速度、奇偶校驗、資料位、停止位等 4 個引數。
(3)portopen :設定或傳回通訊連線埠的狀態。
(4)input :從輸入暫存器傳回並移除字元。
(5)output :將乙個字串寫入輸出暫存器。
(6)inputlen :指定由串列埠讀入的字串長度。
(7)inbuffercount:傳回在接收暫存器中的字元數。
2 .通訊程式舉例
首先,在窗體開始設計之前,新增 mscomm 控制項和按鈕、文字框、標籤等。
(1)pc 從 plc 中讀取資料
假設 pc 要從 plc 中讀入從 d123 開始的 4 個位元組的資料 ( 占用兩個資料暫存器: d123 、 d124) ,其報文如表 5 所示。
根據三菱 fx 系列 plc 程式設計口通訊協議,位址演算法為
address=address×2+1000h
將位址 123 轉換成十六進製制為 7bh ,因此首位址為:
address=addressx2+1000h=7bhx2+1000h=10f 6h .
再轉換成 ascii 碼為 31h,30h,46h,36h
校驗和 sum=30h+31h+30h+46h+36h+30h+34h+03h=174h ,溢位部分不計,故 sumh 為 "7" , suml 為 "4" ,相應的 asc ⅱ碼為「 37h 」和「 34h 」。
plc 的應答報文格式如表 6 所示。
(2) 把資料寫入 plc
例如,向 plc 的 d123 資料暫存器寫入資料「 1234abcd 」的報文格式如表 7 所示
本文介紹的利用 vb6 . o 實現 pc 與三菱 plc 通訊的基本方法,切實可行,具有廣泛的實用價值。對初學者很有幫助。
三菱fx系列plc程式設計口通訊協議舉例
1、device read(讀出軟裝置狀態值)
計算機向plc傳送:始命令
首位址位數
終和校驗
stxcmd
group address
bytes
etxsum
例子:從d123開始讀取4個位元組資料
02h30h
31h,30h,46h,36h
30h,34h
03h37h,34h
位址演算法:address=address*2+1000h,將123 轉換為16進製制*2 得f6,10f6
再轉換成ascii
31h,30h,46h,36h
plc返回
stx1st data
2nd data
.....
last data
etxsum
注:最多可以讀取64個位元組的資料
例子:從指定的儲存器單元讀到3584這個資料
02h33h
35h38h
34h03h
44h,36h
2、device write(向plc軟裝置寫入值)始命令
首位址位數資料終
和校驗stx
cmdgroup address
bytes
1st data
2nd data
......
last data
etxsum
例子:向d123開始的兩個儲存器中寫入1234,abcd
02h31h
31h,30h,46h,36h
30h,34h
33h,34h,31h,32h,43h,44h,41h,42h
03h34h,39h
plc返回
ack (06h) 接受正確
nak (15h) 接受錯誤
3、位裝置強制置位/復位
force on置位始命令
位址終和校驗stx
cmdaddress
etxsum
02h37h
address
03hsum
force off復位始命令
位址終和校驗stx
cmdaddress
etxsum
02h38h
address
03hsum
plc返回
ack(06h) 接受正確
nak(15h) 接受錯誤
裝置強制中的位址公式:address=address/8+100h
說明:1.幀中的bytes表示需要讀取或者寫入的位元組數。
2.位址演算法上有說明。
3.累加和是從stx後面乙個位元組開始累加到etx的和。
三菱fx系列plc程式設計口通訊協議總覽
該協議實際上適用於plc程式設計埠以及 fx-232aw 模組的通訊。感謝網友visualboy提供。
通訊格式:
命令命令碼
目標裝置
device read cmd
"0"x,y,m,s,t,c,d
device write cmd
"1"x,y,m,s,t,c,d
force on cmd
" 7"
x,y,m,s,t,c
force off cmd
"8"x,y,m,s,t,c
傳輸格式: rs232c
波特率: 9600bps
奇偶: even
校驗: 累加方式(和校驗)
字元: ascii
16進製制**:
enq05h
請求ack
06hplc正確響應
nak15h
plc錯誤響應
stx02h
報文開始
etx03h
報文結束
幀格式:
stxcmd
data
......
data
etxsum(upper)
sum(lower)
例子:stx ,cmd ,address, bytes, etx, sum
02h, 30h, 31h,30h,46h,36h, 30h,34h, 03h, 37h,34h
sum=cmd+......+etx;
30h+31h+30h+46h+36h+30h+34h+03h=74h;
累加和超過兩位取低兩位
三菱fx程式設計手冊 三菱FX系列PLC的程式語言介紹
三菱fx系列plc的程式語言支援6中,有1,指令表程式設計2,梯形圖編輯3,sfc 步進梯形圖 4,st文字語言,5,結構化梯形圖,6,fbd功能模組表。1指令表程式設計 指令表程式設計方式,就是通過 ld and out 等指令語言輸入順控指令的方式,該方式是順控程式中基本的輸入形態。在我們對程式...
三菱FX系列PLC程式設計口通訊協議舉例
本文介紹的 pc 與三菱 fx 系列 plc 通訊,是通過 plc 的程式設計口與 pc 機的串列埠進行的,採用 sc 09 程式設計電纜作為計算機與 plc 通訊的連線。電纜的 9 芯 d 形插頭連線在計算機串列埠上,另一端連線 plc 的 rs 422 程式設計口。編寫 pc 的通訊程式可採用組...
三菱FX系列PLC程式設計口通訊協議舉例
三菱 fx系列 plc程式設計口通訊協議舉例 1 device read 讀出軟裝置狀態值 計算機向plc傳送 始命令 首位址位數 終和校驗 stxcmd group address bytes etxsum 例子 從d123開始讀取4個位元組資料 02h30h 31h,30h,46h,36h 30...