1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo thí nghiệm Đo lường Điều khiển bằng máy tính

65 0 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 65
Dung lượng 4,72 MB

Nội dung

Thí nghiệm 1: Khảo sát hoạt động của ngõ vào và ngõ ra Thí nghiệm 1.1 a Nói dụng Làm quen PLC với bài toán điều khiển START/STOP.. Thí nghiệm 2: Giả lập hoạt động của máy trang thai

Trang 1

Ũ : a ñ : c q B : : Ũ D Ũ E E E Ễ Ễ : Ễ Ễ Ễ Ễ : sĩ (s1

TRUONG DAI HOC BACH KH

THANH PHO HO CHI MINH

BAO CÁO THÍ NGHIỆM

ĐO LƯỜNG DIEU KHIEN BANG MAY TINH

Trang 2

BÀI THÍ NGHIỆM 2: TRUYÊN THÔNG NÓI TIẾP GIỮA PC VÀ PLC 16

I Bài thí nghiệm 1: Làm quen với PLC S7-200 Tnhh hệt 16

II Thí nghiệm 2: Giao tiếp giữa PC và PLC sử dụng ngắt nhận kí tự, truyền thông qua

IB9Ìa1I9089)/:e01ìi 20001 AIIánnn 24

lII Các đoạn chương trình liên quan đến thuật toán điều khiến ON/OFF - 32

IV Các đoạn chương trình liên quan đến thuật toán điều khiến PID : 5+: 35

V Các giái pháp khác có thẻ thực hiện cho hai bài thí nghiệm trên . - 5- 37

E.1IMEIR)IEIn)190)/8:19Ẽ ng jäậỘỪộỘộỘọỌọỪịỪ¿53% 39

I Thí nghiệm 1: Lập trình vi điều khiên sử dụng Keil-C -¿- + ++2+2>s<z<+c+xzxzezsss 39

II Thí nghiệm 2: Tao window form app CZ: nhàn ng kh ket 44

Ill Thí nghiệm 3: Điều khiển vị trí động cơ bằng bộ điều khiển PID 2 2-5:55¿ 61

Trang 3

BAI THI NGHIEM 1: LAP TRINH PLC $7— 1200 CAC UNG DUNG LAP

TRINH CO BAN

| Thí nghiệm 1: Khảo sát hoạt động của ngõ vào và ngõ ra

Thí nghiệm 1.1

a) Nói dụng

Làm quen PLC với bài toán điều khiển START/STOP Yêu cầu:

e START — nut nhan BT1

e STOP — nit nhan BT2

e - Dèn báo RUN - Đèn DO 1, chớp nháy chu kỳ 1s, sử dụng xung nhịp hệ thông b)_ Tiến hành láp trình

Trang 4

Thi nghiém 1.2

d) Nói dụng

Điều khiển các đèn ngõ ra theo điều khiện ngõ vào như sau:

e _ Default: 8 LED ngõ ra nhấp nháy chu kỳ 2s

o ROR: quay bit qua phải

o ROL: dé quay bit qua trai

“» Bang tag:

PLC tags Name Data type Address

a START Bool %I0.3

“yj Ssem Byte Byte %MB100

<a FirstScan Bool %M100.0

Trang 7

-_ Nhân BT1: nạp giá trị 16#01 vào QB0 Sử dụng hàm ROL đề quay bit sang trái làm

các LED sáng từ phải sang trái với thời gian sáng 0.5s

7

Trang 8

e Nhan BT2: Ting dén LED sang réi tat trong 0.5s, lần lượt từ phải sang trái và lặp

lại

II Thí nghiệm 2: Giả lập hoạt động của máy trang thai

Khảo sát, giá lập và điều khiền vận hành hệ thống phân loại sản pham

Mô tá: Hệ thống phân loại sản phẩm được biêu diễn như hình dưới:

e _ Có 3 loại sản phâm được phân biệt theo chiều dài, bao gồm D — San pham dai; N

