5. BỐ CỤC ĐỒ ÁN
3.1.13. Một số hạn chế ảnh hƣởng đến web server
Thông thƣờng phải sử dụng địa chỉ IP của PLC để truy cập vào web chuẩn và web do ngƣời dung tự định nghĩa. Nếu trình duyệt web của chúng ta không cho phép kết nối trực tiếp đến một địa chỉ IP thì chúng ta có thể kết nối với một địa chỉ IP thông qua mục DNS tới địa chỉ đó.
Tƣờng lửa, cài đặt Proxy và một số trang web khác cũng có thể hạn chế truy cập đến PLC
Trang web chuẩn sử dụng JavaScript và Cookie. Nếu 2 thành phần này không đƣợc tích hợp trong trình duyệt cũng có thể làm hạn chế tính năng trong trang web server và trang User-defined .
Siemens cung cấp một chứng chỉ bảo mật để truy cập an toàn đến Web server, chúng ta có thể đăng nhập hoặc tải giấy chứng nhận.
41 3.2. TRANG WEB TỰ XÂY DỰNG
Web server của S7-1200 cung cấp tính năng là có thể tạo ra một trang web riêng kết hợp với các Tag của PLC S7-1200 [2].
Tạo ra trang web này bằng cách sử dụng trình soạn thảo HTML sau đó tải chúng vào PLC. Web riêng này sẽ đƣợc nhúng vào trong Web server.
Hình 3. 14. Sơ đồ thể hiện tổng quát cách nhúng User-defined web
3.2.1. Cách tạo một trang HTML
Chúng ta có thể chọn lựa một trong số nhiều các ngôn ngữ lập trình để thiết kế một trang HTML sử dụng cho Web server nhƣng phải đảm bảo rằng phải tƣơng thích với các tiêu chuẩn W3C (World Wide Web Consortium).
Một dòng lệnh thiết lập charset cho trang web không thể thiếu và để đảm bảo đúng tiêu chuẩn UTF-8:
<meta http-equiv="content-type" content="text/html; charset=utf-8">
Các trang web chúng ta tự định nghĩa không tự làm mới. Nó là một phần không thể thiếu trong trang web của chúng ta. Đối với các trang hiện hiển thị dữ liệu của PLC thì việc làm mới định kỳ, giữ dữ liệu hiện tại rất cần thiết. Để tự động làm mới lại toàn bộ trang web có thể thêm dòng lệnh sau:
<meta http-equiv="Refresh" content="10">
Với số 10 là thời gian tự động làm mới trang web, có thể thay đổi đƣợc tùy theo ngƣời lập trình.
42
3.2.2. Các lệnh AWP hỗ trợ cho Web server S7-1200
Web server của S7-1200 cung cấp các lệnh AWP để liên kết trực tiếp với các Tag của PLC S7-1200
Bao gồm một số lệnh sau: - Đọc biến
- Ghi biến
- Đọc biến đặc biệt - Ghi biến đặc biệt - Xác định các loại enum - Phân bố các biến enum - Tạo khối dữ liệu mảnh
3.2.3. Cấu trúc chung
Ngoại trừ lệnh đọc một biến ra thì tất cả các lệnh còn lại đều có chung một cú pháp: <!-- AWP_ <command name and parameters> -->
Quy ƣớc:
Mục kèm theo trong dấu ngoặc [] là tùy chọn.
Mục kèm theo trong dấu ngoặc nhọn <> thể hiện tham số đƣợc xác định. Các dấu ngoặc kép chỉ đƣợc sử dụng khi đƣợc chỉ định.
Các ký tự đặc biệt trong Tag hoặc khối dữ liệu phải để trong dấu ngoặc kép.
3.2.4. Các lệnh AWP
3.2.4.1. Đọc biến từ PLC
Trang Web User-defined có thể đọc giá trị các biến của PLC S7-1200 Cấu trúc: :=<Varname>:
Bảng 3. 1. Các tham số của biến Varname để đọc biến từ PLC
<Varname>
Các biến đƣợc đọc là một Tag PLC, Tag khối dữ liệu, I/O, địa chỉ nhớ. Đối với bộ nhớ, I/O, tên riêng không sử dụng "tên Tag".
Đối với Tag khối dữ liệu thì dùng "tên Tag". Tên thẻ nằm ở bên ngoài dấu ngoặc kép.
43 Ví Dụ:
:="Conveyor_speed"::="My_Data_Block".flag1: :=I0.0:
:=MW100:
3.2.4.2. Ghi biến xuống PLC
Trang Web User-defined có thể ghi giá trị vào các biến của PLC S7-1200. điều này đƣợc thực hiện bằng cách sử dụng lệnh AWP. Biến phải đƣợc xác định bởi tên Tag PLC hoặc tên Tag khối dữ liệu, có thể khai báo nhiều tên biến bằng cách sử dụng lệnh POST.
Tên và điều khoản sử dụng, tên đầy đủ phải để trong ngoặc đơn. Tên Tag PLC và tên khối dữ liệu thì để trong dấu ngoặc kép. Sử dụng tên khối dữ liệu chứ không phải khối dữ liệu số.
Cấu trúc:
<!-- AWP_In_Variable Name='<Varname1>' [Use='<Varname2>'] ... -->
Các tham số:
Bảng 3. 2. Các tham số của Varname để ghi xuống
<Varname1>
Nếu không đƣợc cấp điều khoản sử dụng, Varname1 là biến số đƣợc viết. Nó thƣờng là một tên Tag PLC hoặc Tag khối dữ liệu Nếu cấp cho điều khoản sử dụng, Varname1 là một tên thay thế
cho biến tham chiếu <Varname2>
<Varname2> Nếu cấp điều khoản sử dụng, Varname2 là biến số đƣợc viết. Nó thƣờng là một tên Tag PLC hoặc Tag khối dữ liệu cụ thể. Ví dụ 1:
<!-- AWP_In_Variable Name='"Target_Level"' --> <form method="post">
<p>Input Target Level: <input name='"Target_Level"' type="text" /></p> </form>
44 Ví dụ 2:
<!--AWP_In_Variable Name='"Data_block_1".ManualOverrideEnable'--> <form method="post">
<select name='"Data_block_1".ManualOverrideEnable'>
<option value=:"Data_block_1".ManualOverrideEnable:> </option> <option value=1>Yes</option>
<option value=0>No</option>
</select><input type="submit" value="Submit setting" /></form>
Hình 3. 16. Submit setting
3.2.4.3. Đọc các biến đặc biệt
Web server cung cấp khả năng đọc các giá trị từ PLC để lƣu trữ các biến đặc biệt. Ví dụ nhƣ có thể đọc tên đƣờng dẫn từ một Tag PLC để chuyển hƣớng URL đến một vị trí khác bằng cách sử dung các HEADER: Vị trí biến đặc biệt.
Cấu trúc:
<!-- AWP_Out_Variable Name='<Type>:<Name>' [Use='Varname>'] -->
Bảng 3. 3. Các tham số đọc các biến đặc biệt
<Type>
Các biến đặc biệt thông thƣờng: HEADER
COOKIE_VALUE (giá trị cookie) COOKIE_EXPIRES (hạn dùng cookie)
<Name>
Tham khảo tài liệu HTTP (danh sách tất cả tên các biến HEADER.A)
Tên phải đƣợc đặc trong dấu nháy đơn hoặc kép.
Nếu không điều khoản sử dụng, tên biến đặc biệt tƣơng ứng với một Tag PLC
<Varname>
Tên Tag PLC hoặc Tag khối dữ liệu biến số đƣợc đọc vào phải đƣợc kèm theo dấu ngoặc kép.
45
Ví dụ: <!-- AWP_Out_Variable Name='"HEADER:Status"' -->
Biến đặc biệt là HEADER:Status, biến nhận giá trị của Tag PLC (HEADER:Status).
<!-- AWP_Out_Variable Name='HEADER:Status' Use='"Status"' -->
Biến đặc biệt là HEADER:Status, biến nhận giá trị của Tag PLC (Status).
3.2.4.4. Ghi các biến đặc biệt
Web server cung cấp tính năng ghi giá trị từ các biến đặc biệt trong tài liệu HTTP.
Khi đăng nhập quyền Admin chúng ta có thể ghi các giá trị của biến đó. Cấu trúc:
<!-- AWP_In_Variable Name='<Type>:<Name>' [Use='<Varname>']-->
Các tham số:
Bảng 3. 4. Các tham số ghi các biến đặc biệt
<Type>
Các biến đặc biệt thông thƣờng: HEADER
COOKIE_VALUE (giá trị cookie) COOKIE_EXPIRES (hạn dùng cookie)
<Name>
Tham khảo tài liệu HTTP (danh sách tất cả tên các biến HEADER.A) Các biến định nghĩa nhƣ: HEADER:Accept: HEADER:User-Agent: SERVER:current_user_id: SERVER:current_user_name: COOKIE_VALUE:<name>: Tên phải đƣợc đặc trong dấu ngoặc kép.
Nếu không điều khoản sử dụng, tên biến đặc biệt tƣơng ứng với một Tag PLC
<Varname>
Tên Tag PLC hoặc Tag khối dữ liệu biến số đƣợc đọc vào phải đƣợc kèm theo dấu ngoặc kép.
46 Ví dụ:
<!-- AWP_In_Variable Name='"SERVER:current_user_id"' -->
Biến đặc biệt là "SERVER:current_user_id", biến nhận giá trị của Tag PLC "SERVER:current_user_id"
<!--AWP_In_Variable Name=SERVER:current_user_id' Use='"my_userid"-->
Biến đặc biệt là "SERVER:current_user_id", biến nhận giá trị của Tag PLC "my_user_id"
3.2.4.5. Sử dụng bí danh cho các biến tham khảo
Chúng ta có thể sử dụng một bí danh trong trang web chúng ta tự định nghĩa để thay thế cho các biến ngõ vào và ngõ ra.
Có thể sử dụng các biểu tƣợng trong trang HTML để thay thế cho các biến đặc biệt bằng cách sử dụng các lệnh WAP.
Cấu trúc:
<-- AWP_In_Variable Name='<Varname1>' Use='<Varname2>' --> <-- AWP_Out_Variable Name='<Varname1>' Use='<Varname2>' -->
Các tham số:
Bảng 3. 5. Các tham số đọc các biến tham khảo
<Varname1> Tên bí danh hoặc tên biến đặc biệt. Varname1 phải đƣợc đặt trong dấu nháy đơn hoặc nháy kép.
<Varname2>
Tên của biến PLC mà chúng ta muốn chỉ định một tên bí danh. Biến có thể là một Tag PLC, Tag khối dữ liệu, biến đặc biệt
Varname2 đƣợc đặt trong dấu nháy đơn.
Tên các biến để trong dấu nháy kép, và là tên khối chứ không phải dữ liệu số.
Ví dụ:
<-- AWP_In_Variable Name='SERVER:current_user_id' Use='"Data_Block_10".server_user' -->
Trong đó tên biến đặc biệt là 'SERVER:current_user_id' đƣợc ghi vào Tag “server_user” trong khối dữ liệu "Data_Block_10"
47
3.2.4.6. Xác định loại enum
Cấu trúc:
<!-- AWP_Enum_Def Name='<Enum type name>' Values='<Value>, <Value>,... ' -->
Các tham số:
Bảng 3. 6. Các tham số xác định loại enum <Enum
type name>
Tên của kiểu liệt kê, đặt trong dấu nháy đơn hoặc dấu nháy kép
<Value> <constant>:<name>
Constant : một dãy giá trị liên tục cho việc phân loại enum, dãy này không có giới hạn.
Name : giá trị đƣợc gán cho các phần tử enum. Ví dụ:
<!-- AWP_Enum_Def Name='AlarmEnum' Values='0:"No alarms", 1:"Tank is full", 2:"Tank is empty"' -->
3.2.5. Cấu hình các trang web chúng ta tự định nghĩa
Để cấu hình các trang web chúng ta tự định nghĩa từ TIA, gồm các bƣớc sau: - Chọn loại CPU (1214c) trong giao diện chính của thiết bị.
- Kích hoạt cho phép “Web server” hoạt động.
- Kích hoạt cho phép trang “User-defined Web pages”.
48
- Di chuyển thƣ mục chứa trang web chúng ta tự định nghĩa vào trong thƣ mục của TIA. Sau đó trong chƣơng trình TIA, chỉ đƣờng dẫn đến thƣ mục chứa trang web chúng ta tự định nghĩa.
- Trong phần Default HTML page chính là trang web chúng ta tự định nghĩa
- Đặt tên cho web chúng ta tự định nghĩa ở phần Application name. - Cuối cùng là chọn Generate blocks để chƣơng trình tạo ra các khối DB - Trong phần Advanced bao gồm định dạng loại trang web thông thƣờng
là .htm; .html;.js và giá trị BD bắt đầu và kết thúc của web. - Có thể xóa các khối DB vừa tạo bằng nút Delete blocks. - Download xuống PLC s7-1200.
3.2.6. Lập trình để kích hoạt trang web chúng ta tự định nghĩa:
Để trang web chúng ta tự định nghĩa hoạt động và hiện lên trong trang web chuẩn của PLC s7-1200 thì bắt buộc phải lập trình bằng một khối dữ liệu trang chƣơng trình chính của TIA.
Khối dữ liệu đó là khối WWW, bằng cách gọi lệnh WWW và thiết lập các thông số.
Hình 3. 18. Khối lệnh WWW Chƣơng trình minh họa:
Hình 3. 19. Chƣơng trình minh họa WWW Ngõ vào CTRL_DB là cho biết giá trị bắt đầu của khối BD Ngõ ra RET_VAL là giá trị trả về.
49 3.3. TRUY CẬP WEB SERVER
3.3.1. Truy cập Web Server trên mạng LAN
Để có thể truy cập vào Web Server của PLC trong mạng LAN. PLC với một địa chỉ IP tĩnh sẽ đƣợc kết nối vào Router có nhiều cổng kết nối. Các máy tính cần sử dụng Web Server để điều khiển PLC sẽ đƣợc kết nối vào chung Router và sử dụng trình duyệt nhập địa chỉ IP của PLC để vào Web Server của PLC [2].
Ví dụ: IP PLC 192.168.1.2
Hình 3. 20. Sơ đồ liên kết trong mạng LAN
3.3.2. Truy suất Web Server trên mạng WAN
Để có thể truy cập Web Server của PLC từ mạng ngoài (internet). IP của PLC phải đƣợc gán vào Router Internet và mở cổng cho địa chỉ IP đó trên Router. Máy tính từ mạng ngoài nhập địa chỉ IP tĩnh của Router và cổng thì sẽ truy cập đƣợc vào Web Server của PLC.
Ví dụ: IP PLC: 192.168.1.2
- IP PLC đƣợc gán vào Router và mở cổng: 192.168.1.2 và cổng 80 (cổng http)
- IP tĩnh của Router Internet (IP của router trên internet): 42.119.229.13
Vậy địa chỉ nhập vào trình duyệt của các máy tính truy cập Web Server của PLC từ mạng internet: 42.119.229.13:80. Máy tính sẽ theo địa chỉ IP tĩnh của Router truy cập đến Router và vào cổng 80 của router để vào thẳng địa chỉ 192.168.1.2 trang Web Server của PLC hiện ra.
50
Hình 3. 21. Sơ đồ liên kết trong mạng WAN
3.4. THỰC NGHIỆM SỬ DỤNG WEB SERVER ĐIỀU KHIỂN PLC
3.4.1. Thực nghiệm sử dụng Web Server điều khiển PLC bằng mạng Internet
Nguyên lý hoạt động của thực nghiệm [6]:
PLC đƣợc kết nối internet thông qua Router ADSL TP Link TD 8840T. PLC đƣợc gán địa chỉ IP và mở cổng trong Router ADSL. Sử dụng máy tính đƣợc kết nối Internet thông qua mạng khác ( mạng ADSL, mạng 3G... mạng khác mạng ADSL đang sử dụng cho PLC) trong thực nghiệm máy tính truy cập đƣợc sử dụng mạng 3G Viettel.
Thông số kỹ thuật cài đặt:
- IP tĩnh hoạt động trong mạng LAN của PLC: 192.168.1.221
- IP tĩnh hoạt động trong mạng LAN của Router ADSL: 192.168.1.1 - IP tĩnh hoạt động trong mạng Internet của Router ADSL: 42.119.229.13 - Cổng cần mở cho PLC khí gán IP vào Router: port 80 (HTTP_Server)
3.4.1.1. Kết nối các thiết bị xây dựng hệ thống liên kết của ví dụ
PLC đƣợc kết nối với Router ADSL TP-Link TD-8840T thông qua cáp Ethernet màu vàng. Router ADSL TP-Link TD-8840T đƣợc kết nối với mạng Internet thông qua line FPT.
51
Hình 3. 22. Các thiết bị kết nối của Ví dụ
Máy tính dùng để truy cập từ mạng khác mạng ADSL FPT mà PLC sử dụng, đƣợc kết nối với Internet thông qua Dcom 3G Viettel.
52
3.4.1.2. Thực hiện các thao tác cài đặt IP PLC vào Router ADSL
Cài đặt địa chỉ IP tĩnh cho PLC trong mạng LAN.
Hình 3. 24. Cài đặt giá trị IP của PLC
Mở trình duyệt web truy cập vào địa chỉ http://192.168.1.1 . Đăng nhập bằng tài khoản: admin ; mật khẩu: admin. Để vào đƣợc cài đặt của của Router ADSL.
53
Giao diện cài đặt Router ADSL TP Link TD 8840T hiện ra, click vào Tag Advance Setup và chọn phần NAT.
Hình 3. 26. Công cụ NAT trong Advanced Setup
Giao diện NAT hiện ra chọn phần Virtual Server để thực hiện thao tác mở cổng. Trong giao diện Virtual Server dòng Application chọn HTTP_Server (port 80) và điền địa chỉ IP của PLC 192.168.1.221 vào dòng Local IP Address và nhấn Save hoàn tất cài đặt.
54
Sử dụng trình duyệt vào địa chỉ http://www.yougetsignal.com. Trang web sẽ cung cấp địa chỉ IP tĩnh trên Internet của Router 42.119.229.13 và kiểm tra cổng 80 đã mở thành công chƣa nhấn nút Check nếu dòng bên dƣới báo "Port 80 is open on 42.119.229.13".
Hình 3. 28. Kiểm tra Port và IP tĩnh Router
3.4.1.3. Thao tác truy cập Web Server từ mạng Internet
Máy tính dùng để truy cập Web Server đƣợc kết nối Internet thông qua Dcom 3G Viettel ( PLC đƣợc kết nối vào Internet thông qua mạng ADSL FPT nên hai mạng này khác nhau liên kết với nhau thông qua Internet).
55
Trên máy tính truy cập mở trình duyệt Web vào địa chỉ http:// 42.119.229.13:80 (IP tĩnh của Router ADSL: cổng đã mở để dẫn đến ứng dụng Web Server của PLC).
Hình 3. 30. Web Server PLC S7-1200 hiện lên trên Internet
Trang Web Server hiện ra nhấn Enter để vào bên trong. Đăng nhập PLC bằng tài khoản: admin ; mật khẩu: 123654. Vào phần User Pages chọn Homepage of the application. Hiện ra trang web ngƣời lập trình đã tạo.
56
Hình 3. 32. Trang chúng ta điều khiển
3.4.2. Thực hiện tao tác điều khiển PLC
Nhấn nút Start thì bóng đèn 220VAC đƣợc bật sáng và đèn báo đèn đã bật đƣợc bật chuyển sang xanh.
57
Nhấn nút Stop thì bóng đèn tắt và đèn báo đèn đã bật đƣợc chuyển sang màu đỏ.
Hình 3. 34. Đèn đã đƣợc tắt thông qua điều khiển từ Internet
Ghi giá trị muốn ghi xuống PLC nhấn nút "Cai Đat Gia Tri", giá trị vừa đƣợc ghi sẽ đƣợc ghi xuống PLC và hiển thị giá trị vừa đƣợc ghi trên web thông qua mục "Giá trị đã ghi vào PLC: ".
58
Hình 3. 36. Tải giá trị xuống PLC thành công.
Hoàn tất thực nghiệm về sử dụng máy tính thông qua Internet truy cập Web Server và điều khiển PLC bật tắt đèn.