国产免费AV|泡泡玛特欧洲总部将设在伦敦|中文天堂网www新版资源在线|一本久道综合在线中文|国精产品一二三产区的使用方法|香蕉鱼在线观看|www.27eee

 找回密碼
 注冊
搜索

[變頻傳動] 西門子s7-200與富士變頻器通訊的程序,有詳細注釋

[復制鏈接]
樓主
廠商
廠商: 西門子
本程序采用PORT1端口與變頻器通信,把PORT0端口留給PLC與其編程軟件STEP 7 MicroWIN進行通信,以便實時監測PLC的數據變化;
實際上,早期的G11不支持Modbus通訊,通訊使用富士電機自己的協議--在其RS485接口手冊上有詳細的指令格式。從06年開始,G11支持了Modbus通訊,通過用戶在變頻器參數U49中選擇是采用富士電機協議FGI-Bus還是采用Modbus RTU協議。不過,筆者的這臺富士變頻器太老,不支持Modbus RTU協議,所以就采用自由口通信來控制這臺富士FRN3.7G11S-4CX型變頻器;
雖然MODBUS RTU模式通信相對而言比較簡單,不過快樂到自由口通信應用更為廣泛和靈活,該程序的自由口通信也比較有參考價值。
變頻器參數設置:與通訊有關的主要參數設置如下所訴(如果變頻器通信過程中存在問題"無法按設定頻率運行等",懷疑其他參數還有問題,那么請將參數初始化"參數H03,同時按STOP鍵和上鍵設為1,再按FUNC/DATA鍵確認"以后再來設定以下參數)。
變頻器地址設置為2,通訊格式設置為9600bps,8位數據,E〕偶校驗,1個停止位:
F01:頻率設定1;默認為0,采用默認值;
H30:鏈接功能(通信功能);默認為0,現設置為3--RS485設定有效,運行命令有效;
H31:RS485地址;默認為1,現設置為2;
H32:故障處理;默認為0--立即Er8跳閘,采用默認值;
H33:定時時間--通信故障后,再定時時間內繼續運行;默認為2.0秒,采用默認值;
H34:通信傳送速度(波特率);默認為1--9600bit/s,采用默認值;
H35:數據長度:默認值0--8位數據,采用默認值
H36:奇偶校驗;默認值0--無奇偶校驗,現設置為1--偶校驗;
H37:停止位;默認值0--2個停止位,現設置為1--1個停止位;
H49:RS485協議;默認為0--富士專用通信協議FGI-Bus,采用默認值;對于老版本變頻器,不用設置該參數(因為沒有該參數),默認就是富士專用通信協議FGI-Bus;該程序為控制1臺變頻器的程序,如果要控制多臺變頻器,那么發送/接收/頻率顯示功能還需要進行相關處理--接收條件,頻率顯示對應的地址等。
富士通訊.zip (9.53 KB, 售價: 15 E幣)

西門子s7-200與富士變頻器通訊的程序,有詳細注釋 1.jpg 西門子s7-200與富士變頻器通訊的程序,有詳細注釋 2.jpg

首次掃描初始化PORT1通訊口;
SMB30控制PORT0通訊口的通信方式,SMB130控制PORT1通信口的通信方式;
SMB130的值為16#49,就是二進制的1001001;
SM130.0~SM130.1:01為自由口協議;
SM130.2~SM130.4:010為9600波特;
SM130.5:0為每個字符8個數據位;
SM130.6~SM130.7:01為偶校驗;
PORT1自由口通信參數即為:9600,8,E,1,即9600波特,8個數據位,偶校驗,1個停止位。
設置發送的數據字節數為16#08,就是十進制的8個Bytes。