- Sản phâm ngắn, TB: Sản phẩm có chiều dài trung bình

e _ Chiều dài của sản phâm được xác định bởi các cảm biên CB1, CB2 và CB3 o_ Sản phâm là N khi chí có 1 cảm biến phát hiện được sản phẩm

o San pham la TB khi chi c6 2 cam biến phát hiện được sản phẩm

o San pham la D khi chi c6 3 cam bién phat hién duoc san pham

e Cac cam bién trong ng voi cac ngd vao PLC 10.2, 10.3, 10.4

Q0.2 Các tín hiệu này báo trong thời gian 2s

Xây dựng mô phỏng tín hiệu cảm biến cho các loại sản phẩm khác nhau:

Trang 9

|

b) Tién hanh lap trinh

% Bảng thông sô ngõ vào và ngõ ra:

Default tag table [35]

Trang 10

%Q0.4 CR2 —"CB2”

Trang 12

+ Hoạt động của chương trình:

Dùng Timer TP để mô phỏng thời gian vật đi qua các cảm biến

Nhan BT1, vat NGAN đi qua cảm biến 1 từ 0s đến 4s, di qua cảm biến 2 từ 5s đến 9s và đi qua cảm biến 3 từ 10s đến 14s

Nhan BT2, vật TRUNG BÌNH đi qua cảm biến 1 từ 0s đến 8s, đi qua cảm biên 2 từ 5s đến 13s, đi qua cảm biến 3 từ 10s đến 18s.

Trang 13

¢ Nhan BT3, vat DAI di qua cam bién 1 ttr 0s dén 12s, di qua cam bién 2 tir 5s dén 17s, đi qua cảm biến 3 từ 10s đến 22s

c) Két qua

e _ Chương trình hoạt động theo đúng yêu cầu đặt ra

e - Khuyết điểm của chương trình: Hệ thông chỉ hoạt động đúng khi từng loại sản phẩm đi qua có thời gian cách nhau Ở trường hợp, nhiều sản phẩm đi qua hệ

thống liên tiếp nhau sẽ không còn đúng nữa Ví dụ ở trường hợp, trên băng tải

gồm có vật ngắn và vật dài cách nhau 1s thì khi chí nhìn vào tín hiệu cảm biến ta

sẽ không phát hiện có vật ngắn đi qua

e - Phương pháp, giải thuật khác giá lập hoạt động của hệ thông: Vì chỉ thực hiện ở

dạng mô phỏng nên giải thuật trên là chấp nhận được

Thí nghiệm 2.2

d) Néi dung

Viết chương trình phân loại sản pham với tin hiệu giả lập vừa xây dựng được

e - Phương pháp 1: Giái quyết bài toán theo phương pháp tuần tự với bộ tín hiệu ngõ

Trang 14

%q04 C82 —CÊ2'

%Q05 œ3 —C83

“+ Chương trình FB Sensor Simulation: sử dụng ở thí nghiệm trên

* Chương trình FB TN3: Chương trình phân loại sản phẩm:

Trang 15

“+ Hoat déng cua chuong trình:

Chương trình Main: gồm một khói mô phỏng vật và một khói phân loại vật

Khói FB1: đã trình bày ở thí nghiệm 2.1

Khói FB2: néu 3 cảm biến cùng sáng thì biến đếm vật DÀI sẽ tăng 1 Nếu trường hợp 3 cảm biến không sáng sẽ xét trường hợp 2 cám biến sáng, nếu 2 cảm biến

sáng thì biến đếm vật TRUNG BÌNH sẽ tăng 1 Trường hợp còn lại của vật

NGAN

f)_ Kết quả Gia chương trình:

Trường hợp từng sản phâm đi qua hệ thống phân loại thời gian cách nhau thì hệ

thống hoạt động chính xác

Trường hợp nhiều sản phâm đi qua hệ thống liên tiếp nhau thì có trường hợp chương trình đếm không đúng loại sản pham.

Trang 16

BAI THi NGHIEM 2: TRUYEN THONG NOI TIEP GIU'A PC VA PLC

| Bai thi nghiém 1: Lam quen véi PLC S7-200

Trang 19

Thí nghiêm 1.2:

Cái tiền chương trình của thí nghiệm 1.1 hoạt động theo các ché độ khác nhau

- KhiSWI tac động, đèn hoạt động theo chu kì XA=30s, VA=3s, VA=3s, DA=43s,XB=40s, VB=3s, DB=33s

- KhiSW2? tác động đèn hoạt động theo chu kì XA=60s, VA= 5s, DA=63s,

XB=60s,VB=5s, DB=63s

- _ Khi SW8 tác động đèn VA và VB nhấp nháy chu ky 1s

"_ Chương trình PUC:

Trang 23

10.4

—]

Thí nghiệm cho kết quả của đèn giao thông sáng đúng yêu cầu thí nghiệm

khi chuyên các ché độ hoạt động của đèn giao thông

Trang 24

II Thí nghiệm 2: Giao tiếp giữa PC và PLC sử dụng ngắt nhận kí tự, truyền thông qua

PORTO0, giao thức “9600,N,8”

Thí nghiệm 2.1:

Thực hiện Liên kết đơn giản giữa PLC và PC

Code C# trên Visual Studio:

using System Text;

using System.Threading Tasks;

Trang 26

«+ Chuwong trinh PLC:

—( ENI )

Network 2 Network Title

26

Trang 27

SM0.1

MOV_B

ENO OUT)

SN

FVB100

!A'4 MOV_B

ENO} OUT

—3

PVB101

Trang 28

©)

1 XMT

VB1024 TBL 04POBT

M1.1

—*)

28

Trang 29

+ Kết quả trên Form và đèn báo kết nói

Wl Form (o|S| & |

I

Motor Status MOTOR ON

Trang 30

Thí nghiệm 2.2:

Thực hiện cái tiến bài toán điều khiển đèn giao thông của thí nghiệm 1.1 và quan sát trên

giao diện

+ Yêu cầu:

Thay đôi thông sô của các đèn XA, VA, XB, VB

Hien thi trang thai cac dén Xanh, Vang, Do

Hien thi thoi gian dem ngugc dang decimal

Hiên thị thời gian đêm ngược dang led 7 SEG

Rat tiếc thí nghiệm này nhóm em chua hoàn thành được

> Kết luận: Qua bài thí nghiệm này giúp nhóm em hiệu được cách két nói PC với PLC qua truyèn thông nồi tiếp

30

Trang 31

BAI THi NGHIEM 3: GIAO TIEP TCP/IP

| Giải thuật điều khiển ON/OFF

thay đối tín hiệu nhiệt độ vào bộ

điều khiễn lò nhiệt nhớ

Sai số > độ trễ 2

PC gửi tín hiệu yêu cầu tắt lò

Trang 32

II Giai thuat diéu khién PID

Bat dau

t

PLC doc nhiét do

PC lay truyén dir

liệu nhiệt đô từ

Đọc dữ liệu từ PC

lò nhiệt PLC thông qua

chuẫn Modbus

Gửi dữ liệu nhiệt

đô cho PC hoặc <a ee oe >

thay đỗi tín hiệu ¬ + alee

liêu khiên lò nhiệt

PLC lưu giá trị

PC gửi giá trị tín hiệu điều khien cho PLC thông

Trang 33

}

WiteSingleRegister(0, (Int16)cv); // Truyền tín hiệu điều khiển về PLC

txt€V.Text = cv ToString(); ?? update textbox

+ Hàm đọc 1 thanh ghi tir ple:

private void ReadSingleRegister(ushort RegAddress, short[] Outdata)

byte[] buffReceiver = this.Read();

int SizeByte = bufferReceiver[8];

short[] temp = null;

if (function != bufferReceiver[7])

