第一篇:總線基本實驗報告
實驗三:
總線基本實驗報告
組員:
組號:21組 時間:周二5、6節 【實驗目的】
理解總線的概念及其特性.掌握總線傳輸和控制特性
【實驗設備】
– TDN-CM+或TDN-CM++數學實驗系統一臺.–
【實驗原理】
總線傳輸實驗框圖所示,它將幾種不同的設備掛至總線上,有存儲器、輸入設備、輸出設備、寄存器。這些設備都需要有三態輸出控制,按照傳輸要求恰當有序地控制它們,就可實現總線信息傳輸。
總線基本實驗要求如下:
根據掛在總線上的幾個基本部件,設計一個簡單的流程:
? 寄存器、存儲器和I/O部件掛接到總線 ? 各部件由三態門信號控制
? 數據主要流程:輸入?寄存器?存儲器?輸出LED指示
【實驗步驟】
(一)完成書上要求的操作:將一個數存儲到R0寄存器中,然后LED顯示(1)連接實驗線路(下頁圖1)
(2)關閉所有三態門(SW-B=1,CS=1,R0-B=1,LED-B=1),關聯的信號置為LDAR=0,LDR0=0,W/R=1。
(3)SW-B=0,INPUT置數,撥動LDR0控制信號做0 ? 1? 0動作,產生一個上升沿將數據打入到R0中;
SW-B=0,INPUT置數,撥動LDAR控制信號做0 ? 1? 0動作,產生一個上升沿將數據打入到AR中; SW-B=1,R0-B=0,W/R(RAM)=0,CS=0,將R0中的數寫入到存儲器中; 關閉R0寄存器輸出,使存儲器處于讀狀態CS=1,R0-B=1;W/R(RAM)=1,CS=0,LED-B=0,撥動LED的W/R控制信號做1→0→1動作產生一個上升沿將數據打入到LED中。
附:實驗電路路線連接圖1
(二)存放三個數46、63、69到R0,R1,R2,分別存放在#11,#12,#13中在LED顯示,另外由于需要借線,連線R1-B---S2,R2-B---S1,LDR1---M,LDR2---Cn,連接線路如下圖三所示。(1)關閉所有三態門(SW-B=1,CS=1,R0-B=1,R1-B=1,R2-B=1,LED-B=1),關聯的信號置為LDAR=0,LDR0=0,LDR1=0,LDR2=0,W/R=1。
1將數據46放R0,再將R0的數寫入到#11中,然后 LED顯示#11中數。○SW-B=0,INPUT置數01000110,撥動LDR0控制信號做0?1?0動作,產生一個上升沿將數據打入到R0中;
SW-B=0,INPUT置數00010001,撥動LDAR 做0 ?1?0動作,產生一個上升沿將數據打入到AR中;
SW-B=1,R0-B=0,W/R(RAM)=0,CS=0,將R0中的數寫到存儲器中; CS=1,R0-B=1,W/R(RAM)=1,CS=0,LED-B=0,撥動LED的W/R控制信號做1→0→1動作,產生一個上升沿將數據打入到LED中。
2將數據63放入R1,再將R1的數寫入到#12中,然后LED顯示#12中數。○SW-B=0,INPUT置數01010011,撥動LDR1控制信號做0?1?0動作,產生一個上升沿將數據打入到R1中;
SW-B=0,INPUT置數00010010,撥動LDAR做0?1?0動作,產生一個上升沿將數據打入到AR中;
SW-B=1,R1-B=0,W/R(RAM)=0,CS=0,將R1中的數寫到存儲器中; CS=1,R1-B=1,W/R(RAM)=1,CS=0,LED-B=0,撥動LED的W/R控制信號做1→0→1動作,產生一個上升沿將數據打入到LED中。
3將數據69放入R2,再將R2的數寫入到#13中,然后LED顯示#13中數。○SW-B=0,INPUT置數01101001,撥動LDR2控制信號做0?1?0動作,產生一個上升沿將數據打入到R2中;
SW-B=0,INPUT置數00010011,撥動LDAR 0?1?0動作,產生一個上升沿將數據打入到AR中; SW-B=1,R2-B=0,W/R(RAM)=0,CS=0,將R2中的數寫到存儲器中; CS=1,R2-B=1,W/R(RAM)=1,CS=0,LED-B=0,撥動LED的W/R控制信號做1→0→1動作,產生一個上升沿將數據打入到LED中。
【結果分析】
試驗中LED顯示管所顯示的數與放在各個地址中的數符合,證明連線、操作無誤。
【問題分析】
在連線時,由于實驗時所用到的實驗電路,某些端口是單口,如:LDR1、LDR2,而所用線最小也是兩口線,所以借用端口到S1、S2、M、CN時一定要注意不要連接交叉,每條線對應各自的端口,否則就會出現混亂。
第二篇:現場總線技術實驗報告
實 驗 報 告
課程名稱
《現場總線技術》
題目名稱
現場實驗報告
學生學院
信息工程學院
專業班級
學生學號
學生姓名
指導教師
2015 年 1 月 1 日
實驗一
0 STEP7 V5.0 編程基礎及 S7--C 300PLC 組態
一、實驗目的
通過老師講解 STEP7 軟件和硬件組態的基礎知識,使同學們掌握使用 STEP7 的步驟和硬件組態等內容,為后續實驗打下基礎。
二、實驗 內容 1、組合硬件和軟件 STEP7 V5.0 是專用于 SIMATIC S7-300/400 PLC 站的組態創建及設計 PLC 控制程序的標準軟件。按照以下步驟:
(1)運行 STEP7 V5.0 的軟件,在該軟件下建立自已的文件。
(2)對SIMATIC S7-300PLC站組態、保存和編譯,下載到 S7-300PLC。
(3)使用 STEP7 V5.0 軟件中的梯形邏輯、功能塊圖或語句表進行編程,還可應用 STEP7 V5.0 對程序進行調試和實時監視。
2、使用 STEP7 V5.0 的步驟
設計自動化任務解決方案 生成一個項目 下載到 CPU 進行調試診斷 硬件組態 程序生成 程序生成 硬件組態
圖 1-1 STEP7 的基本步驟
3、啟動 SIMATIC 管理器并創建一個項目(1)新建項目 首先在電腦中必須建立自己的文件:File → New →寫上 Name(2)通信接口設置 為保證能正常地進行數據通信,需對通信接口進行設置,方法有 2 種:
1)所有程序
SIMATIC
STEP 7
設置 PG/PC 接口
PC Adapter(Auto)
屬性
本地連接
USB/COM(根據適配器連接到計算機的方式選擇); 2)SIMATIC 管理器界面
選項
PC Adapter(Auto)
屬性
本地連接
USB/COM(根據適配器連接到計算機的方式選擇)。
(3)硬件組態 在自己的文件下,對 S7-300PLC 進行組態,一般設備都需有其組態文件,西門子常用設備的組態文件存在 STEP7 V5.0 中,其步驟如下;? 插入 →站點 →
SIMATIC 300 站點 ; ? 選定 SIMATIC 300(1)的Hardwork(硬件)右邊 Profi
→
標準 → SIMATIC 300 將軌道、電源、CPU、I/O 模塊組態到硬件中:
軌道:RACK-300 →
Rail;,插入電源:選中(0)UR 中 1 1, 插入電源模塊 PS-300 →
PS307 5A;
插入 CPU:選中(0)UR 中 2 2,插入 CPU 模塊 CPU-300→CPU315-2DP→配置 CPU 的型號(CPU 模塊的最下方); ? 插入輸入/輸出模塊 DI/DO:
1)選中(0)UR 中 4,插入輸入/輸出模塊 SM-300
→ DI/DO→ 配置
輸入/輸出模塊的型號(CPU 模塊的最上方); 2)S7-300 PLC 中有些 CPU 自帶輸入/輸出模塊,此時不需進行 DI/DO組態。
(4)S7-300PLC CPU 的開關與指示燈 S7-300PLC CPU 的開關與顯示燈如圖 1-1 所示 模式選擇器:
MRES:
模塊復位功能。
STOP:
停止模式,程序不執行。
RUN:
程序執行,編程器只讀操作。
RUN-P:
程序執行,編程器讀寫操作。
指示燈:
S F: 組錯誤:CPU 內部錯誤或帶診斷功能錯誤。
BF: 組錯誤: 總線出錯指示燈(只適用于帶有 DP
接口的 CPU)。出錯時亮。
FRCE:
FORCE:指示至少有一個輸入或輸出被強
制。
DC5V: 內部 5VDC 電壓指示。
RUN:
當 CPU 啟動時閃爍,在運行模式下常亮。
STOP:
在停止模式下常亮,有存儲器復位請求時慢速閃爍。正在執行存儲器復位時快速閃爍,由于存儲器卡插入需要存儲器復位時慢速閃爍。
(5)編程 圖 1-5
CPU 開關與指示燈 圖 1-1
CPU 開關與指示燈
S7-300PLC 采用模塊化的編程結構,包含有通用的 OB 組織塊,通用的 FC、FB 功能與功能塊,西門子提供的 SFC,SFB 系統功能塊,DB 數據塊,各個模塊之間可以相互調用。OB1 是其中的循環執行組織塊,程序首先并一直在 OB1 中循環運行,在 OB1 中可以調用其它的程序塊執行。
在 S7
Program 下的 Block 中,選定并打開 OB1,用梯形邏輯、功能塊圖或語句表編程,再保存編譯和下載,即可執行程序。
(6)程序的清除(存儲器復位):
圖 1-2 編程界面 A、模式選擇器放在 STOP 位置 B、模式選擇器保持在 MERS 位置,直到 STOP 指示燈閃爍兩次(慢速)
C、松開模式選擇器(自動回到 STOP 位置)
D、模式選擇器保持在 MERS 位置(STOP 指示燈快速閃爍)
E、松開模式選擇器(自動回到 STOP 位置)
(7)運行并監控 將 CPU 打到 STOP 模式,下載整個 SIMATIC 300 站點。再將 CPU打到 RUN 模式,打開監視,程序運行狀態可在 OB1 上監視到。
三、思考題 一.為什么要進行硬件組態?
PLC 是一種模塊化的結構,電源、cpu、i/o 等模塊都是單獨成塊的。而 PLC 組態是對硬件進行配置,簡單的說就是告訴系統你配置了哪些東西,這樣系統才能去連接你的東西。
二.硬件組態和程序生成有先后之分嗎?哪種比較方便些? 沒有先后之分。先進行硬件組態,然后是下載用戶程序方便些。這樣STEP7 在硬件組態編輯器中會顯示可能的地址。而且有了系統數據塊后,如果你的程序中硬件組態與你的實際硬件一致,就可以在 SIMATIC管理器中,直接選中 Blocks,然后執行下載,在提示你是否也下載系統數據塊時,只要點擊 Yes,就把硬件組態信息和用戶程序一起下載到 CPU 中。
四、實驗心得 在這次的實驗中,從中了解 STEP7 V5.0 的軟件,并學會在該軟件下建立自已的文件,對 PLC 站組態、保存和編譯,并且下載到 PLC,用軟件中的梯形邏輯進行編程,還用軟件進行實時監視。開始沒找到正確的硬件進行組態,然后在師姐的指導下,找到完全和硬件一致的進行組態,之后的還是比較容易。
實驗 二
S7-300PLC 之間的 MPI 通訊
一、實驗目的 熟悉現場總線網絡 MPI 網絡通訊的基本原理和 STEP7 硬件組態,掌握 S7-300PLC 編程和兩個 PLC 之間 MPI 網絡通訊的具體方法。
二、實驗內容 (1)要求:對 PLC 及 MPI 網絡組態,采用 STEP 7 V5.x 編程,以 MPI 網絡通訊的方式,在第二臺 S7-300 的程序中編譯一組密碼,在第一臺 S7-300 上輸入八位的開關信號。如果開關信號與密碼不同,則第二臺 PLC 的某個輸出點上的輸出信號閃爍;如果開關信號與密碼相同,則這個輸出點上的輸出信號長亮。根據需要添加實驗內容和使用 PLC 內部的系統功能。
(2)實驗主要儀器設備和器材:S7-300 可編程控制器,開關裝置,S7-300 適配器,裝有 STEP7 軟件的工控機(或電腦)。
(3)實驗方法、步驟及結構測試:
圖 2-1 MPI 通訊示意圖 具體實驗步驟如下:
1、硬件連接 應用帶連接頭的屏蔽雙絞線,通過 PLC 中的 MPI 接口進行連接,SIEMENS300(2)CPU SIEMENS300(1)CPU 全局數據
將實際線路連好,開關輸入量也接好;同時全部清除兩臺 S7-300PLC原有的程序,并打到 STOP 擋,為硬件組態和編程作好準備。
2、組態硬件 利用 SIMATIC 管理器,在項目中為要連網的設備生成硬件站之后利用硬件組態工具逐個打開這些站。
1)打開 SIMATIC Manager,在“文件”選擇“新建”。在空白處點擊右鍵選中“插入新對象”,再選 SIMATIC 300。
2)進行組態 第一臺設備:根據實際硬件配置組態。
第二臺設備:根據實際硬件配置組態。
3)選“站點”,進行“保存和編譯”。
3、設定 MPI 地址 組態硬件時,必須定義CPU連接在MPI網絡上,并分配各自MPI地址。
1)在 SIMATIC 300(1)選中 Hardware(硬件)。
2)雙擊,選 CPU315-2DP。
3)雙擊,選屬性。
4)選定 MPI(1),并設定其地址。
在硬盤上保存 CPU 的配置參數,然后分別下裝到每一 CPU 中(點到點)。
4、檢查網絡
1)網絡組態 分別在兩臺 PLC 硬件組態中,選菜單欄中的“選項”,然后選“組
態網絡”,進行組網。選中 MPI(I)雙擊,將兩臺 PLC 組網。
用 Profibus 電纜連接 MPI 節點,可以用多條 MPI 線連接。在這里用一條 MPI 線連接即可,這樣就可以與所有 CPU 建立在線連接。打開網絡組態查看,還可用 SIMATIC 管理中 PLC 下的“Accessible Nodes”功能來測試連接狀態。
5、設計程序 編譯程序 進入程序設計時,可按以下步驟:選 SIMATIC 300(1)→CPU 315-2DP→S7 Program(1)→Blocks→OB1,雙擊后可開始編寫程序。
第一臺 S7_300 的程序框圖:
讀取八位開關信號 IB0,傳遞到 MB0:
MOVE EN
ENO IN
OUT 第二臺 S7-300 的程序框圖:
輸入密碼,輸入固定數據 1280,傳送到 MW2:
MOVE EN
ENO IN
OUT
開關信號數據 MW6 與密碼數據 MW2 對比:
IB0 MB0 1280 MW2
CMP==1 IN1
IN2
CMP<>1 IN1
IN2
輸出為 Q0.0。輸出信號燈閃爍:
第二臺 CPU 的時鐘存儲器,地址 M100 此時閃光頻率為 1Hz,周期=1s,燈通=0.5s,燈閉=0.5s 程序框圖
M100
Q124.5 6、生成全局數據表 應用“定義全局數據”工具可以生成一個全局數據表。將數據表編譯兩次然后下裝到 CPU 中。
根據程序可知,數據從第一個 CPU 中的 MB0 發送到第二個 CPU中的 MW6,編譯兩次后,下載。
生成全局數據表步驟如下:
1)選擇 MPI 網 回到前面的項目界面雙擊 MPI 網→選項→定義全局數據,產生或打開全局數據表。
2)分配 CPU MW2 MW6 MW2 MW6
點擊 GDID 后的空格右鍵彈出 CPU→點擊 CPU→雙擊 SIMATIC
300(1)→雙擊 CPU 3)填入發送和接收數據(注明發送方)
填入 MB0→選“選作發送器”→在后一空格用右鍵彈出 CPU→點擊 CPU→雙擊 SIMATIC
300(2)→雙擊選中另一個 CPU→點擊下一空格填入 MW6→編譯→關閉→點擊“查看”→選“掃描速率”及“全局數據狀態”→編譯→關閉→退出。
4)下載程序
定義完全局數據后下載程序。在下載程序前應先清除原有的程序。SIMATIC 300(1)→下載。
5)運行及結果 A、將兩臺 S7-300PLC 的開關打到 RUN 擋,S7-300CPU 上的其它燈是不亮的,這時全局數據開始自動循環交換。
B、在第一臺 PLC 上輸入八位開關量 IB0,數據傳遞到 MB0,通過 MPI 網絡,運行全局數據表,數據從第一臺 PLC 的 MB0 傳送到第二臺 PLC 的 MW6。MW6 上的數據與第二臺 PLC 的 MW2 中C、密碼數據相比較后,在第二臺 PLC 的輸出點 Qxxx.x 輸出結果。若信號與密碼相同,第二臺 PLC 輸出燈 Qxxx.x 亮。
三、思考題 1、在下載程序前如何清除原來的程序? 現在 PLC 把新的程序下載進去,會自動覆蓋原本的程序的。如果要直接清除的話,則可通過復位清除寄存器內容,先把模式選擇器放在STOP 位置,然后模式選擇器保持在 MERS 位置,直到 STOP 指示燈閃爍兩次,再松開模式選擇器,模式選擇器保持在 MERS 位置,此時 STOP 指示燈快速閃爍,然后松開模式選擇器就可以了。
2、下載程序時應注意什么問題? A 硬件組態沒有錯誤,組態都錯了,下進去也沒用。
B最好先下新硬件組態信息,然后保證按鍵打到STOP檔位再下程序。
C 在進行了新的組態編譯時,必須點擊 Yes,即把新的硬件組態信息也下載到 CPU 中,否則新的硬件組態和舊的用戶程序將產生沖突。
3、密碼數據在開關量上是如何表示的?試著把密碼設為小于 256 的數,再運行程序看結果如何?為什么? 如果字節數據轉換成字,則 MB0、MB1 分別變成 MW6 的高 8 位和低 8位,MB1 沒有則補 0,MB0 傳送到 MW6 中變成高 8 位。如果小于 256,則輸出信號長亮,因為密碼相同了啊。
四、實驗心得 在這次實驗中,學會了 PLC 兩個 PLC 之間 MPI 網絡通訊的方法,同時學會了用梯形圖編程,如果是簡單的程序基本能自己編好。實驗中開始沒懂程序原理,難點就在那個密碼表示,后來請教師姐才懂的。
實驗三 三
S7-300PLC 之間的 DP 通訊
一、實驗目的
熟悉現場總線 DP 網絡通訊的基本原理,掌握 S7-300 編程和兩個 PLC 之間 DP 網絡通訊的具體方法。
二、實驗內容
1)要求:對 PLC 及 DP 網絡組態,采用 STEP 7 V5.0 編程,以 DP 網絡通訊的方式,在第二臺 S7-300(從站)的程序中編譯一組(三個)兩字節的密碼,分別為 256,512,1280,在第一臺 S7-300(主站)上輸入 16 位的開關信號。如果開關信號與其中一組密碼相同,則第一臺 PLC 的一個指定的相應輸出點上的輸出信號亮,即輸入信號是256,則 Q4.0 亮,輸入信號是 512,則 Q4.1 亮,輸入信號是 1280,則 Q4.2 亮;否則沒有燈亮。
2)實驗主要儀器設備和材料:S7-300 可編程控制器,開關裝置,S7-300適配器,裝有 STEP7 軟件的工控機。
3)實驗方法、步驟及結構測試:
1、硬件連接 將兩臺的 DP 口通過 PROFIBUS 電纜連接,開關輸入量接在主站的DI 模塊上;同時將兩臺 PLC 全部清除原有程序,打到 STOP 擋,為硬件組態和編程作好準備。
SIEMENS300(1)主站
交換區 PROFIBUS-DP SIEMENS300(1)從站
交換區
圖 3-1 DP 通訊示意圖 4)組態硬件(1)新建項目 在 STEP7 中創建一個新項目,然后選擇“插入”?站點?Simatic 300 站點,插入兩個 S7 300 站,這里命名為 Simatic 300(master)和 Simatic 300(slave)。再選擇“插入”?“站點”?PROFIBUS。如圖 3-2 所示。當然也可完成一個站的配置后,再建另一個。
(2)組態硬件 從站和主站硬件根據實際選定,原則上要先組態從站。雙擊 Simatic 300(slave)“Hardware(硬件)”,進入硬件組態窗口,在功能按鈕欄中點擊“Catalog”圖標打開硬件目錄,按硬件安裝次序和訂貨號依次插入機架、電源、CPU 和輸入/輸出模塊等進行硬件組態,主從站的硬件組態原理一樣。
5)參數設定 硬件組態后,雙擊 DP(X2)插槽,打開 DP 屬性窗口點擊屬性按鈕進入 PROFIBUS 接口組態窗口,進行參數設定。
(1)從站設定:在“屬性 DP ”對話框中選擇“工作模式” 標簽,將 DP 屬性設為從站(Slave)。然后點擊“常規”標簽,點擊“屬
性”按鈕,之后點擊 Network Settings 標簽,對其它屬性進行配置,如:站地址、波特率等。設定完成之后,點擊”保存”即可,不要進行編譯。
(2)主站設定:在“屬性 DP ”對話框中選擇 “工作模式”標簽,將 DP 屬性設為主站(Master)。然后點擊“常規”標簽,點擊“屬性”按鈕,對其它屬性進行配置,如:站地址、波特率等。注意:這里的主站地址跟從站的地址不能重復,且同一個站的 MPI 地址和 DP地址要保持一致。
(3)連接從站:在硬件組態(HW Config)窗口中,打開窗口右側硬件目錄,選擇“ PROFIBUS DP?Configured Stations”文件夾,將 CPU31x 拖拽到主站系統 DP 接口的 PROFIBUS 總線上,這時會彈出 DP 從站連接屬性對話框,選擇所要連接的從站后,點擊“連接”按鈕,再點擊“確認”。注 注:如果有多個從站存在時,要一一連接。
(4)設定交換區地址 雙擊從站,選擇“組態”標簽,打開 I/O 通信接口區屬性設置窗口,進行設置。或者進入“從站屬性“窗口,如果沒有出現表格,則要點擊下面的“新建”,分兩次輸入表格。
地址類型:
選擇“Input”對應輸入區,“Output”對應輸出區。
地址:
設置通信數據區的起地址。
長度:
設置通信區域的大小,最多 32 字節。本例設為 8 字節。
單位:
選擇是按字節(byte)還是按字(word)來通信。
一致性:
選擇“Unit”是按在“Unit”中定義的數據格式發送,即
按字節或字發送。
從站與主站設置完成后,點擊“編譯存盤”按鈕,編譯無誤后即完成從站和主站的組態設置。
6)檢查網絡 點擊“組態網絡”圖標
。打開網絡組態查看,是否成功。
7)設計程序
輸入三個 16 位的密碼:
256,512,1280 結束 從站
主站 給定一個 16 位的開關量信號 開關量是 256 開關量是 512 開關量是1280 Q4.0 亮 Q4.1 亮 Q4.2 亮 結束 圖 3-2 程序框圖
8)程序清單
輸入零字節的任一位閉合,使能接通。IW0的值傳送到 QW10。
圖 3-4 從站中密碼設定
圖 3-3 主站程序
9)運行及實驗結果 輸入開關量 1,則 Q4.0 亮;輸入開關量 2,則 Q4.1 亮;輸入開關量 5,則 Q4.2 亮,輸入其它量時,信號與密碼不同,無燈亮。
三、思考題
1.指出 PROFIBUS 中,DP 與 MPI 通信的特點與區別。
MPI:多點通信的接口,是一種適用于少數站點間通信的網絡,多用于連接上位機和少量PLC之間近距離通信。MPI的通信速率為19.2K~12Mbit/s。在 MPI 網絡上最多可以有 32 個站。MPI 允許主-主通信和主-從通信。
DP:允許構成單主站或多主站系統。在同一總線上最多可連接 126 個站點。通訊波特率最大支持 12MB,距離可達 1200M。包括以下三種不同類型設備:一級 DP 主站、二級 DP 主站、DP 從站。
2.簡述數據交換過程以及數據交換區的設置方法。
由主機數據交換區的數據通過總線傳送到從機的數據交換區。雙擊從站,選擇組態標簽,打開 I/O 通信接口區屬性設置窗口,進行設置。或者進入從站屬性窗口,如果沒有出現表格,則要點擊下面的新建,分兩次輸入表格。
3.在不改變交換區地址的情況下,QW10-QW16,IW20-IW24 可以用 M寄存器區取代嗎?說明原因。
可以,取代的話還會使程序簡單,不過功能也會變得簡單罷了。
四、實驗心得
在這次實驗中,熟悉現場總線 DP 網絡通訊的基本原理,弄懂了兩個PLC 之間 DP 網絡通訊的方法,同時又用梯形圖編程,加強了編程能力。實驗中 DP 通訊還是比較復雜,主要是有很多細節,常常要請教師姐,看來要多用和多了解才行。
第三篇:北郵現場總線實驗報告
現場總線實驗報告
實驗名稱:
CAN總線技術與iCAN模塊實驗
學院:
自動化學院
專業:
自動化專業
班級:
2010211411
姓名:
韓思宇
學號:
10212006
指導老師:
楊軍
一、實驗名稱:
實驗一:CAN總線技術與iCAN模塊實驗
二、實驗設備:
計算機,CAN總線系列實驗箱,測控設備箱,萬用表。
三、實驗內容:
1、熟悉iCAN各模塊的功能及原理,了解接線端子。
2、學習USBCAN-2A接口卡的使用及安裝,安裝USBCAN-2A接口卡的驅動程序。
3、根據實驗指導書中的手動設置iCAN模塊MACID的方法手動設置各模塊的MACID。
4、使用提供的iCANTest測試軟件工具來測試各模塊的功能及用法,利用測試工具與模塊之間通信。
5、學習了解iCAN主站函數庫中的主要操作函數及其應用。
6、學習利用VC或者VB編程來對iCAN系列各模塊進行操作。
四:實驗過程:
1、驅動程序安裝:
USBCAN-2A接口卡的驅動程序需要自己手動進行安裝,驅動程序已經存放于實驗準備內容中。找到驅動程序,直接點擊進行安裝即可。安裝完成后,在“管理->設備管理器->通用串行總線控制器”中查看驅動是否安裝成功。
注意:安裝驅動程序過程中PC機不能連接USB電纜。
2、iCANTEST安裝與運行:
連接設備后,打開iCANTEST軟件,點擊“系統配置”,設置設備類型為USBCAN2,點擊“啟動”->“上線”,試驗各模塊的功能。點擊“全部下線”,將斷開主機與所有模塊的連接。
3、各種iCAN模塊的測試
4、指示燈,按鈕,溫濕度傳感器的連接
5、測試運行記錄與截屏圖:
iCAN模塊測試運行記錄與截圖。
圖(1)
iCANTEST界面
iCAN4055模塊界面如圖(2)。DI輸入由測控設備箱中的開關控制,DO輸出控制設備箱上的燈泡亮滅。
圖(2)
iCAN4055模塊界面
iCAN4210模塊如圖(3)。iCAN4210模塊為2路模擬量輸出模塊。將該模塊的輸出通道0與iCAN4017模塊的輸入通道3相連,可觀察到改變iCAN4210的通道0設定值時,iCAN4017的通道3顯示值會隨之變化。(通道0為0x8000時,通道3顯示為5.000V。)
圖(3)
iCAN4210模塊界面
iCAN4017模塊如圖(4)。iCAN4017模塊為8路模擬量輸入模塊。將該模塊的通道0與通道1與測控設備箱的溫濕度傳感器相連,可由通道0和1的電壓值推導出傳感器測出的環境溫度和濕度。由于實驗時使用的溫濕度傳感器溫度測量部分故障,所以通道0顯示0.000V,濕度測量部分正常,通道1顯示為6.182V。
圖(4)
iCAN4017模塊界面
6、自編程序主要功能
(1)添加一個輸入編輯框和一個按鈕控件,通過輸入0x00-0xFF之間的十六
進制數來控制iCAN4055的DO通道的輸入;再設置一個編輯框edit控件來讀取iCAN4055的8位數字量輸入通道的狀態。(2)設置兩個輸入編輯框控件,來分別設置iCAN4210兩個通道的輸出。(3)設置4個編輯框edit控件來分別讀取iCAN4017前四個通道ch0、ch1、ch2、ch3的模擬量輸入值。
7、自編程序運行結果與截圖(課上未做,課下做了界面和程序)
圖(5)
iCAN4055模塊界面
圖(6)
iCAN4017模塊界面
8、主要程序部分
(1)有關iCAN4055功能模塊的簡單功能的實現的整體代碼如下:
首先在生成的類頭文件Sample4055dlg.h中的類CSample4055中添加申明變量: public:
unsigned char buf[1];//發送數據的數據緩存區 unsigned char recbuf[1];//接受數據的數據緩存區 unsigned long len;int outvalue;int count;CString str;在Sample4055.cpp文件中編寫控制代碼: 首先添加對變量的定義: ROUTECFG cfg;
HANDLE hRoute=0;//新的ICAN網絡
HANDLE hSlave4055=0;//數字量輸入輸出模塊4055,MACID=1 CSample4055::CSample4055(CWnd* pParent /*=NULL*/){
}
(2)添加每個控件消息響應函數的代碼: void CSample4055::OnStartsysButton1(){ : CDialog(CSample4055::IDD, pParent)buf[0]=0;recbuf[0]=0;count=0;len=0;str=“";
// TODO: Add your control notification handler code here cfg.iCardType=4;//使用usbcan2接線口 cfg.iCardInd=0;//卡序號
cfg.iCANInd=0;//CAN通道選擇(0表示0通道;1表示1通道)cfg.wCANBaud=0x001c;//波特率的設定0x001c(500kbps)cfg.iMasterCycle=500;//主站循環周期 cfg.wMasterID=0;//主站ID
Mgr_AddRoute(cfg,&hRoute);//添加iCAN網絡
if(Mgr_StartSys()!=ICANOK)//調用Mgr_StartSys()函數對CAN網絡是否啟動進行判斷,返回為ICANOK
} void CSample4055::OnLink4055Button2(){ if(Mgr_IsStarted()!=1){ { } else { } MessageBox(”CAN網絡已啟動“);MessageBox(”系統啟動失敗“);
MessageBox(”系統未啟動或啟動失敗,請先啟動CAN網絡“);
} else { // TODO: Add your control notification handler code here Route_AddSlave(hRoute,1,&hSlave4055);//添加從站4055,MACID=1
if(Slave_Connect(hSlave4055)!=ICANOK)//判斷從站4055是否連接成功 { } MessageBox(”4055連接失敗“);
else
{ } MessageBox(”4055連接成功“);
SetTimer(1,1000,NULL);//設定開啟定時循環,1代表消息事件id,1000表示1000ms即1s } void CSample4055::OnTimer(UINT nIDEvent)//Timer事件函數 {
// TODO: Add your message handler code here and/or call default if(nIDEvent==1){ }
len=1;Slave_GetDIData(hSlave4055,recbuf,&len);//讀取4055數字量輸入端口數據 str.Format(”0x%02x:%d“,recbuf[0],count);
m_getDI.SetWindowText(str);count=count+1;
CDialog::OnTimer(nIDEvent);
} } void CSample4055::OnButtonSetvalue()//設定4055數字量輸出端口值 { // TODO: Add your control notification handler code here if((Mgr_IsStarted()==1)&&(Slave_IsConnected(hSlave4055)==1))
{
UpdateData(true);
outvalue=strtol(m_invalue,NULL,16);//按十六進制進行讀取 if(outvalue >= 0 && outvalue <= 255){
buf[0]=(unsigned short)strtol(m_invalue,NULL,16);
Slave_SendData(hSlave4055,0x20,buf,1);//發送數據 } else { } } else { MessageBox(”請輸入00~FF之間的十六進制數“);
MessageBox(”系統未啟動或從站未連接,請查看后再進行操作“);}
(3)2路模擬量輸出模塊iCAN4210的編程使用 實驗代碼如下:
首先添加所用變量的申明: ROUTECFG cfg;
HANDLE hRoute=0;//新的ICAN網絡 HANDLE hSlave4210=0;//MACID=2
控制代碼:
void CSample4210::OnBUTTONStartCANSys(){ // TODO: Add your control notification handler code here } 8
cfg.iCardType=4;//使用usbcan2接線口 cfg.iCardInd=0;//卡序號
cfg.iCANInd=0;//CAN通道選擇(0表示0通道;1表示1通道)cfg.wCANBaud=0x001c;//波特率的設定0x001c(500kbps)cfg.iMasterCycle=500;//主站循環周期 cfg.wMasterID=0;//主站ID
Mgr_AddRoute(cfg,&hRoute);//添加iCAN網絡
if(Mgr_StartSys()!=ICANOK)//調用Mgr_StartSys()函數對CAN網絡是否啟動進行判斷,返回為ICANOK
} void CSample4210::OnButtonLink4210(){
// TODO: Add your control notification handler code here if(Mgr_IsStarted()!=1){ { } else { } MessageBox(”CAN網絡已啟動“);MessageBox(”系統啟動失敗“);
MessageBox(”系統未啟動或啟動失敗,請先啟動CAN網絡“);
} else { // TODO: Add your control notification handler code here Route_AddSlave(hRoute,2,&hSlave4210);
if(Slave_Connect(hSlave4210)!=ICANOK){ } MessageBox(”4210連接失敗“);
else
} void CSample4210::OnButtonCanok(){ if((Mgr_IsStarted()==1)&&(Slave_IsConnected(hSlave4210)==1)){ } } MessageBox(”4210連接成功“);
{ unsigned char buf[32]={0};
UpdateData(true);if(m_setch0>=0.0&&m_setch0<=10.0){
buf[1]=(unsigned short)(m_setch0/10)*65535;
buf[0]=(unsigned short)((m_setch0/10)*65535)>>8;
} else { } if(m_setch1>=0.0&&m_setch1<=10.0)MessageBox(”提示:請輸入0~10V電壓“);
{
buf[3]=(unsigned short)(m_setch1/10)*65535;
buf[2]=(unsigned short)((m_setch1/10)*65535)>>8;
}
else { } MessageBox(”提示:請輸入0~10V電壓“);
Slave_SendData(hSlave4210,0x60,buf,4);
} else {
MessageBox(”系統未啟動或從站未連接,請查看后再進行操作“);}(4)8路模擬量輸入模塊iCAN4017 首先,在生成的.h頭文件中添加使用到的變量的申明。public:
unsigned char recbuf[16];unsigned long len;int count;} 在.cpp文件中首先添加iCAN網絡定義和申明以及變量的初始化操作。
ROUTECFG cfg;HANDLE hRoute=0;//新的ICAN網絡
HANDLE hSlave4017=0;//AI模塊4017,MACID=3
CSample4017::CSample4017(CWnd* pParent /*=NULL*/){
: CDialog(CSample4017::IDD, pParent)//{{AFX_DATA_INIT(CSample4017)m_valuech0 = 0.0;m_valuech1 = 0.0;m_valuech2 = 0.0;
} m_valuech3 = 0.0;m_counter = 0;//}}AFX_DATA_INIT recbuf[0]=0;recbuf[1]=0;recbuf[2]=0;recbuf[3]=0;recbuf[4]=0;recbuf[5]=0;recbuf[6]=0;recbuf[7]=0;len=0;count=0;void CSample4017::OnBUTTONStartCANSys(){
// TODO: Add your control notification handler code here cfg.iCardType=4;//使用usbcan2接線口 cfg.iCardInd=0;//卡序號
cfg.iCANInd=0;//CAN通道選擇(0表示0通道;1表示1通道)cfg.wCANBaud=0x001c;//波特率的設定0x001c(500kbps)cfg.iMasterCycle=500;//主站循環周期 cfg.wMasterID=0;//主站ID
Mgr_AddRoute(cfg,&hRoute);//添加iCAN網絡
if(Mgr_StartSys()!=ICANOK)//調用Mgr_StartSys()函數對CAN網絡是否啟動進行判斷,返回為ICANOK
{
} } else { } MessageBox(”系統啟動失敗“);MessageBox(”CAN網絡已啟動“);void CSample4017::OnButtonLink4017(){
// TODO: Add your control notification handler code here if(Mgr_IsStarted()!=1){
MessageBox(”系統未啟動或啟動失敗,請先啟動CAN網絡“);
} else { // TODO: Add your control notification handler code here Route_AddSlave(hRoute,3,&hSlave4017);if(Slave_Connect(hSlave4017)!=ICANOK){ } MessageBox(”4017連接失敗“);
else
{ }
SetTimer(1,1000,NULL);} MessageBox(”4017連接成功");} void CSample4017::OnTimer(UINT nIDEvent){
// TODO: Add your message handler code here and/or call default if(nIDEvent==1){
Slave_GetAIData(hSlave4017,recbuf,&len);
m_valuech0=((double)(recbuf[0]*16*16+recbuf[1])-0x8000)*10/(double)0x8000;
m_valuech1=((double)(recbuf[2]*16*16+recbuf[3])-0x8000)*10/(double)0x8000;
m_valuech2=((double)(recbuf[4]*16*16+recbuf[5])-0x8000)*10/(double)0x8000;
m_valuech3=((double)(recbuf[6]*16*16+recbuf[7])-0x8000)*10/(double)0x8000;
}
m_counter=count;UpdateData(false);count=count+1;CDialog::OnTimer(nIDEvent);}
第四篇:異步電動機的基本控制實驗報告
中國石油大學現代遠程教育
電工電子學課程實驗報告
所屬教學站:青島直屬學習中心 姓
名:杜廣志
年級專業層次:網絡16秋專升本 實驗時間:2016-11-05 小組合作: 是○
否●
學
號:16633104003 學
期:
實驗名稱:異步電動機的基本控制 小組成員:杜廣志
1、實驗目的:
1.看懂三相異步電動機銘牌數據和定子三相繞組六根引出線在接線盒中的排列方式;
2.根據電動機銘牌要求和電源電壓,能正確連接定子繞組(Y形或Δ形); 3.了解復式按鈕、交流接觸器和熱繼電器等幾種常用控制電器的結構,并熟悉它們的接用方法;
4.通過實驗操作加深對三相異步電動機直接啟動和正反轉控制線路工作原理及各環節作用的理解和掌握,明確自鎖和互鎖的的作用;
5.在理解順序控制工作原理的基礎上,學會對三相異步電動機進行簡單順序控制;
6.學會檢查線路故障的方法,培養分析和排除故障的能力。
2、實驗設備及材料:
1.交流接觸器2個:額定電壓220V、額定電流10A、吸引線圈電壓220V; 2.正、反轉和停止按鈕一套。3.熱繼電器一個
4.三相異步電動機一臺:220/380V、1.18/0.68A、0.25kw 5.萬用表一塊。
3、實驗原理:
1.繼電控制線路的連接方法
(1)首先要搞清楚控制線路圖中各符號的意義,它代表什么元件的哪一部分,對照實物,觀察清楚,并找出相應的接線端。
(2)接線時先接主電路,主電路用粗線,控制電路用細線。對于比較復雜的電路,最好采用顏色線,以便區別。例如接正反轉控制電路時,若正轉的部分用紅色線,則反轉的部分可用黃色線或其他顏色線。接線時可從電源的某一端開始,按串連各元器件的先后順序進行連接,碰到有分支時可在分支處接出一根線做記號,待按前一分支串連順序接完回路后再返回來繼續連接。為了保證接線牢固,每一接線柱一般不要超過三根連接線.如某一點超過三條支路,則可選用同電位點并接,如圖1所示。
圖1 接線原理圖
應該注意:圖1中各種控制元件都有二個接線端,若其中一端定為“1”端,另一端定為“2”端,它們各應與其它元件那一端相連,要嚴格按圖示規定不能搞亂;其次,接觸器線圈的接線端不能與觸點的接線端相混,常開觸點的接線端與常閉觸點的接線端也不能搞錯,因為它們在線路中的作用完全不同,一旦接錯可能造成事故。
2.異步機正反轉控制
為實現電機正反轉,只要將接到電源的任意兩根聯線對調一頭即可。故在繼電接觸控制系統中常用兩套接觸器來分別控制電動機的正反轉。具體電路參見圖2。
如接觸器KMF控制電機的正轉,接觸器KMR控制電機的反轉。每個接觸器各用一個啟動按鈕(SBF或SBR)與一個自鎖觸點(KMF或KMR)并聯起來。關斷電源的操作,則公用一個停止按鈕SBl來實現。我們知道對正反轉控制線路最根本的要求是:必須保證兩個接觸器不能同時工作,否則將造成短路。因此,我們還必須把正轉接觸器KMF的一個常閉輔助觸點串接在反轉接觸器KMR的線圈電路中,而反轉接觸器的一個常閉輔助觸點串接在正轉接觸器的線圈電路中。這兩個常閉觸點稱為聯鎖觸點。這樣一來,當按下正轉啟動按鈕SBF時,正轉接觸器線圈通電,主觸點KMF閉合,電動機正轉。與此同時聯鎖觸點斷開了反轉接觸器KMR的線圈電路。因此,即使誤按反轉啟動按鈕SBR,反轉接觸器也不能動作。
3.檢查線路的方法
(1)嚴格按照電路圖對照實物進行檢查,先檢查主電路,再撿查控制電路。
(2)檢查無誤,還應在合閘前再用萬用表歐姆擋檢查一下控制電路二端的電阻,在啟動按鈕未按下前,它應為,按下啟動按鈕時,它應有某一電阻值,其值約等于此二點有關線圈的等效電阻值,若此值為零,則說明其中有短路,應再認真進行檢查并改正。
(3)改接線路及拆除線路時,一定要斷開電源。
4、實驗內容及數據:
(一)三相鼠籠式異步電動機的直接啟動控制
1.熟悉實驗裝置上的電源開關、交流接觸器、按鈕等器件接線端的位置。
2.按圖2接線,進行如下實驗:
(1)點動實驗:不接KM的自鎖觸點,按SB2。
(2)直接啟動及停車試驗:接上KM的自鎖觸點,啟動按SB2,停車按SB1。
(3)失壓保護實驗:電動機啟動后,拉開實驗裝置上的三相開關Q,使電動機停轉,然后重新合上實驗裝置上的三相開關Q,不按SB2按鈕,觀察電動機是否會自行啟動。
(4)改變電動機的轉向實驗:拉開實驗裝置上的三相開關Q,將電動機定子繞組的三根電源線中任意兩根的一頭對調,再合上實驗裝置上的三相開關Q,重新啟動電動機,觀察電動機是否改變了轉向。
圖2 直接啟動控制線路
(二)三相鼠籠式異步電動機的正反轉控制
按圖4接控制電路,進行如下實驗:
圖4 正反轉控制電
路
(1)按下正轉啟動按鈕SBF,觀察電動機轉向并設定此方向為正轉。
(2)再按下反轉啟動按鈕SBR,觀察電動機轉向應反轉.(3)按下停止按鈕SB1,電動機應停止轉動.(三)自行設計三相鼠籠式異步電動機的其他控制電路
(1)行程控制
要求用行程開關實現行程控制和自動循環控制
(2)時間控制
要求用時間繼電器對電動機和電燈負載進行延時控制
(3)其它控制 5.實驗數據處理過程: 直接啟動控制電路
注:紅線為連接線
步驟一:合上閘刀開關Q;
步驟二:按按鈕SB2 KM線圈通電,KM觸點閉合,電機轉動; 步驟三:按按鈕SB1 電機停轉。6.實驗結果的評定及分析: 實驗總結
1.扼要總結接線方法與檢查方法
接線方法:
(1)首先要搞清楚控制線路圖中各符號的意義。
(2)接線時先接主電路,主電路用組線,控制電路用細線。對于比較復雜的電路,最好采用顏色線,以便區別。
檢查方法:
(1)嚴格按照電路圖對照實物進行檢查,先檢查主電路,再撿查控制電路。
(2)檢查無誤,還應在合閘前再用萬用表歐姆擋檢查一下控制電路二端的電阻,在啟動按鈕未按下前,它應為,按下啟動按鈕時,它應有某一電阻值,其值約等于此二點有關線圈的等效電阻值,若此值為零,則說明其中有短路,應再認真進行檢查并改正。
(3)改接線路及拆除線路時,一定要斷開電源。
2.如果要求在兩個不同地方都能控制異步電動機啟動和停車,試用一個接觸器和兩套啟動停止按鈕構成這種控制電路。
7.指導老師評語及得分:
指導老師簽名:
年 月 日
第五篇:基于TDNCM++的總線設計
課程設計報告
課程設計題目:基于TDNCM++的總線控制設計 專
業:**** 班
級:**** 姓
名:**** 學
號: **** 指 導
教 師: ****
2014 年1 月
5日
目錄
一、設計題目…………………………………………………2
二、設計目的...........................................................................2
三、設計設備............................................................................2
四、設計原理............................................................................2
五、設計內容............................................................................2
六、設計步驟............................................................................6
七、設計總結...........................................................................9
一、設計題目
基于TDNCM++的總線控制設計
二、設計目的
1、理解總線的概念及其特性。
2、掌握總線傳輸控制特性。
3、掌握總線仲裁的方式及其方法。
三、設計設備
1、TDN-CM+或
TDN-CM++教學實驗系統一臺。
2、PC 微機一臺。
3、導線若干。
四、設計原理
實驗所用總線傳輸實驗框圖如圖17所示,它將幾種不同的設備掛至總線上,有存儲器、輸入設備、輸出設備、寄存器。這些設備都需要有三態輸出控制,按照傳輸要求恰當有序的控制它們,就可進行總線信息傳輸。
五、設計內容
要求:
(1)輸入設備將一個數打入R0寄存器。
(2)輸入設備將另一個數打入地址寄存器。
-2-(3)將R0寄存器中的數寫入到當前地址的存儲器中。(4)將當前地址的存儲器中的數用LED數碼管顯示。(5)如下圖
存儲器實驗接線圖
圖1
-3-步驟:
1.首先應關閉所有三態門(SW-B=1,CE=1,R0-B=1,LED-B=1),并將關聯的信號置為:LDAR=0,LDR0=0,W/R(RAM)=1,W/R(LED)=1。
2.輸入設備將數據68H(01101000)送到寄存R0中
關閉R0寄存器輸出三態門: R0-B=_1__ 從數據開關送數據給總線:SW-B=__0_ 將總線數據存入R0寄存器:LDR0 =_0_->_1_->_0_ 關閉輸入設備:SW-B= _1__
3.輸入設備將數據22H(00100010)送到地址寄存AR中
從數據開關送數據給總線:SW-B=_0__ 將總線數據存入AR寄存器中LDAR=_0_->_1_->_0_ 關閉輸入設備:SW-B= _1_
4.將寄存器R0中存放的數據寫入存儲器RAM 關閉輸入設備: SW-B=_1_ 從R0寄存器讀數據到總線:LDR0 = __0_,R0-B =_0_ 選擇讀或寫存儲器:WE=__0__
-4-打開存儲器片選信號:CE=_0__ 寫入存儲器WE=_1_->_0_->_1_ 關閉存儲器片選信號:CE=_1__ 關閉R0寄存器:R0-B =__1_
5.將存儲器的數據用輸出設備顯示。
選擇讀或寫存儲器:WE=__1__ 打開存儲器片選信號:CE=__0__ 打開輸出設備LED控制信號:LEB-B=_0_ 選擇輸出設備LED讀或寫信號:W/R =_1_->_0_->_1_ 關閉存儲器片選信號:CE=_1__
最后在LED顯示的是68H.上節總線基本實驗中,關于總線的仲裁問題是由人為控制的,本實驗將設計一個控制邏
輯,來實現總線仲裁功能。實驗將圖 1中控制輸出部件的使能輸入端接入控制邏輯,然 后由控制邏輯輸出至各對應的模塊。其中的輸出設備有 INPUT、RAM 及 R0,這里設其優先級依次降低,即 INPUT DEVICE 設備的優先級最高,當它輸出有效
-5-時,即使給其他輸出設備輸入有效的輸出信號也不能將數據輸出至總線。其他設備依次類推。這樣可以避免幾個設備若同時輸 數據至總線時的沖突,造成器件損壞。實驗規定總線控制邏輯在 CPLD1032 中定義的管腳如圖 2。
圖2
六、實驗步驟
1、用ABEL 語言設計上述控制邏輯。
2、在ispDesignEXPERT 環境下編輯并編譯上述所設計的 源程序,并將生成的 JED 文件下載至 CPLD 中。
3、按圖3 連接實驗接線。
4、具體實驗操作步驟同上小節。分析兩個實驗在總線控制
上的不同。
初始狀態應設為:關閉所有的三態門(SW-B=1,CE=1,R0-B=1),其他控制信號為:LDAR=0,LDR0=0,W/R(RAM)=1,W/R(LED=1
第一組數據:(R0)=11H,(R)=21H LED顯示的數據為:
第二組數據:(R0)=A5H,(R)=22H LED顯示的數據為: 第三組數據:(R0)=FCH,(R)=23H LE顯示的數據為:
-8-注意事項:
1、所有導線使用前須測通斷;
2、不允許帶電接線;
3、“0”——亮“1”——滅;
4、注意連接線的顏色、數據的高低位。
七、實驗總結
實驗過程出現了很多問題,只有在實驗前做好充分準備,才能減少在實驗過程中遇到的難題。實驗主要是使我們理解總線的概念及其特性,并掌握總線傳輸控制特性,這對我們深入了解計算機組成原理這門課程更加有利。