下面是中斷子程序(中斷號26是發送完成中斷)的內容:
從指定的PORT端口接收數據緩沖區TBL的數據,TBL的第1個數據(本例為VB601)指明了接收的字符數;
在接收的時候有個問題需要說明一下,因為接收的控制字設置中啟動了空閑線檢測,所以SMW190設置的時間沒用--也就是說,只要沒檢測到結束字符,不會因為超時而終止接收。而在實際的測試中,也印證了上面的說法:在上例中,只要接收時沒用接收到結束字符,而且接收到的字節也不夠,那么PLC不會因為沒有接收到信息而超時停止接收--此時,雖然RCV指令已經斷開,但因為接收沒有完成,它仍然在執行接收操作。此時如果執行發送指令,那么是不可以的,無法發送數據!如果要定時器超時功能有效,那么得再設置控制字的時候,把空閑線設置為無效,把定時器超時設置為有效,并設置定時器SMW190的值。更具體的描述請參閱相關手冊。
VB601表示接收到多少個字節的信息,VB602~617為接收到的數據;
根據富士專用通訊協議FGI-Bus可知,VB611~614的數據就是當前頻率值。

初始化接收信息控制字節SMB187:16#B0即二進制11010000;使能RCV;檢測信息起始字符;檢測空閑線信息條件;設置檢測起始字符來判斷接收開始,檢測空閑線超時來判斷接收結束;
初始化接收信息控制字節SMB187:16#9C即二進制10011100;用任意字符開始一條信息允許使用信息定時器,來監控信息接收是否超時。這對于自由口協議的主站是非常有用的,并且當在指定時間內,沒有來自從站的任何響應的情況,也需要采取超時處理。對于空閑線時間設置為0,當接收指令執行時,信息定時器啟動。如果沒有其他終止條件滿足,信息定時器超時會接收接收信息功能。設置:il=1,sc=0,bk=0,SMW90/SMW190=0,SMB88/SMB188被忽略,c/m=1,tmr=1,SMW92/SMW192=信息超時時間,單位為毫秒。信息定時器的典型值是在當前波特率下,接收到最長信息所需時間值的大約1.5倍。
用戶接收:用戶可以通過程序來結束接收信息功能,先將SMB87或SMB187中的使能位置為0,再次執行接收指令即可。這樣可以立即終止接收信息功能。
關于通信超時的問題,在SM187.2設為1的時候,并不是超過SMW192的時間值即終止接收,而是只有接收到首字符后未能在規定時間內完成接收才可以自動終止接收,如果收不到首字符,RCV將一直保持有效。解決辦法:如果要停止RCV,需要復位相應的SM187.7,但是需要執行一次RCV才能有效,因為只有新的RCV指令CPU才去讀SMB。……所以,無論怎么設置SMB187,一旦運行中通訊線斷開,RCV就可能一只在執行,因此在發送指令前必須先禁止接收(將SM187.7復0)然后執行RCV指令,RCV指令執行時將會檢測SM87.7的狀態,當發現SM87.7=0時,即停止端口1的接收。在使用XMT指令前,首先執行R SM87.7,1;RCV VB100,0兩條指令(VB100可以換成其他地址);
設定信息起始字符為16#01;
SMB190設置空閑線超時;
SMB194設置接收的最大字符為8個字節;
接收信息控制字節en sc ec il c/m tmr bk 0
en:0=禁止接收信息功能。1=允許接收信息功能。每次執行RCV指令時檢查允許/禁止接收信息位。
Sc:0=忽略SMB88或SMB188。1=使用SMB88或SMB188的值檢測起始信息。
Ec:0=忽略SMB89或SMB189。1=使用SMB89或SMB189的值檢測結束信息。
il:0=忽略SMW90或SMW190。1=使用SMW90或SMW190的值檢測空閑狀態。
c/m:0=定時器是內字符間定時器。1=定時器是信息定時器。
Tmr:0=忽略SMW92或SMW192。1=當SMW92或SMW192中的定時時間超出時終止接收。
Bk:0=忽略中斷條件。1=用中斷條件作為信息檢測的開始。

沙發
jale 發表于 2018-12-25 23:22:28 來自手機 | 只看該作者
學習一下     
板凳
jale 發表于 2018-12-26 09:23:38 | 只看該作者
進來學習一下。
地板
lizhendong 發表于 2019-1-17 16:01:34 | 只看該作者
支持支持一下,能用嗎
5#
whd8023 發表于 2019-3-24 19:11:37 | 只看該作者
學習一下 支持支持
6#
承諾 發表于 2019-12-27 11:54:29 | 只看該作者
過來看看,行不行?
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規則

手機版|小黑屋|ELEOK |網站地圖

GMT+8, 2026-5-26 04:36

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回復 返回頂部 返回列表