wangk0
人都有點(diǎn)過(guò)去~
級(jí)別: 工控俠客
精華主題: 0
發(fā)帖數(shù)量: 82 個(gè)
工控威望: 2155 點(diǎn)
下載積分: 3866 分
在線時(shí)間: 64(小時(shí))
注冊(cè)時(shí)間: 2012-05-17
最后登錄: 2024-04-11
查看wangk0的 主題 / 回貼
樓主  發(fā)表于: 2012-08-20 15:47
網(wǎng)上很多講485的,搜出來(lái)一看,都一個(gè)模子復(fù)制出來(lái)的。不過(guò)硬件部分就那么接,這次詳解PLC程序。

首先準(zhǔn)備兩本書(shū),F(xiàn)X1S1N2N2NC編程手冊(cè)(基本指令,步進(jìn)梯形指令,應(yīng)用指令說(shuō)明書(shū)).pdf 和 FR-A500.pdf 。這兩本可以去三菱電機(jī)官網(wǎng)下載最新的。前一本書(shū)重點(diǎn)看273頁(yè)往后,后一本書(shū)看4.2.41節(jié)?床幌氯(shū)的,可以去看
http://24x7lending.com/read-gktid-144031.html 這個(gè)貼子里的三菱通訊基礎(chǔ)的視頻,快進(jìn)著看還是很不錯(cuò)的。

PLC編程用到通訊部分的指令如下圖:


重點(diǎn)為RS, ASCI, HEX, CCD

能過(guò)查變頻器手冊(cè),定義通訊的格式:我定義的為數(shù)據(jù)長(zhǎng)度7位,偶校驗(yàn),停止位1位,無(wú)起始符結(jié)束符,9600BPS速率。
PLC通訊格式的設(shè)定跟據(jù)變頻器的設(shè)置,再寫入到標(biāo)志位里去,如下圖:


然后通過(guò)PLC說(shuō)明書(shū)知道,使用BD板,D8120的11,10,9這三位必須為110。這下一來(lái),我上面的參數(shù)對(duì)應(yīng)到D8120里去為H0C86。

到這一步,就相當(dāng)于快遞公司有了,地址寫了,就差包裹了。

下面就是做包裹

通過(guò)RS定義包裹的大小

然后從變頻器的手冊(cè)上,找到包裹的具體形式:




然后填寫相關(guān)部分的數(shù)據(jù):
這個(gè)地方的數(shù)據(jù)形式還得看變頻器,畢竟PLC上就是定義一長(zhǎng)串的數(shù)據(jù),把這串?dāng)?shù)據(jù)寫滿就行了。
上面一張圖里面其實(shí)就是具體的數(shù)據(jù)形式了,不過(guò),三菱規(guī)定通訊時(shí)使用的是ASCII碼,那像ENQ的ASCII碼是多少就得查表了。


指令代碼也要查表


截圖了部分,都在上面我給的那一節(jié)書(shū)中。

下面以讓變頻器正反轉(zhuǎn)為例編段程序:
首先寫入通訊格式,將下面跟隨的程序置為8位處理模式。8位處理模式是因?yàn)槿鈴S商制定的通訊方式是8位的ASCII碼。ASCII碼是用8位的二進(jìn)制來(lái)表示一位十六進(jìn)制的數(shù),如 H30表示十六進(jìn)制的0,H46表示十六進(jìn)制的F。我個(gè)人理解ASCI轉(zhuǎn)換其實(shí)就是把四位的形式轉(zhuǎn)成8位的形式,兩個(gè)同樣表示F,十六進(jìn)制里是1111; ASCII碼為01000110。


上面是初始化程序,M8161為8位/16位的切換開(kāi)關(guān),ON時(shí)為8位。ZRST是清除數(shù)據(jù)區(qū)

下面開(kāi)始定義緩沖區(qū)


D200開(kāi)始的十個(gè)寄存器的發(fā)送緩沖區(qū),D600開(kāi)始的十個(gè)寄存器的接收緩沖區(qū)。這個(gè)就像快遞的中轉(zhuǎn)站,要發(fā)的包裹得統(tǒng)一到一個(gè)地方,等通知發(fā)貨的時(shí)候,一起發(fā)掉。接收同理。
填寫數(shù)據(jù)形式,做包裹
其中用到的指令代碼截過(guò)來(lái)


我用X0正轉(zhuǎn),X2停止,X4  反轉(zhuǎn)。


M100M102M104可以不用,我連著觸摸屏做實(shí)驗(yàn)的,單獨(dú)用PLC時(shí)不用。


D206,D207里面寫入的數(shù)據(jù)根據(jù)指令說(shuō)明里的說(shuō)明來(lái)寫,00為停,02為正轉(zhuǎn),04為反轉(zhuǎn)。對(duì)就的按鈕寫對(duì)應(yīng)的數(shù)據(jù)。因?yàn)镈206在這三個(gè)指令里都是寫0,所以放到公共賦值里去,偷點(diǎn)懶。


CCD校驗(yàn)完D220放的ASCI碼的和,D221里放的是列偶校驗(yàn),這里只需要一個(gè)D220的值。
再把D220里的值進(jìn)行ASCI轉(zhuǎn)換。


M8122變1后,D200到D209的數(shù)據(jù)就開(kāi)始發(fā)送,發(fā)送完了后自動(dòng)復(fù)位。
一個(gè)簡(jiǎn)單的通訊程序也就寫完了。    


  
[ 此帖被wangk0在2012-09-04 16:53重新編輯 ]
本帖最近評(píng)分記錄:
  • 下載積分:+1(王天明) 好貼好貼!
  • 下載積分:+1(jhzong) 真誠(chéng)感謝!
  • 下載積分:+5(王志勇愛(ài)媳婦) 辛苦了!
  • 下載積分:+2(a7950288) 熱心助人!
  • 下載積分:+3(七十年代) 好貼!
  • 下載積分:+5(550374389) 好貼!
    liuchangqing
    級(jí)別: 略有小成
    精華主題: 0
    發(fā)帖數(shù)量: 183 個(gè)
    工控威望: 318 點(diǎn)
    下載積分: 974 分
    在線時(shí)間: 284(小時(shí))
    注冊(cè)時(shí)間: 2011-10-29
    最后登錄: 2024-11-05
    查看liuchangqing的 主題 / 回貼
    1樓  發(fā)表于: 2013-03-09 19:10
    非常感謝樓主的賜教