這兩天看了下三菱q系列的mc協議,網上沒找到類似的delphi**,自己手寫乙份,以下是傳送讀指令的**,貼出來,有用的朋友可以拿去看看,(注:這份是qna的c24模組的幀3c相容的第四種格式的協議規範,時間關係,其他的格式沒寫,有需要的博友到通訊手冊裡找找就有了。)
procedure tform1.button3click(sender: tobject);
varp:pchar;
x:integer;
tmpbyte:array[0..39] of byte;
begin
// 以下位fx q系列qna的c24型別模組幀相容3c格式4的協議規範。
tmpbyte[0]:=$05; //enq ,06為ack,15為nck
tmpbyte[1]:=$46; //識別幀編號,其中3c位f9,4c位f8
tmpbyte[2]:=$39;
tmpbyte[3]:=$30; //站編號,即gx developer 設定的q 系列c24 的站編號指定對方裝置訪問哪乙個q系列c24
tmpbyte[4]:=$30; //在00 1f 0 31 的範圍內變換為2 位數ascii **十六進製制數後使用從上位起傳送
tmpbyte[5]:=$30; //網路編號
tmpbyte[6]:=$30; //設定方式,經由編在網路系統中的安裝有plc cpu 的站指定網路編號fe 訪問其他站
//時應該用gx developer 在安裝有plc cpu 的站的plc cpu 上設定下列引數
//訪問其他站時的有效模組的設定在 mnet/10 eternet 塊數設定中設定訪問其他站時經由的模組
tmpbyte[7]:=$46; //plc編號 ,參考fx的pic資料夾中的「plc編號「,此處因網路號位00,根據表的plc編號應為ff
tmpbyte[8]:=$46;
tmpbyte[9]:=$30; //請求目標模組i/o編號 ,當對方裝置訪問站為控制cpu時,此編號為03ff
tmpbyte[10]:=$33;
tmpbyte[11]:=$46;
tmpbyte[12]:=$46;
tmpbyte[13]:=$30; //請求目標模組站編號,多分支連線上的站(00-1f),其他情況位oo
tmpbyte[14]:=$30;
tmpbyte[15]:=$30; //上位站編號,用ascii **進行資料通訊時使用00 進行傳送
tmpbyte[16]:=$30;
tmpbyte[17]:=$30; //命令, 參考fx的pic資料夾中的「命令(子命令)」,此處假設位成批位讀出,則位0401
tmpbyte[18]:=$34;
tmpbyte[19]:=$30;
tmpbyte[20]:=$31;
//注:以下為格式4的讀指令的a部分字元
tmpbyte[21]:=$30; //子命令
tmpbyte[22]:=$30;
tmpbyte[23]:=$30;
tmpbyte[24]:=$30;
//讀指令內容
tmpbyte[25]:=$4d; //軟元件**,此處假設m* ,即4d,2a
tmpbyte[26]:=$2a;
tmpbyte[27]:=$30; //起始軟元件
tmpbyte[28]:=$30;
tmpbyte[29]:=$30;
tmpbyte[30]:=$30;
tmpbyte[31]:=$31;
tmpbyte[32]:=$30;
tmpbyte[33]:=$30; //軟元件點數
tmpbyte[34]:=$30;
tmpbyte[35]:=$30;
tmpbyte[36]:=$35;
//注:此處為寫資料時加上資料
tmpbyte[37]:=$35; //**和數校驗,此處暫未計算,從1加到36 取低兩位
tmpbyte[38]:=$0d; //cr
tmpbyte[39]:=$0a; //lf
comm1.writecommdata(p,length(tmpbyte));
end;
三菱Q系列常用注意事項
三菱q系列plc是三菱公司從原來的a系列plc上發展而來的中大型的三菱plc系列產品,q系列plc採用模組化的結構形式,q系列產品組成和規模靈活可變,能夠實現在同一基板上多cpu模組的安裝,符合各種過程控制的需要,滿足各種運動控制的需要!這些都是它的優點。但是,模組化三菱plc擴充套件模組的增加和更...
C SerialPort 讀寫三菱FX系列PLC
c serialport 讀寫三菱fx系列plc 1 串列埠初始化 com new serialport com3 9600,parity.even,7,stopbits.one 2 開啟關閉串列埠 if com.isopen com.open if com.isopen 3 c ascii轉字元及...
C SerialPort 讀寫三菱FX系列PLC
1 串列埠初始化 com new serialport com3 9600,parity.even,7,stopbits.one 2 開啟關閉串列埠 if com.isopen com.open 3 c ascii轉字元及字元轉ascii public static string chr int a...