三菱FX系列PLC程式設計口通訊協議舉例

2021-06-23 02:11:21 字數 4078 閱讀 1572

本文介紹的 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

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...