hengtong
級(jí)別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 225 個(gè)
工控威望: 323 點(diǎn)
下載積分: 617 分
在線時(shí)間: 473(小時(shí))
注冊(cè)時(shí)間: 2006-10-25
最后登錄: 2024-11-28
查看hengtong的 主題 / 回貼
樓主  發(fā)表于: 2008-01-11 12:19
不支持格雷碼轉(zhuǎn)換指令的PLC,如何編程.(以三菱PLCO為例)
zhengyueyong
級(jí)別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個(gè)
工控威望: * 點(diǎn)
下載積分: * 分
在線時(shí)間: (小時(shí))
注冊(cè)時(shí)間: *
最后登錄: *
查看zhengyueyong的 主題 / 回貼
1樓  發(fā)表于: 2008-01-11 18:40
期待高手
雪花飄飄
級(jí)別: VIP會(huì)員

精華主題: 1 篇
發(fā)帖數(shù)量: 2622 個(gè)
工控威望: 2047 點(diǎn)
下載積分: 6766 分
在線時(shí)間: 3548(小時(shí))
注冊(cè)時(shí)間: 2007-09-03
最后登錄: 2025-01-01
查看雪花飄飄的 主題 / 回貼
2樓  發(fā)表于: 2008-01-12 02:25
等待中。
cvlsam
富士低壓,POD(觸摸屏),PLC專賣
級(jí)別: VIP會(huì)員

精華主題: 3 篇
發(fā)帖數(shù)量: 6778 個(gè)
工控威望: 38381 點(diǎn)
下載積分: 4686 分
在線時(shí)間: 9543(小時(shí))
注冊(cè)時(shí)間: 2006-09-13
最后登錄: 2025-01-03
查看cvlsam的 主題 / 回貼
3樓  發(fā)表于: 2008-01-13 10:50
雖不支持格雷碼轉(zhuǎn)換,但是搞清格雷碼的轉(zhuǎn)換原理就可以了。
下面是富士SPH系列的格雷碼轉(zhuǎn)換程序。
自然二進(jìn)制碼與格雷碼互換在富士SX系列PLC中的實(shí)現(xiàn)方法:

1. 自然二進(jìn)制碼轉(zhuǎn)換為格雷碼:
根據(jù)自然二進(jìn)制碼轉(zhuǎn)換為格雷碼的轉(zhuǎn)換規(guī)則,實(shí)際上就是將轉(zhuǎn)換數(shù)右移一位后與轉(zhuǎn)換數(shù)做異或操作。程序流程圖如下:

          保存輸入數(shù) TEMP

將TEMP右移一位,保存SHILETEMP

將移位后的數(shù)據(jù)與原數(shù)據(jù)作異或

返回異或后的數(shù)據(jù)

功能塊中的程序如下:
INPUT  輸入變量類型為DWORD   
TEMP    局部變量類型為DWORD
SHILETEMP  局部變量類型為DWORD
BIN_TO_GRAY 功能塊返回變量返回類型為DWORD

BIN_TO_GRAY:
TEMP:=INPUT;
SHILETEMP:=SHR_DWORD(TEMP,UNIT#1);
BIN_TO_GRAY:=SHILETEMP XOR INPUT;

2. 格雷碼轉(zhuǎn)換為自然二進(jìn)制碼
根據(jù)格雷碼轉(zhuǎn)換為自然二進(jìn)制碼的轉(zhuǎn)換規(guī)則,實(shí)際上就是不斷的將格雷碼與二進(jìn)制數(shù)做異或操作,也就是說(shuō),不斷的和本身的不同位數(shù)做異或操作,如原數(shù)據(jù)為32位的A,那么先將A向右移動(dòng)一位,與本身進(jìn)行異或,然后保留值為B,那么繼續(xù)將A向右移動(dòng)一位,與B進(jìn)行異或,保留為C,依次類推,直到A=1為止。程序流程圖如下:

保存輸入數(shù)  TEMP,INPUT1

如果輸入數(shù)為0,那么直接返回?cái)?shù)據(jù)0后退出

如果TEMP不等于1,那么循環(huán),否則返回?cái)?shù)據(jù)

        TEMP右移1位,與輸入值作不斷異或

功能塊中的程序如下:
INPUT  輸入變量類型為DWORD   
TEMP    局部變量類型為DWORD
INPUT1  局部變量類型為DWORD
GRAY_TO_BIN 功能塊返回變量返回類型為DWORD

GRAY_TO_BIN:

TEMP:=INPUT;
INPUT1:=INPUT;
IF TEMP=DWORD#0 THEN
      INPUT1:=DWORD#0;
      GRAY_TO_BIN:=INPUT1;
      RETURN;
END_IF;
WHILE TEMP<>DWORD#1 DO
  TEMP:=SHR_DWORD(TEMP,UINT#1);
  INPUT1:=TEMP XOR INPUT1;
END_WHILE;
GRAY_TO_BIN:=INPUT1;

上述代碼在富士的SX系列PLC中試驗(yàn)沒(méi)有問(wèn)題,由于富士的SX系列PLC完全支持ST代碼方式的編程,因此基本上可以不做修改的應(yīng)用在西門子的S7系列的PLC中。
由于三菱的PLC中已經(jīng)包含了自然二進(jìn)制碼轉(zhuǎn)換為格雷碼指令GRY以及格雷碼轉(zhuǎn)換為自然二進(jìn)制碼指令GBIN,因此上述代碼應(yīng)用于三菱系列的PLC已經(jīng)沒(méi)有意義,請(qǐng)使用三菱PLC本身附帶的指令,因?yàn)槲鏖T子以及富士的SX系列PLC并沒(méi)有附帶轉(zhuǎn)換指令,因此本人書寫了上述代碼用于補(bǔ)充SX系列的指令不足。
dytwww
級(jí)別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 207 個(gè)
工控威望: 276 點(diǎn)
下載積分: 601 分
在線時(shí)間: 36(小時(shí))
注冊(cè)時(shí)間: 2007-08-20
最后登錄: 2018-09-19
查看dytwww的 主題 / 回貼
4樓  發(fā)表于: 2008-01-13 20:26
看看   
zhong1946
都2024了
級(jí)別: VIP會(huì)員
精華主題: 3 篇
發(fā)帖數(shù)量: 531 個(gè)
工控威望: 772 點(diǎn)
下載積分: 13780 分
在線時(shí)間: 344(小時(shí))
注冊(cè)時(shí)間: 2006-10-12
最后登錄: 2024-12-21
查看zhong1946的 主題 / 回貼
5樓  發(fā)表于: 2008-01-13 22:05
慚愧試問(wèn):格雷碼到底有何用?