49 0 3MB
Hướng dẫn lập trình PLC SIEME NS
Nhóm đồ án 1 20192 thầy Dương Minh Đức
Mục lục: Chương 1. Giới thiệu chung về TIA Portal 1.1. Tổng quan về hệ TIA portal
1.2. Làm quen với TIA portal Chương 2. Lập trình một project PLC với Step 7 2.1. Tạo một project với TIA portal 2.2. Các kiểu dữ liệu trong được quy định trong TIA portal (Help/Programing a PLC/ Data types) 2.3. PLC Tags (Help/Programing a PLC/Declaring PLC tags) 2.4. Các khối hàm trong PLC (Help/Programing a PLC/Programing Basic/ Blocks in the user program) 2.5. Ngôn ngữ Ladder và các lệnh thường gặp 2.5.1.
Nhóm lệnh bit
2.5.2.
Nhóm lệnh Timer
2.5.3.
Nhóm lệnh counter và so sánh
2.5.4.
Thời gian trong PLC
2.5.5.
Tín hiệu tương tự và các lệnh toán học, chuyển đổi
2.6. Bài toán tuần tự và ngôn ngữ Graph 2.6.1.
Các phần tử cơ bản trong ngôn ngữ Graph
2.6.2.
Ví dụ bài toán đóng nhãn sản phẩm
2.6.3.
Ví dụ bài toán công nghệ robot gắp vật
Chương 3. Giao diện người máy HMI 3.1. Một số quy tắc thiết kế cơ bản 3.2. Màn hình vận hành và các phần tử cơ bản
Chương 1. Giới thiệu chung về TIA Portal 1.1. Tổng quan về hệ TIA portal TIA Portal: Total Intergrated Automation Portal, là phần mềm cơ sở tích hợp tất cả các phần mềm cấu hình, lập trình cho các hệ tự động hóa và truyền động điện: PLC, HMI, Inverter của Siemens. - Ưu điểm: tích hợp tất cả trong 1 phần mềm, 1 giao diện, tạo ra sự nhất quán trong việc cấu hình hệ thống. - Nhược điểm: dung lượng phần mềm lớn, yêu cầu cấu hình máy tính cao, ban đầu khó làm quen đối với người mới học. Các thành phần trong bộ cài TIA Portal: Siemens cung cấp rất nhiều gói phần mềm để hỗ trợ các kỹ sư triển khai một hệ thống tự động hóa. Tuy nhiên không phải phần mềm nào chúng ta cũng cần. Chính vì vậy, ta cần biết các thành phần cơ bản của bộ TIA Portal. Điều này giúp các bạn hiểu rõ hơn cái nào cần cài, cái nào không. Tránh trường hợp cài hết tất cả khiến máy rất nặng.
STEP 7 Professional.
Trong bộ cài, đây là thành phần quan trọng nhất. Step 7 là công cụ để cấu hình và lập trình cho tất cả các bộ điều khiển SIMATIC PLC. Bao gồm S7-1200, 1500, 300, 400. WinCC Comfort/Advanced/Professional. Mặc định bản Basic sẽ được cài cùng với STEP 7. Nếu chúng ta chỉ cần lập trình cho các HMI cơ bản thì không cần cài thêm bộ WinCC này. Tuy nhiên, nếu các bạn cần thiết kế SCADA chạy trên máy tính hoặc cho các PC công nghiệp thì sẽ cần cài thêm bản Comfort/Advanced/Professional. Về sự khác nhau giữa các phiên bản được thể hiện trong hình bên dưới.
WinCC Runtime Comfort/Advanced/Professional. Chúng ta thường nhầm lẫn chức năng giữa bản WinCC Runtime (RT) và bản WinCC Engineering. Sau đây chúng ta hãy cùng so sánh chức năng của 2 phiên bản này: ● WinCC Runtime Basic/Advanced/Professional: chạy giao diện HMI/SCADA đã thiết kế sẵn. ● WinCC Basic/Advanced/Professional: (không có chữ RT) tạo và thiết kế giao diện HMI/SCADA. Bản WinCC RT được cài phải cùng loại với bản WinCC Engineering tạo ra project. Ví dụ project SCADA được tạo từ bản Professional thì phải cài RT Professional. *Tóm lại, máy laptop của kỹ sư được cài bản WinCC Engineering để thiết kế giao diện SCADA. Sau đó, các máy tính vận hành chỉ cần cài bản WinCC RT để chạy giao diện SCADA vừa thiết kế này. Việc cài bản RT sẽ không cho phép các nhân viên vận hành tác động/sửa chữa vào chương trình. STEP 7 Startdrive. Startdrive là phần mềm cho phép các bạn cấu hình biến tần trực tiếp trên TIA và down xuống thiết bị. Ngoài ra, trong startdrive sẽ có các tính năng chuẩn đoán giúp chúng ta theo dõi sự hoạt động của biến tần dễ dàng hơn. Lưu ý là nếu trong project có cấu hình bằng startdrive thì khi mở project đó lên, TIA của các bạn phải cài startdrive tương ứng thì mới mở được. SIMOCODE Đi kèm với Startdrive thì chúng ta sẽ có bộ SIMOCODE. Simocode là gói phần mềm quản lý động cơ trong quá trình hệ thống hoạt động. Chúng ta có thể theo dõi dễ dàng các thông số điện áp, dòng, pha, tình trạng quá tải của động cơ và gửi về hệ thống thông qua các chuẩn truyền thông như profibus, profinet… Các lợi ích của phần mềm SIMOCODE: ● Tăng hiệu suất: điều khiển, giám sát động cơ tại phòng điều khiển thông qua các giao diện chuyên nghiệp ● Giảm thời gian chết của động cơ. ● Quản lý và tiết kiệm năng lượng ***PLC SIM PLC SIM sẽ giúp chúng ta mô phỏng một PLC thật chạy trên máy tính. Vì vậy nếu các bạn không có thiết bị PLC cũng chả sao. Chỉ cần bật PLC SIM lên và chạy.
Chúng ta sẽ có 2 loại PLC Sim. Nếu các bạn mô phỏng S7 300, 400 thì mặc định STEP 7 đã có sẵn PLC Sim rồi. Trường hợp thứ 2, nếu các bạn mô phỏng S7-1200 hay 1500 thì bắt buộc phải cài thêm PLC SIM. Lưu ý: PLC SIM này dùng để mô phỏng S7 1200 và S7 1500. Vì vậy nếu các bạn dùng S7 300 hay S7 400 thì không cần cài vẫn có thể mô phỏng được. PLC SIM Advanced. Chúng ta thắc mắc là đã có PLC SIM là đủ rồi, tại sao lại có thêm PLC SIM Advance? Câu trả lời là PLC SIM Advanced sẽ bổ sung thêm các tính năng của PLC thật mà PLC SIM thông thường chưa mô phỏng được. Đó là: truyền thông và Web server. 1.2. Làm quen với TIA portal Giao diện phần mềm TIA portal V15 TIA portal có 2 giao diện làm việc là: ● Portal view: hỗ trợ cấu hình theo định hướng nhiệm vụ ( Bộ khung) ● Project view: hỗ trợ cấu hình hướng đối tượng ( Chi tiết ) Trong quá trình làm việc chương trình sẽ tự động chuyển đổi từ Portal view sang Project view. Ví dụ, bạn đang trong giao diện Portal view và bạn chọn lập trình cho PLC, chương trình sẽ chuyển sang giao diện Project view và bạn sẽ viết chương trình ở trong giao diện Project view. Bạn có thể dễ dàng chuyển đổi qua lại 2 giao diện nếu muốn. Giao diện Portal view: Mục tiêu của giao diện này là cung cấp một điều hướng đơn giản trong các nhiệm vụ và dữ liệu của project.
1. Các
mục với các chức năng cụ thể: ➔ Start: Bắt đầu
➔ Devices & networks: Cấu hình thiết bị và các kết nối ➔ PLC programming: Cấu hình chương trình cho PLC ➔ Motion & technology: Các công nghệ và chuyển động ➔ Visualization: Cấu hình hiển thị ➔ Online & Diagnostics: Kiểm tra kết nối các thiết bị và chuẩn đoán lỗi. 2. Các tác vụ trong mục 1 3. Bảng lựa chọn cho tác vụ đã chọn 4. Chuyển sang giao diện Project view. Giao diện Project view: Giao diện này có cấu trúc của tất cả các thành phần của project. Trong Project view có nhiều trình soạn thảo khác nhau có sẵn mà bạn có thể sử dụng để tạo và chỉnh sửa project tương ứng các với các thành phần.
1.
Thanh Menu
2. Thanh công cụ 3. Cây project 4. Khu vực làm việc 5. Thẻ tác vụ 6. Xem chi tiết 7. Cửa sổ kiểm tra
8. Chuyển sang giao diện Portal view
Chương 2. Lập trình một project PLC với Step 7 2.1. Tạo một project với TIA portal Đầu tiên ta phải mở phần mềm TIA Portal, ở đây mình dùng TIA Portal V15.1
Đây là giao diện Portal view của TIA Portal sau khi ta mở nó lên
Ở đây ta quan tâm tới các mục :
Để mở project có sẵn, ta nhấp đúp chuột vào project cần mở trong danh sách project đã được tạo hoặc chọn rồi nhấp chọn Open
Để tạo 1 project mới ta nhấp vào Create new project
Sau khi nhấp Create new project, ta nhập thông tin project: -
Ta đặt tên Project ở Project name, ở đây mình đặt là Beginner.
-
Nơi lưu project ở Path (thường cứ để mặc định)
-
Chọn phiên bản ở Version ( phần lớn cài 1 phiên bản thôi nên ở đây cũng không có gì mà chọn )
-
Đặt tên người tạo ở mục Author, ở đây mình để mặc định là Admin
Sau khi đã nhập thông tin xong, ta nhấp Create , vậy là ta đã tạo thành công 1 project. Thêm PLC vào Project
Ta nhấp vào mục Configure a device để chọn thiết bị
Ta sẽ đến mục Show all devices, ở đây sẽ hiển thị tất cả những thiết bị trong project, do project này vừa được tạo, chưa có thiết bị nào nên mục này sẽ trống.
Để thêm thiết bị, ta nhấp vào mục Add new device
Ta sẽ thấy các PLC trong mục Controller, ở đây mình chọn PLC S7-1212C DC/DC/DC, ta mở SIMATIC S7-1200 > CPU > CPU 1212C DC/DC/DC
Ta sẽ thấy danh sách những phiên bản của 1212C DC/DC/DC, ở đây mình chọn phiên bản V4.2, ta có thể thấy thông số của PLC ở mục Description. Để thêm ta nhấp đúp vào PLC hoặc chọn rồi nhấp vào Add
Vậy là ta đã thêm PLC S7-1212C DC/DC/DC vào trong project.
*Nếu muốn thêm PLC ta nhấp vào Add new device rồi làm tương tự :
Như vậy, mình đã tạo được project có tên Beginner và có PLC là 1212C DC/DC/DC. Đặt địa chỉ IP cho PLC Đầu tiên ta nhấp vào mục Device configuration sau đó nhấp vào cổng RJ45 trên PLC.
Tại cửa sổ kiểm tra, ta nhấp vào Ethernet addresses rồi điền địa chỉ IP vào phần IP Protocol, ở đây mình đặt là 192.168.0.7. Nhập xong địa chỉ IP cho PLC, ta nhấp vào Save Project.
Như vậy là ta đã đặt thành công địa chỉ IP cho PLC.
Viết chương trình điều khiển cho PLC
Để viết chương trình điều khiển cho PLC, ta nhấp vào mục Main trong Program blocks
Mặc định, ta sẽ dùng ngôn ngữ LADDER
Để thêm vào mạch logic, ta nhấp vào mạch logic, rồi nhấp vào các tiếp điểm ở mục thêm nhanh hoặc thêm từ mục các Operation bằng cách kéo thả vào mạch logic. Ví dụ ở đây mình sẽ viết chương trình tắt mở đèn có hàm điều khiển như sau: Lamp=(Start+Lamp).Stop
Đầu tiên, mình sẽ thêm các tiếp điểm, đầu ra
Sau đó, ta phải đặt địa chỉ cho các tiếp điểm, đầu ra vừa thêm. Để đặt địa chỉ, ta nhấp vào rồi đánh địa chỉ vào. Biến đầu vào có dạng Ix.y, ví dụ mình đặt Start là I0.0, Stop là I0.1 ( có thể là I0.2, I1.3, I3.1 tùy các bạn nhưng y phải không lớn hơn 7)
Biến đầu ra có dạng Qx.y, ví dụ mình đặt Lamp là Q0.0( tương tự bạn cũng có thể đặt nhưu biến đầu vào) Ta thấy, ở mạch logic giờ đã hiển thị đầy đủ các biến vào ra, mạch đã hoàn chỉnh và ta hoàn toàn có thể chạy được. Tuy nhiên để tiện cho việc quan sát, cũng như những thao tác khác, ta nên đặt Tag cho các biến vào, ra. Mặc định chương trình đặt là Tag_1, Tag_2,… để thay đổi ta nhấp vào tiếp điểm, rồi nhấn tổ hợp phím Ctrl+Shift+t, bảng Rename tag sẽ xuất hiện. Ta điền tên Tag muốn đặt vào rồi nhấn Change.
Tương tự ta đặt cho các biến còn lại:
Ta có thể quản lý các tag trong phần PLC tags
Như vậy ta đã tạo 1 chương trình cho PLC đồng thời đặt địa chỉ cho các đầu vào đầu ra cho PLC. 2.2. Các kiểu dữ liệu trong được quy định trong TIA portal Các nhóm kiểu dữ liệu xác định các thuộc tính của dữ liệu, ví dụ: biểu diễn nội dung và vùng nhớ hợp lệ.Trong chương trình người dùng, bạn có tùy chọn sử dụng các loại dữ liệu được xác định trước mà bạn thêm vào các loại dữ liệu bạn đã tự xác định. Bảng sau đây xác định các kiểu dữ liệu cơ bản:
Kiểu dữ liệu
Kích
Phạm vi
Ví dụ
thước(bit) Bool
1
0 đến 1
TRUE, FALSE, 0, 1
Byte
8
16#00 đến 16#FF
16#12, 16#AB
Word
16
16#0000 đến 16#FFFF
16#ABCD, 16#0001
DWord
32
16#00000000 đến
16#02468ACE
16#FFFFFFFF Char
8
16#00 đến 16#FF
A, t, @
SInt
16
-128 đến 127
123, -123
Int
16
-32768 đến 32767
123, -123
DInt
32
-2147483648 đến 2147483647
123, -123
123, -1 USInt
8
0 đến 255
123
UInt
16
0 đến 65535
123
UDInt
32
0 đến 4294967295
132
Real
32
+/- 1.18 x 10 -38 đến +/- 3.40
123456, -3.4, -1.2E+12,
x 10 38
3.4E-3
LReal
Time
32
32
+/- 2.23 x 10 -308 đến +/- 1.79 13245.123456789, x 10 308
1.2E+40
T#-24d_20h_31m_23s_648ms
T#5m_30s 5#-2d
đến
T#1d_2h_15m_30s_45ms
T#24d_20h_31m_23s_647ms Được lưu trữ dưới dạng : -2147483648 ms đến +2147483647 ms
Định dạng cho các số thực: Các số thực (hay số có dấu chấm động) được hiển thị đưới dạng số với độ chính xác đơn 32 bit (Real) hay số độ chính xác kép 64 bit (LReal) như được miêu tả trong tiêu chuẩn ANSI/IEEE 754-1985. Các số dấu chấm động với độ chính xác đơn là chính xác đến tối đa 6 chữ số có nghĩa và các số dấu chấm động với độ chính xác kép là chính xác đến tối đa 15 chữ số có nghĩa. Ta có thể chỉ định tối đa 6 chữ số có nghĩa (kiểu Real) hay 15 chữ số có nghĩa (LReal) khi nhập vào một hằng số dấu chấm động để duy trì độ chính xác. Các tính toán có liên quan đến một chuỗi dài các giá trị gồm các số rất lớn hay rất nhỏ có thể tạo ra các kết quả không chính xác. Điều này có thể xuất hiện nếu các số hơn kém nhau đến 10 lũy thừa x, trong đó x > 6 (kiểu Real) hay x > 15(kiểu LReal). 2.3. PLC Tags Các bảng PLC tags chứa các định nghĩa về các thẻ PLC và các hằng số ký hiệu có giá trị trong toàn bộ CPU. Một bảng PLC tags được tạo tự động cho mỗi CPU được sử dụng trong dự án. Bạn có thể tạo các bảng thẻ bổ sung và sử dụng các bảng này để sắp xếp và nhóm các thẻ và hằng số. Trong cây dự án có một thư mục "PLC tags" cho mỗi CPU của dự án. Các bảng sau đây được bao gồm: +Bảng "all tags" +Bảng thẻ tiêu chuẩn +Tùy chọn: Các bảng thẻ do người dùng xác định khác All tags: Bảng "all tags" cung cấp tổng quan về tất cả các thẻ PLC, hằng số người dùng và hằng số hệ thống của CPU. Bảng này không thể bị xóa hoặc di chuyển. Bảng thẻ tiêu chuẩn: Có một bảng thẻ tiêu chuẩn cho mỗi CPU của dự án. Nó không thể bị xóa, đổi tên hoặc di chuyển. Bảng thẻ mặc định chứa các thẻ PLC, hằng số người dùng và hằng hệ thống. Bạn có thể khai báo tất cả các thẻ PLC trong bảng thẻ mặc định hoặc tạo các bảng thẻ do người dùng xác định bổ sung theo ý muốn. Bảng thẻ do người dùng định nghĩa: Bạn có thể tạo nhiều bảng thẻ do người dùng xác định cho từng CPU để nhóm thẻ theo yêu cầu của bạn. Bạn có thể đổi tên, tập hợp thành các nhóm hoặc xóa các bảng thẻ do người dùng xác định. Bảng thẻ do người dùng xác định có thể chứa thẻ PLC và hằng số người dùng. Cấu trúc của bảng “PLC tags”: Trong tab "tags", bạn khai báo các thẻ PLC mà bạn yêu cầu trong chương trình. Hình dưới đây cho thấy cấu trúc tab, số lượng cột hiển thị có thể thay đổi:
Bảng dưới đây cho thấy ý nghĩa của các cột riêng lẻ. Số lượng cột hiển thị có thể khác nhau. Bạn có thể hiển thị hoặc ẩn các cột theo yêu cầu
Cột
Ý nghĩa Biểu tượng bạn có thể nhấp vào để kéo và thả thẻ vào chương trình để sử dụng làm toán hạng.
Name
Tên duy nhất cho các hằng số trong suốt CPU.
Tag table
Hiển thị bảng thẻ nào bao gồm khai báo thẻ
Data type
Kiểu dữ liệu của thẻ
Address
Địa chỉ thẻ
Retain
Đánh dấu các thẻ giữ lại, các giá trị của thẻ được giữ lại kể cả sau khi tắt nguồn điện
Accessible from
Cho biết liệu HMI / OPC UA có thể truy cập thẻ này trong
HMI/OPC UA
thời gian chạy hay không
Writable from
Cho biết liệu thẻ từ HMI / OPC UA có thể được ghi trong thời
HMI/OPC UA
gian chạy
Visible in HMI
Hiển thị cho dù thẻ được hiển thị theo mặc định trong lựa chọn
engineering
toán hạng của HMI.
Cấu trúc của tab "user constant" và "system constant": Trong " user constant ", bạn xác định các hằng số tượng trưng có giá trị trong toàn bộ CPU. Các hằng số theo yêu cầu của hệ thống được hiển thị trong tab " system constant ". Các hằng số hệ thống có thể là ID phần cứng, ví dụ, có thể được sử dụng để nhận dạng các mô-đun Bảng dưới đây cho thấy ý nghĩa của các cột riêng lẻ. Bạn có thể hiển thị hoặc ẩn các cột theo yêu cầu Cột
Ý nghĩa Biểu tượng bạn có thể nhấp để di chuyển thẻ vào mạng thông qua thao tác kéo và thả để sử dụng làm toán hạng
Name
Tên duy nhất cho các hằng số trong suốt CPU.
Data type
Kiểu dữ liệu của hằng số
Value
Giá trị của hằng số
Comment
Nhận xét để ghi lại các thẻ
Các quy tắc sau áp dụng cho việc đặt tên thẻ: + Chữ cái, số, ký tự đặc biệt được cho phép. + Việc sử dụng các từ khóa dành riêng không được khuyến khích. + Dấu ngoặc kép không được phép là một thành phần của tên thẻ. + Tên thẻ là duy nhất 2.4. Các khối hàm trong PLC Các giải pháp cho các nhiệm vụ tự động hóa nhỏ có thể được lập trình tuyến tính trong một chu trình OB của chương trình. Điều này chỉ được khuyến nghị cho các chương trình đơn giản. Hình dưới đây cho thấy một chương trình tuyến tính theo sơ đồ: OB chu trình "Chính" chứa chương trình người dùng hoàn chỉnh.
Lập trình cấu trúc: Các tác vụ tự động hóa phức tạp có thể được xử lý và quản lý dễ dàng hơn bằng cách chia chúng thành các tác vụ phụ nhỏ hơn tương ứng với các chức năng công nghệ của quy trình hoặc có thể được sử dụng lại. Các tác vụ phụ này được thể hiện trong chương trình người dùng theo các khối. Mỗi khối sau đó là một phần độc lập của chương trình người dùng. Cấu trúc chương trình cung cấp các lợi thế sau: +Các chương trình mở rộng dễ dàng hơn để lập trình thông qua cấu trúc.
+Các phần chương trình riêng lẻ có thể được tiêu chuẩn hóa và được sử dụng nhiều lần với các thông số thay đổi. +Chương trình tổ chức được đơn giản hóa. +Thay đổi chương trình có thể được thực hiện dễ dàng hơn. +Gỡ lỗi được đơn giản hóa vì các phần riêng biệt có thể được kiểm tra. +Vận hành được đơn giản hóa. Hình dưới đây cho thấy một chương trình có cấu trúc theo sơ đồ: OB chu trình "Chính" gọi các chương trình con liên tiếp để thực hiện các nhiệm vụ được xác định
Các loại khối: Các loại BLOCK khác nhau có sẵn để thực hiện các tác vụ trong một hệ thống tự động. Hình dưới đây cho ta thấy các loại khối có sẵn OB, FB, FC, DB.
Organization blocks - Khối tổ chức (OB): Các khối tổ chức cung cấp cấu trúc cho chương trình. Chúng đóng vai trò như một giao diện giữa hệ điều hành và chương trình người dùng.Các OB được điều khiển theo sự kiện. Một sự kiện, ví dụ như một ngắt chẩn đoán hay một khoảng thời gian dừng, sẽ làm cho CPU thực hiện một OB. Một vài OB có các sự kiện khởi động cách hoạt động được định trước. OB chu kỳ chương trình chứa chương trình chính của người dùng. Ta có thể bao gồm nhiều hơn một OB chu kỳ chương trình trong chương trình. Trong suốt chế độ RUN, các OB chu kỳ chương trình thực thi tại mức ưu tiên thấp nhất và có thể bị ngắt bởi tất cả các việc xử lý
chương trình khác. OB khởi động không ngắt OB chu kỳ chương trình bởi vì CPU thực thi OB khởi động trước khi đi vào chế độ RUN. Sau khi hoàn thành việc xử lý các OB chu kỳ chương trình, CPU ngay lập tức thực thi một lần nữa các OB chu kỳ chương trình. Việc xử lý theo chu kỳ này là dạng “bình thường” của kiểu xử lý được sử dụng cho các bộ điều khiển logic khả trình. Đối với nhiều ứng dụng, chương trình người dùng toàn bộ được định vị trong OB chu kỳ chương trình đơn lẻ. Ta có thể tạo ra các OB khác để thực hiện các hàm đặc trưng, ví dụ như các tác vụ khởi động, dành cho việc xử ký các ngắt và các lỗi, hay dành cho thực thi mã chương trình đặc trưng tại các khoảng thời gian dừng riêng biệt. Các OB này ngắt việc thực thi các OB chu kỳ chương trình. Nếu ta tạo ra nhiều OB chu kỳ chương trình, chương trình sẽ thực thi mỗi OB theo trình tự bằng số. Function - hàm (FC) Các hàm (Hàm (FC) là một khối mã không có bộ nhớ theo tiêu chuẩn IEC 1131-3. Hàm này cung cấp cho bạn tùy chọn để chuyển các tham số trong chương trình người dùng. Do đó, các hàm đặc biệt phù hợp cho các cấu trúc phức tạp thường xuyên lặp lại, như tính toán.) (FC) là các khối mã không có bộ nhớ. Bạn không có bộ nhớ dữ liệu trong đó các giá trị của các tham số khối có thể được lưu trữ. Do đó, khi một hàm được gọi, tất cả các tham số chính thức phải được gán tham số thực tế. Các chức năng có thể sử dụng các khối dữ liệu (Một khối dữ liệu được sử dụng để lưu trữ dữ liệu người dùng. Có các khối dữ liệu toàn cầu có thể được truy cập bởi tất cả các khối mã và khối dữ liệu cá thể được gán cho một cuộc gọi FB cụ thể.) Để lưu trữ dữ liệu vĩnh viễn. Một hàm chứa một chương trình được thực thi khi hàm được gọi bởi một khối mã khác. Các chức năng có thể được sử dụng, ví dụ, cho các mục đích sau: +Để trả về giá trị hàm cho khối gọi, ví dụ: cho các hàm toán học +Để thực thi các chức năng công nghệ, ví dụ: điều khiển riêng bằng cách sử dụng các hoạt động logic bit Một chức năng cũng có thể được gọi nhiều lần tại các điểm khác nhau trong một chương trình. Kết quả là, họ đơn giản hóa việc lập trình các chức năng thường xuyên lặp lại. Function blocks - Khối chức năng (FB)
Các khối chức năng là các khối mã lưu trữ các tham số đầu vào, đầu ra và đầu ra vĩnh viễn trong các khối dữ liệu cá thể, do đó chúng vẫn có sẵn ngay cả sau khi khối được thực thi. Do đó, chúng cũng được gọi là các khối "với bộ nhớ". Các khối chức năng cũng có thể hoạt động với các thẻ tạm thời. Các thẻ tạm thời sẽ không được lưu trữ trong DB, nhưng chỉ có sẵn cho một chu kỳ. Các khối chức năng chứa các chương trình con luôn được thực thi khi một khối chức năng được gọi bởi một khối mã khác. Một khối chức năng cũng có thể được gọi nhiều lần tại các điểm khác nhau trong một chương trình. Kết quả là, họ đơn giản hóa việc lập trình các chức năng thường xuyên lặp lại. Một cuộc gọi của một khối chức năng được gọi là một thể hiện. Một khối dữ liệu cá thể được yêu cầu cho mỗi phiên bản của khối chức năng; nó chứa các giá trị cụ thể cho các tham số chính thức được khai báo trong khối chức năng. Khối chức năng có thể lưu trữ dữ liệu cụ thể của cá thể trong khối dữ liệu cá thể của chính nó hoặc trong khối dữ liệu cá thể của khối gọi. Data block – khối dữ liệu (DB) Khối dữ liệu được sử dụng để lưu trữ dữ liệu chương trình. Do đó, các khối dữ liệu chứa dữ liệu biến được sử dụng bởi chương trình người dùng. Các khối dữ liệu toàn cầu lưu trữ dữ liệu có thể được sử dụng bởi tất cả các khối khác. Kích thước tối đa của các khối dữ liệu khác nhau tùy thuộc vào CPU. Bạn có thể xác định cấu trúc của các khối dữ liệu toàn cầu bằng mọi cách bạn muốn. Mọi khối chức năng, chức năng hoặc khối tổ chức có thể đọc dữ liệu từ khối dữ liệu chung hoặc có thể tự ghi dữ liệu vào khối dữ liệu chung. Dữ liệu này vẫn còn trong khối dữ liệu ngay cả sau khi khối dữ liệu được thoát. Một khối dữ liệu chung và một khối dữ liệu cá thể có thể được mở cùng một lúc. 2.5. Ngôn ngữ Ladder và các lệnh thường gặp 2.5.1.
Nhóm lệnh bit
Các tiếp điểm:
Ta có thể kết nối các tiếp điểm với nhau và tạo ra mạch logic kết nối. Nếu bit ngõ vào mà ta chỉ rõ sử dụng bộ định danh I (ngõ vào) hay Q (ngõ ra), giá trị bit sẽ được đọc từ một thanh ghi ảnh tiến trình. Các tín hiệu tiếp điểm vật lý trong tiến trình điều khiển được nối đến các đầu cực I trên PLC. CPU quét các tín hiệu ngõ vào được nối và cập nhật liên tục các giá trị tương ứng trong thanh ghi ngõ vào ảnh tiến trình. Ta có thể ghi rõ một kết quả tức thời của một ngõ vào vật lý bằng cách sử dụng “:P” theo sau sự dịch chỉnh I (ví dụ: “%I3.4:P”). Đối với một kết quả tức thời, các giá trị dữ liệu bit được đọc một cách trực tiếp từ ngõ vào vật lý thay vì từ ảnh tiến trình. Một kết quả tức thời thì không cập nhật ảnh tiến trình. Thông số
Kiểu dữ liệu
Miêu tả
IN
Bool
Bit được gán giá trị
Tiếp điểm thường hở NO (Normally Open) được đóng lại (ON) khi giá trị bit được gán bằng 1. Tiếp điểm thường đóng NC (Normally Closed) được đóng lại (ON) khi giá trị bit được gán bằng 0. Các tiếp điểm được nối nối tiếp sẽ tạo ra mạch logic AND. Các tiếp điểm được nối song song sẽ tạo ra mạch logic OR. Bộ đảo logic NOT:
Tiếp điểm NOT (LAD) chuyển đổi trạng thái logic của đầu vào dòng tín hiệu. · Nếu không có dòng tín hiệu vào trong tiếp điểm NOT, sẽ có dòng tín hiệu đi ra. · Nếu có dòng tín hiệu vào trong tiếp điểm NOT, sẽ không có dòng tín hiệu đi ra. Cuộn dây ngõ ra:
Lệnh xuất cuộn dây sẽ ghi một giá trị cho một bit ngõ ra. Nếu bit ngõ ra ta chỉ ra sử dụng định danh bộ nhớ Q, thì sau đó CPU sẽ chuyển bit ngõ ra trong thanh ghi ảnh tiến trình về on hoặc off, thiết lập giá trị bit được gán bằng với trạng thái luồng tín hiệu. Các tín hiệu ngõ ra
cho cơ cấu điều khiển được nối đến các đầu cực Q của S7 – 1200. Trong chế độ RUN, hệ thống CPU quét một cách liên tục các tín hiệu ngõ vào, xử lý các trạng thái ngõ vào theo chương trình logic, và sau đó tác động trở lại bằng cách thiết lập các giá trị trạng thái ngõ ra mới trong thanh ghi ngõ ra ảnh tiến trình. Sau mỗi chu trình thực thi chương trình, hệ thống CPU chuyển phản ứng trạng thái ngõ ra mới được lưu trữ trong thanh ghi ảnh tiến trình đến các đầu cực nối dây ngõ ra. Ta có thể xác định một kết quả ghi tức thời của một ngõ ra vật lý bằng cách sử dụng “:P” theo sau độ dịch chuyển Q (ví dụ “%Q3.4:P”). Đối với một kết quả ghi tức thời, các giá trị dữ liệu bit được ghi đến ngõ ra ảnh tiến trình và trực tiếp đến ngõ ra vật lý. Thông số
Kiểu dữ liệu
Miêu tả
OUT
Bool
Bit được gán giá trị
Nếu có luồng tín hiệu chạy qua một cuộn dây ngõ ra, bit ngõ ra được đặt lên 1. Nếu không có luồng tín hiệu chạy qua một cuộn dây ngõ ra, bit ngõ ra được đặt về 0. Nếu có luồng tín hiệu chạy qua một cuộn dây ngõ ra đảo, bit ngõ ra được đặt về 0. Nếu không có luồng tín hiệu chạy qua một cuộn dây ngõ ra đảo, bit ngõ ra được đặt lên 1. S và R: Set và Reset 1 bit Khi lệnh S (Set) được kích hoạt, giá trị dữ liệu ở địa chỉ OUT được đặt lên 1. Khi lệnh S không được kích hoạt, ngõ ra OUT không bị thay đổi. Khi lệnh R (Reset) được kích hoạt, giá trị dữ liệu ở địa chỉ OUT được đặt về 0. Khi lệnh R không được kích hoạt, ngõ ra OUT không bị thay đổi. Những lệnh này có thể được đặt tại bất cứ vị trí nào trong mạch
SET_BF và RESET_BF: Set và Reset một trường bit
Thông số
Kiểu dữ liệu
Miêu tả
n
constant
Số lượng các bit để ghi
OUT
Phần tử của một mảng
Phần tử bắt đầu của một
boolean
trường bit được đặt hay đặt lại
Khi SET_BF được kích hoạt, một giá trị dữ liệu bằng 1 được gán cho “n” bit bắt đầu tại địa chỉ OUT. Khi SET_BF không được kích hoạt, địa chỉ OUT không bị thay đổi. RESET_BF ghi một giá trị dữ liệu bằng 0 đến “n” bit bắt đầu tại địa chỉ OUT. Khi RESET_BF không được kích hoạt, địa chỉ OUT không bị thay đổi. Những lệnh này phải là lệnh nằm về bên phải trong một nhánh. RS và SR: các mạch chốt của bit set trội và reset trội
RS là một mạch chốt set trội mà set chiếm ưu thế. Nếu tín hiệu set (S1) và reset (R) đều là đúng, địa chỉ ngõ ra OUT sẽ bằng 1. SR là một mạch chốt reset trội mà reset chiếm ưu thế. Nếu tín hiệu set (S) và reset (R1) đều là đúng thì địa chỉ ngõ ra OUT sẽ là 0. Thông số OUT định rõ địa chỉ bit được set hay reset. Ngõ ra OUT tùy chọn (Q ) phản ánh trạng thái tín hiệu của địa chỉ OUT. Thông số
Kiểu dữ liệu
Miêu tả
S, S1
Bool
Ngõ vào set, “1” biểu thị sự ưu thế
R, R1
Bool
Ngõ vào reset, “1” biểu thị sự ưu thế
OUT
Bool
Ngõ ra của bit được gán “OUT”
Q
Bool
Trạng thái kèm theo cua bit “OUT”
Bảng giá trị của RS và SR Lệnh
S
R1
Bit OUT
SR
0
0
Trạng thái trước
0
1
0
RS
1
0
1
1
1
0
S1
R
0
0
Trạng thái trước
1
0
0
0
1
1
1
1
1
Các bộ dò quá độ dương và âm
Tiếp điểm P (LAD): trạng thái của tiếp điểm này là “TRUE” khi một sự quá độ dương (từ OFF sang ON) được phát hiện trên bit “IN” được gán. Trạng thái logic của tiếp điểm sau đó được kết hợp với dòng tín hiệu trong mạch để thiết lập trạng thái ngõ ra của dòng tín hiệu. Tiếp điểm P có thể được định vị tại bất kỳ vị trí nào trong mạch, ngoại trừ vị trí kết thúc của một nhánh. Tiếp điểm N (LAD): trạng thái của tiếp điểm này là “TRUE” khi một sự quá độ âm (từ ON sang OFF) được phát hiện trên bit được gán. Trạng thái logic của tiếp điểm sau đó được kết hợp với dòng tín hiệu trong mạch để thiết lập trạng thái ngõ ra của dòng tín hiệu. Tiếp điểm N có thể được định vị tại bất kỳ vị trí nào trong mạch, ngoại trừ vị trí kết thúc của một nhánh. Ví dụ khởi động động cơ: + Đầu vào : start (I0.0), stop (I0.1) + Đầu ra: run (Q0.0)
2.5.2.
Nhóm lệnh Timer
Ta sử dụng các lệnh định thì để tạo ra các trì hoãn thời gian được lập trình. · TP : bộ định thì xung phát ra một xung với bề rộng xung được đặt trước. · TON : ngõ ra của bộ định thì ON – delay Q được đặt lên ON sau một sự trì hoãn thời gian đặt trước. · TOF : ngõ ra Q của bộ định thì OFF – delay được đặt lại về OFF sau một sự trì hoãn thời gian đặt trước. · TONR: ngõ ra bộ định thì có khả năng nhớ ON – delay được đặt lên ON sau một trì hoãn thời gian đặt trước. Thời gian trôi qua được tích lũy qua nhiều giai đoạn định thì cho đến khi ngõ vào R được sử dụng để đặt lại thời gian trôi qua. · RT : đặt lại một bộ định thì bằng cách xóa dữ liệu thời gian được lưu trữ trong khối dữ liệu tức thời của bộ định thì xác định. Mỗi bộ định thì sử dụng một cấu trúc được lưu trữ trong một khối dữ liệu nhằm duy trì dữ liệu định thì. Ta gán giá trị khối dữ liệu khi lệnh định thì được đặt trong trình soạn thảo. Khi ta đặt các lệnh định thì trong một khối hàm, ta có thể lựa chọn tùy chọn khối dữ liệu Multi – instance, các tên cấu trúc định thì có thể khác nhau với những cấu trúc dữ liệu riêng biệt, nhưng dữ liệu định thì được chứa trong một khối dữ liệu đơn và không cần một khối dữ liệu riêng biệt cho mỗi bộ định thì. Điều này làm giảm thời gian xử lý và nơi lưu trữ cần thiết cho việc xử lý các bộ định thì. Không có mối tương tác giữa những cấu trúc dữ liệu định thì trong khối dữ liệu Multi – instance được chia sẻ. Các timer TP, TON, TOF có các thông số ngõ vào và ngõ ra như nhau
Bộ định thì TONR có thông số ngõ vào đặt lại được thêm vào R. Ta tạo ra một “Timer name” riêng chỉ định Data Block định thì và miêu tả mục đích của bộ định thì này trong chu trình
Lệnh RT đặt lại dữ liệu định thì cho bộ định thì được chỉ định.
Thông số
Kiểu dữ liệu
Miêu tả
IN
Bool
Ngõ vào bộ định thì cho phép
R
Bool
Đặt lại thời gian trôi qua TONR về 0
Q
Bool
Ngõ ra bộ định thì
PT
Time
Ngõ vào giá trị thời gian đặt trước
ET
Time
Ngõ ra giá trị thời gian trôi qua
Khối dữ liệu định thì
DB
Chỉ ra bộ định thì nào để đặt lại với
lệnh RT Thông số IN khởi động và dừng các bộ định thì: · Sự quá độ từ 0 lên 1 của thông số IN làm khởi động các bộ định thì TP, TON và TONR. · Sự quá độ từ 1 về 0 của thông số IN làm khởi động bộ định thì TOF Các giá trị PT (preset time – thời gian đặt trước) và ET (elapsed time – thời gian đã trôi qua) được lưu trữ trong bộ nhớ như các số nguyên double có dấu, tượng trưng cho những mili giây thời gian. Dữ liệu TIME sử dụng bộ định danh T# và có thể được nhập vào như một đơn vị thời gian thuần túy “T#200ms” hay như các đơn vị thời gian phức hợp “T#2s_200ms”. Kiểu dữ liệu
Kích cỡ
Phạm vi hợp lệ
Time
32 bit
-
T#-24d_20h_31m_23s_648ms đến
T#24d_20h_31m_23s_647ms -
– 2.147.483.648 ms đến + 2.147.483.647 ms
TP
· Thay đổi PT không có ảnh hưởng trong khi bộ định thì vận hành. · Thay đổi IN không có ảnh hưởng trong khi bộ định thì vận hành. -
TON
· Thay đổi PT không có ảnh hưởng trong khi bộ định thì vận hành. · Thay đổi IN sang “FALSE”, trong khi bộ định thì vận hành, sẽ đặt lại và dừng bộ định thì -
TOF
· Thay đổi PT không có ảnh hưởng trong khi bộ định thì vận hành. · Thay đổi IN sang “TRUE”, trong khi bộ định thì vận hành, sẽ đặt lại và dừng bộ định thì. -
TONR
· Thay đổi PT không có ảnh hưởng trong khi bộ định thì vận hành, nhưng có ảnh hưởng khi định thì khôi phục lại. · Thay đổi IN sang “FALSE”, trong khi bộ định thì vận hành, sẽ dừng bộ định thì nhưng không đặt lại bộ định thì. Thay đổi IN trở lại sang “TRUE” sẽ làm bộ định thì bắt đầu tính toán thời gian từ giá trị thời gian được tích lũy. Ví dụ tạo xung nhấp nháy 1s: + Đầu vào: start (I0.0) + Đầu ra: led(Q0.0) + Trung gian: M0.0
Ví dụ đảo chiều động cơ có chờ:
2.5.3.
Nhóm lệnh counter và so sánh
Nhóm lệnh counter Ta sử dụng các lệnh bộ đếm để đếm các sự kiện chương trình bên trong và các sự kiện xử lý bên ngoài: · CTU: bộ đếm đếm lên. · CTD: bộ đếm đếm xuống. · CTUD: bộ đếm đếm lên và xuống. Mỗi bộ đếm sử dụng một cấu trúc được lưu trữ trong một khối dữ liệu nhằm duy trì dữ liệu đếm. Ta gán giá trị khối dữ liệu khi lệnh đếm được đặt trong trình soạn thảo. Các lệnh này sử dụng các bộ đếm phần mềm với tốc độ đếm cực đại bị giới hạn bởi tốc độ sự thực thi của OB mà nó được chứa trong đó. OB mà các lệnh được đặt trong nó phải được thực thi thường xuyên đủ để phát hiện tất cả các chuyển đổi của các ngõ vào CU hay CD. Khi đặt các lệnh bộ đếm vào trong một khối hàm, ta có thể lựa chọn tùy chọn khối dữ liệu Multi – instance, các tên gọi cấu trúc bộ đếm có thể khác với các cấu trúc dữ liệu riêng biệt, nhưng dữ liệu bộ đếm thì được chứa trong một khối dữ liệu đơn và không cần một khối dữ liệu riêng biệt cho mỗi bộ đếm. Điều này làm giảm thời gian xử lý và giảm nơi lưu trữ dữ liệu
cần cho các bộ đếm. Không có mối tương tác nào giữa những cấu trúc dữ liệu bộ đếm trong khối dữ liệu Multi – instance được chia sẻ.
Thông số
Kiểu dữ liệu
Miêu tả
CU, CD
Bool
Đếm lên hay đếm xuống
R (CTU, CTUD)
Bool
Đặt lại giá trị đếm về 0
LOAD (CTD, CTUD)
bool
Nạp điều khiển cho giá trị đặt trước
PV
SInt, Int, DInt, USInt,
Giá trị đếm đặt trước
UInt, UDInt Q, QU
Bool
Đúng nều CV>=PV
QD
Bool
Đúng nếu CV=
IN1 lớn hơn hoặc bằng IN2
IN1 lớn hơn IN2
Set bit
+Chọn tag : Các thông số chọn như hình dưới
+Tương tự với Nhả (Release):
2, Đèn hiệu: -Mục appearance để thiết lập màu nền.
-Mục layout để chỉnh kích thước Đèn hiệu. -Tiếp theo là cài đặt hiển thị.
Chọn add new animation -> Dynamize colors and flashing Sau đó chọn TAG:
-Chú ý: Chọn Data type là Bool
-Sau đó thiết lập các thông số như hình dưới.
-Chọn màu tương ứng với logic 0 và 1:
-Chú ý: ở mục HMI tag, chuyển Acquisition cycle về 100ms.
3, I/O Field: -I/O Field: Hiển thị thông số vào ra. -Chọn I/O Field từ Elements. -ở General ta chọn tên biến, kiểu dữ liệu, địa chỉ dữ liệu.
-Tương tự như 2 chức năng trên, ta vào appearance và layout để tùy chỉnh hiển thị. 4, Dynamic bar: -Thanh trượt thể hiện giá trị. -Vào General để thiết lập tên biến, kiểu dữ liệu và địa chỉ.
-Tiếp đó vào Appearance để tùy chỉnh hiển thị.
** Một ví dụ chương trình PLC kèm HMI cho 4 chức năng trên: -Chương trình Main:
-Thiết kế HMI:
-Chạy chương trình: