Board tín hiệu là một dạng modul mở rộng tín hiệu vào/ra với số lượng tín hiệu ít, giúp tiết kiệm chi phí cho các ứng dụng yêu cầu mở rộng số lượng tín hiệu ít.
Modul mở rộng tín hiệu vào,ra
Các modul mở rộng tín hiệu vào/ra được gắn trực tiếp vào phía bên phải của CPU.Với dải rộng các loại modul tín hiệu vào/ra số và analog, giúp linh hoạt trong sử dụng S7-1200. Tính đa dạng của cá modul tín hiệu vào/ra sẽ được tiếp tục phát triển.
Modul truyền thông
Bên cạnh truyền thông Ethernet được tích hợp sẵn, CPU S7-1200 có thể mở rộng được 3 modul truyền thông khác nhau, giúp cho việc kết nối được linh hoạt hơn. Tại thời điểm giới thiệu S7-200 ra thị trường, có các modul RS232 và RS485, hỗ trợ các protocol truyền thông như modbus, USS…
2.1 Phần mềm lập trình TIA PORTAL
Phần mềm dùng để lập trình cho S7-1200 là Step7 Basic. Step7 Basic hỗ trợ ba ngôn ngữ lập trình là FBD, LAD và SCL. Phần mềm này được tích hợp trong TIA Portal 11 của Siemens.
2.2 Phần mềm PC AccessPC Access
PC Access cung cấp thư viện bổ sung cho Excel, Protool, VB nhằm kết nối PLC với PC từ các chương trình này.Hạn chế của PC Access trong việc tạo OPC sever cho S7-1200:PC Access được thiết kế chủ yếu dành cho dòng PLC S7-200, tuy nhiên có thể dùng được với PLC S7-1200, nhưng chỉ có các thẻ dữ liệu trong khối dữ liệu DB1 của S7- 1200 mới có thể được truy cập, nguyên nhân là do S7-200 chỉ có một khối dữ liệu.2.3 Ngôn ngữ lập trình C# và ứng dụngC# là một ngôn ngữ lập trình ứng dụng, ngôn ngữ biên dịch, ngôn ngữ đa năng được phát triển bởi hãng Microsoft, là một phần khởi đầu cho kế hoạch .NET. Microsoft phát triển C# dựa trên C, C++ và Java. C# được miêu tả là ngôn ngữ có được sự cân bằng giữa C++, Visual Basic, Delphi và Java…
- C# là ngôn ngữ đơn giản, có ít từ khóa
- C# là ngôn ngữ hiện đại
- C# là ngôn ngữ hướng đối tượng, hướng module
- C# là ngôn ngữ mạnh mẽ và mềm dẻo
3.1 OPC Server
- OPC được viết tắt từ “OLE for Process Control”.
- OPC được điều hành bởi tổ chức độc lập: OPC Foundation (www.opcfoundation.org)
- OPC chuẩn hóa cách liên kết giữa các phần mềm trong ngành tự động công nghiệp.
- OPC Server là một ứng dụng hoạt động như một API (giao diện lập trình ứng dụng) hoặc là một bộ chuyển đổi giao thức.
- Một OPC Server sẽ kết nối với các thiết bị như PLC (Programable Logic Controller - bộ điều khiển lập trình được), DCS (Distributed control system - hệ điều khiển phân tán), RTU (Remote Terminal Unit), cơ sở dữ liệu…rồi chuyển đổi dữ liệu sang định dạng OPC chuẩn.
3.2 OPC Client
Những ứng dụng OPC (OPC Client) như HMI, bộ ghi dữ liệu, bảng biểu, vẽ đồ thị… có thể kết nối với OPC Server rồi đọc/ghi dữ liệu lên thiết bị.” Trong project này ta sẽ nghiên cứu cách kết nối C# với một OPC Server, như vậy C# sẽ là một OPC Client. OPC Server ở đây sẽ là Simatic S7-200 PC Access OPC Server
3.3 Một số thuật ngữ trong OPC
OPC Item
OPC Group
3.4 Tạo kết nối giữa C# và OPC
Bước 1: Khai báo
private OpcServer TheSvr; Khởi tạo đối tượng OPCServer và OPCGroup, những đối tượng này xem như được mặc định
trình.
Bước 2: Kết nối OPC Sever
TheSvr = new OpcServer(); Tạo một đối tượng OPC Sever mới.
const string ServerProgID = "Program"; | Khai báo tên máy chủ để kết nối đến “SeverProgID”. |
TheSvr.Connect(ServerProgID); | Kết nối sever với tên máy chủ đã khai báo |
TheGrp = TheSvr.AddGroup("abc", false, 187500); | Thêm một Group mới vào Group Collection |
TheGrp.SetEnable(true); TheGrp.Active = true; | Kích hoạt Group |
Bước 4: Ghi/Đọc giá trị lên PLC
PLC.write_PLC(TheGrp, "A", "B", "C"); | Ghi dữ liệu lên PLC A – Địa chỉ/Biến PLC cần ghi dữ liệu. B – Giá trị cần ghi C – Kiểu của biến/địa chỉ PLC |
PLC.read_PLC_bool(TheGrp, "D"); | Đọc dữ liệu từ PLC (kiểu bool) D – Địa chỉ/ biến PLC cần đọc dữ liệu |
Bước 1: Tạo một Project mới
Khởi động phần mềm TIA PORTAL V11 → Chọn “Creat new project” → Đặt tên và chọn nơi lưu trữ cho project → “Creat”
Bước 2: Thiết lập cấu hình cho PLC
Sau khi tạo được project mới ta có giao diện Portal view
Bước 3: Thiết lập địa chỉ IP cho PLC
Sau khi thêm PLC mới vào project ta có giao diện
Để phần mềm TIA PORTAL có thể kết nối với PLC ta cần thay đổi địa chỉ IP
trên PLC vừa tạo trùng với địa chỉ IP của PLC hiện có.
Trên PLC vừa tạo ta chọn cổng Ethernet → Trong cửa sổ thuộc tính PLC được khoanh đỏ trong hình ta chọn thẻ “Properties” → Trong thẻ “General” chọn
theo đường dẫn “PROFINET interface” → “Ethernet addresses”Trong mục “IP protocol” ta thay đổi “IP address”. Ví dụ ở đây PLC thật có địa
chỉ IP : 192.168.0.1
Bước 4: Thay đổi địa chỉ IP của máy tính
Cần thay đổi địa chỉ IP của máy tính có dạng 192.168.0.xyz có dạng giống với
IP của PLC 192.168.0.1 trong đó “xyz” phải khác IP của PLC.
Đối với Win 7 : “Control Panel”→“Network and Sharing Center” →“Change adapter settings” →“Local Area Connection” →“Internet Protocol Version 4 (TCP/IPv4)” →“Properties” →”Ok” →”Ok” Bước 5: Lập trình LAD cho PLC S7-1200 |
Trong cửa sổ “Project tree” chọn theo đường dẫn đến mục “Program blocks”. Chọn “Main [OB1]” để mở giao diện lập trình. |
Sau khi đã kết nối được PLC → Chọn PLC và ấn nút “Load” → Tiếp tục làm
theo hướng dẫn cho đến khi “Finish”
Bước 2: Thêm PLC mới
Chọn "Edit → New → PLC" một cửa sổ "PLC properties" hiện ra để thiết lập
thuộc tính.Name: "S7-1200_PLC" (Đặt tên PLC)
IP Address: "192.168.0.1" (Địa chỉ IP của PLC)
TSAP Local: "10.00." (TSAP của PC Access)
TSAP Remote: "03.01." (TSAP của S7-1200 PLC)
Bước 3: Thêm các Item
Chọn "Edit → New → Item" cửa sổ “Item properties” hiện ra cho phép nhập các
thông số:Tên của Item "Name:" input field.
Địa chỉ của thẻ "Address:" input field.
Chọn kiểu dữ liệu "Data Type:" input field
Chọn các Item cần giám sát → Chọn nút "Add current items to test client" trên
thanh công cụ. Các Item được chọn sẽ được chuyển xuống của sổ “Test Client”
Sau đó để bắt đầu chạy thử chọn nút "Start Test Client" trên thanh công cụ. Nếu
cột “Quality” trong khung “Test Client” có giá trị là “Good” tức là quá trình kết nối
tới PLC thành công.
Bước 1: Tạo project mới“File” → “New” → “Project”
cần hiển thị. Ta được giao diện như hình sau:
Trong khung “Solution Explorer” → Click chuột trái vào “References” →“Add Reference…
lệnh, các hàm nhằm thực hiện kết nối đến OPC Sever.
Bước 3: Lập trình file khởi tạo OPC Server
Trong khung “Solution Explorer” → Click chuột trái vào tên project, ví dụ
“app_da_cn” → “Add” → “New item…”
Bước 4: Lập trình ứng dụng
Tại cửa sổ “Form1.cs [Design]” ta có thể lấy các Button, Lable, TextBox, … từ thanh “Toolbox” để xây dựng giao diện theo yêu cầu.
Trong khung “Properties” ta chỉnh lại các thuộc tính và tên của các đối tượng sao cho hợp lý và dễ sử dụng.
Để lập trình các hành động cho đối tượng ta kích chuột trái vào Form → “View code”.
Một số đối tượng và thuộc tính thường được sử dụng trong quá trình lập trình:
Hộ tiêu thụ điện được cấp điện từ 2 nguồn, 1 là từ điện áp lưới, 2 là từ hệ thống
máy phát dự phòng.
Rơle RL báo điện áp lưới, tiếp điểm của nó được đưa vào PLC
Rơle RF báo điện áp từ máy phát điện, tiếp điểm của nó cũng được đưa vào PLC
Các thao tác vận hành, khởi động và đóng máy phát dự phòng được thực hiện như
sau:
Khi mất điện áp lưới (UL=0):
Ấn nút Start → ON 1s, OFF 10s động cơ đề cho động cơ Diezen. Quá trình
này được lặp đi lặp lại 3 lần cho đến khi có điện áp từ máy phát (UF=1) thì
thôi. Trường hợp sau 3 lần thử khởi động máy phát không thành công thì hệ sẽ
dừng.
Khi mất UL=0 và có UF=1 (đã khởi động được máy phát):
Chuyển sang cấp điện cho hộ tiêu thụ từ nguồn máy phát. Hay là CF ON 1s. Khi có lại UL=1 và đang có UF=1:
Đợi 2 phút để chắc chắn có điện lưới lại. Chuyển tải sang điện lưới CL ON 1s.
Sau đó dừng máy phát ON 1s.5.2 Phân cổng vào ra
Hệ thống được thiết kế cấp điện cho một hộ gia đình nên nguồn cung cấp sẽ là điệnxoay chiều một pha và máy phát điện xoay chiều cùng có U=220V và f=50Hz. Contactor đảo chiều: được thiết kế cho một số ứng dụng cụ thể, thực chất về cấu tạo gồm 2 contactor thường ghép nối qua một thiết bị để chỉ có thể một trong hai Contactor ở trạng thái đóng.
động cơ đề.
- Điện áp cuộn dây: 220/240VAC
- 8 chân, 2 cặp tiếp điểm
- Relay công suất loại nhỏ 3-5A
- Tiếp điểm chịu được điện áp tới 2000 VAC,
5.6 Sơ đồ nguyên lý
Điện áp lưới và điện áp máy phát được phát hiện và đưa về PLC thông qua các tiếp điểm thường đóng của 2 rơle trung gian, do khi mất điện áp tiếp điểm thường mở của rơle sẽ đóng báo tín hiệu về PLC.
Đầu ra của PLC sẽ điều khiển hoạt động của contactor đảo chiều (chuyển mạch), ưu điểm của loại contactor này là chỉ có một trong hai nguồn điện đến được với hộ tiêu thụ, hạn chế sự cố khi cả hai nguộn cung cấp cho một tải.
Qua đó cũng đi vào xây dựng một số ứng dụng cụ thể như hệ thống đèn giao thông hay bộ chuyển đổi nguồn tự động để áp dụng những nội dụng tìm hiểu được vào thực tiễn. Hai ứng dụng tuy đơn giản nhưng đã đầy đủ các bước cơ bản để tiến hành thiết kế một hệ thống giám sát điều khiển từ xa.
Trong nghiên cứu này công cụ để tạo lên OPC sever là phần mềm PC Access, tuy nhiên còn rất nhiều phần mềm khác có thể tạo nên một OPC Sever, giúp trao đổi dữ liệu giữa PC và PLC. Cũng như vậy, còn nhiều cách khác nhau để giao tiếp giữa PC và PLC, vì vậy, việc tìm hiểu các giao thức này sẽ giúp tìm ra được ưu và nhược điểm của từng phương pháp. Đồng thời giúp quá trình thiết kế hệ thống giám sát sau này xác định được những phương pháp giao tiếp phù hợp với từng ứng dụng.
{string diachi = "MicroWin:2:192.168.1.23:1000:0301," + Address + "," + Type +",RW";OPCItemDef[] ItemDefs_ = new OPCItemDef[1];
ItemDefs_[0] = new OPCItemDef(diachi, true, 1234, VarEnum.VT_EMPTY);
TheGrp.AddItems(ItemDefs_, out rItm_);
HandlesSrv_[0] = rItm_[0].HandleServer;
arrVal_[0] = Value;
TheGrp.SyncWrite(HandlesSrv_, arrVal_, out arrErr_);
}public bool read_PLC_bool(OpcGroup TheGrp, string Address)
{string diachi = "MicroWin:2:192.168.1.23:1000:0301," + Address + "," +"BOOL,RW";
int[] HandlesSrv_ = new int[1];
ItemDefs_[0] = new OPCItemDef(diachi, true, 1234, VarEnum.VT_EMPTY);
TheGrp.AddItems(ItemDefs_, out rItm_);
HandlesSrv_[0] = rItm_[0].HandleServer;
TheGrp.SyncRead(OPCDATASOURCE.OPC_DS_DEVICE, HandlesSrv_, out arrStat_);
}public int read_word(OpcGroup TheGrp, string Address)
{string diachi = "MicroWin:2:192.168.1.69:1000:0301," + Address + "," +"WORD,RW";
ItemDefs_[0] = new OPCItemDef(diachi, true, 1234, VarEnum.VT_EMPTY);
TheGrp.AddItems(ItemDefs_, out rItm_);
HandlesSrv_[0] = rItm_[0].HandleServer;
TheGrp.SyncRead(OPCDATASOURCE.OPC_DS_DEVICE, HandlesSrv_, out arrStat_);
}public byte read_byte(OpcGroup TheGrp, string Address)
{string diachi = "MicroWin:2:192.168.1.23:1000:0301," + Address + "," +"BYTE,RW";
ItemDefs_[0] = new OPCItemDef(diachi, true, 1234, VarEnum.VT_EMPTY);
30TheGrp.AddItems(ItemDefs_, out rItm_);
HandlesSrv_[0] = rItm_[0].HandleServer;
TheGrp.SyncRead(OPCDATASOURCE.OPC_DS_DEVICE, HandlesSrv_, out arrStat_);return byte.Parse(arrStat_[0].DataValue.ToString());
}public long read_dword(OpcGroup TheGrp, string Address)
{string diachi = "MicroWin:2:192.168.1.23:1000:0301," + Address + "," +"DWORD,RW";
OPCItemDef[] ItemDefs_ = new OPCItemDef[1];
OPCItemResult[] rItm_;
OPCItemState[] arrStat_ = null;
int[] HandlesSrv_ = new int[1];
int[] arrErr_ = new int[1];
object[] arrVal_ = new object[1];
ItemDefs_[0] = new OPCItemDef(diachi, true, 1234, VarEnum.VT_EMPTY);
TheGrp.AddItems(ItemDefs_, out rItm_);
HandlesSrv_[0] = rItm_[0].HandleServer;
TheGrp.SyncRead(OPCDATASOURCE.OPC_DS_DEVICE, HandlesSrv_, out arrStat_);return long.Parse(arrStat_[0].DataValue.ToString());
}public float read_float(OpcGroup TheGrp, string Address)
{string diachi = "MicroWin:2:192.168.1.23:1000:0301," + Address + "," +"DWORD,RW";
OPCItemDef[] ItemDefs_ = new OPCItemDef[1];
OPCItemResult[] rItm_;
OPCItemState[] arrStat_ = null;
int[] HandlesSrv_ = new int[1];
int[] arrErr_ = new int[1];
object[] arrVal_ = new object[1];
ItemDefs_[0] = new OPCItemDef(diachi, true, 1234, VarEnum.VT_EMPTY);
TheGrp.AddItems(ItemDefs_, out rItm_);
HandlesSrv_[0] = rItm_[0].HandleServer;
TheGrp.SyncRead(OPCDATASOURCE.OPC_DS_DEVICE, HandlesSrv_, out arrStat_);return float.Parse(arrStat_[0].DataValue.ToString());
}
0 nhận xét:
Đăng nhận xét