{

byte[] byteMsg = new byte[9];

Array.Copy(bufferReceiver, 9, byteMsg, 9, byteMsg.Length); byte[] errorbytes = new byte[3];

Array.Copy (bufferReceiver, 6, errorbytes, 9, errorbytes.Length); this.CheckValidate(errorbytes) ;

else

byte[] byteMsg = new byte[9 + SizeByte];

Array.Copy(bufferReceiver, 9, byteMsg, 9, byteMsg.Length); byte[] data = new byte[SizeByte];

Array.Copy(bufferReceiver, 9, data, 9, data.Length);

33

Trang 34

+ Hàm gửi tín hiệu vào 1 thanh ghi của PLC:

private void WriteSingleRegister(ushort RegAddress, Int16 Data)

byte slaveAddress = 1;

byte function = 16;

ushort id = function;

ushort[] input = new ushort[1] { (ushort)Data };

byte[] values = ConvertIntArrayToByteArray (input) ;

byte[] frame = WriteMultipleRegistersMsg(id, slaveAddress, RegAddress, function, values);

int code = this.Write(frame) ;

//txtError.Text = "OK";

Thread Sleep(20) ;

byte[] buffReceiver = this.Read();

int SizeByte = bufferReceiver[8];

byte[] byteMsg = null;

if (function != bufferReceiver[7])

{

byte[] errorbytes = new byte[3];

Array.Copy(bufferReceiver, 6, errorbytes, 9, errorbytes.Length); this.CheckValidate(errorbytes) ;

34

Trang 35

Array.Copy(bufferReceiver, 9, byteMsg, 9, byteMsg.Length);

}

else

{

byteMsg = new byte[READ BUFFER_SIZE];

Array.Copy(bufferReceiver, 9, byteMsg, 9, byteMsg.Length);

& Hàm kết nối PLC với PC qua chuẩn Modbus:

public void Connect()

{

this.mSocket = new Socket (AddressFamily InterNetwork, SocketType.Stream, ProtocolType.Tcp);

this.bufferReceiver = new byte[READ BUFFER _SIZE];

this.bufferSender = new byte[WRITE_BUFFER_SIZE];

this.mSocket.SendBufferSize = READ BUFFER SIZE;

Trang 36

pv = RegData[@] / 27648.0 * 625.0 - 125.0; // Chuyển điện áp thành nhiệt độ txtPV.Text = pv.ToString();

PlotChart((double)timControl.Interval / 1000.0 * (double)counter, pv); counter++;

// Giải thuật điều khiển PID

WriteSingleRegister(@, (Int16)cv); // Truyền tín hiệu về PLC

txtCV.Text = cv.ToString(); // Cập nhật Textbox

36

Trang 37

4 Các hàm kết nói PLC, đọc và viết thanh ghi tương tự như các hàm liên quan ở giải

thuật điều khiển ON-OFF

1 Cách thiết lập PLC hoạt động phát xung PWM

+ Kích hoạt bộ tạo xung PWMI như hình sau:

Time base: | Milliseconds

Pulse duration format: | Hundredths

Cycle time: [1000 ms [=]

Initial pulse duration: | 50 Hundredths iS]

{_) Allow runtime modification of the cycle time

+ Kéo bộ tao xung PWM ra network va cau hinh nhu sau:

“Always TRUE” — ENABLE STATUS —— DB”.STATUS

+ Do giá trị tín hiệu điều khiên từ PC gửi về đang ở thang 1000 nên cần được scale lại về

thang 100:

¡0— IN2 OUT —— ”Tag_3”

V Các giải pháp khác có thể thực hiện cho hai bài thí nghiệm trên

+ Đối với bài thí nghiệm điều khiển ON - OFF:

Thay vì tính toán giá trị tín hiệu điều khiên trên PC rồi gửi về cho PLC thực hiện thì

ta có thê tính trực tiếp trên PLC băng ngôn ngữ ladder hoặc SCL PC luc nay chi giam sat nhiệt độ lò và gửi tín hiệu bắt đầu hay kết thúc điều khiên

37

Trang 38

4 Đối với bài thí nghiệm điều khiển PID:

Thay vì tính toán giá trị điều khiển PID trên PC rồi gửi về cho PLC thực hiện thì ta có

thể tính trực tiếp trên PLC bằng ngôn ngữ SCL PC luc nay chi giam sat nhiệt độ lò, gửi giá tri Kp, Ki, Kd và tín hiệu bắt đầu hay kết thúc điều khiên từ người giám sát

38

Trang 39

BÀI THÍ NGHIỆM SÓ 4:

LAP TRINH CARD USB GIAO TIEP VGI MAY TINH

I Thí nghiệm 1: Lập trinh vi diéu khién sw dung Keil-C

static uint8_t DI_value;

static float AO _value[2];

static int AI_value[3];

static uint32_t C@_value;

static uint32_t DO_pwm_frequency[3];

static uint16_t Ts_ms =100;//ms

static uint8_t usb_rx_buffer[64];

static uint8_t usb_tx_buffer[17];

static volatile uint8_t usb_tx_flag = 9;

static volatile uint8 t usb rx flag = 9;

Trang 40

Sample Timer Init();

Trong ham “main” dau tién ta sé khéi tao cac ngoai vi va cau hinh xung clock

Trang 41

Sau đó chương trình sẽ vào hàm “while(1)”, Kiếm tra co “usb_tx_flag”, néU bang 1

thì thi reset lai co vé 0 sau do thiet lap cac ham dé truyén di cac gia tri DI, Al, va gia

tri cua counter

AO_value[1] = ((float)usb_rx_buffer[11 ]*256+(float)usb_rx_buffer[12 ])/1999;

AO Write Al1(AO value);

Trang 42

Nếu nhận được kí tự “F° thì thiết lập tần số PWM

Nếu nhận được kí tự ‘G’ thi thiết lập độ lợi cho ADC 18 bit

Nếu nhận được kí tự “T? thì thiết lập thời gian lầy mẫu

Trang 43

/* USER CODE BEGIN Error_Handler_Debug */

/* User can add his own implementation to report the HAL error return state */

/* USER CODE BEGIN 6 */

/* User can add his own implementation to report the file name and line number,

tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */

/* USER CODE END 6 */

Trang 44

Il Thí nghiêm 2: Tao window form app C#

Trang 45

{

#region variable

byte DI_value;

byte[] DO_value = new byte[8];

byte[] DO_text = new byte[8];

double[] PWM_text = new double[8];

double[] F_text = new double[3];

byte[] F_value = new byte[3];

double AO_@ text;

double AO_1_ text;

Int1i6é AO_@ value;

Tnt16 AO_1_value;

byte[] AO 9 = new byte[2];

byte[] AO 1 = new byte[2];

//

double AI_@ VALUE;

double AI_1_ VALUE;

double AI_2 VALUE;

int ai_@ value;

int ai_1_value;

int ai_2_ value;

byte[] AI_@ value = new byte[4];

byte[] AI_1 value = new byte[4];

byte[] AI_2_ value = new byte[4];

//

byte[] c_value = new byte[4];

45

Trang 46

double pPart = 9, iPart = 9, dPart = 0;

bool enablePID = false;

#region Declaring Global Variable

public static UsbDevice myUsbDevice, myUsbDevice_temp;

if (MessageBox.Show("Are you want to exit ?", "Confirmation",

MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)

{

else

46

Trang 48

UsbRegDeviceList allDevices = UsbDevice.AllDevices;

foreach (UsbRegistry usbRegistry in allDevices)

txtmanufacturer.Text = myUsbDevice Tnfo.ManufacturerString;

USB_DATA_RECEIVER_INIT();

btnconnection.Text = "Disconnect";

timer1.Enabled = true;

} } }

Ngày đăng: 19/12/2024, 15:35