CHUYÊN ĐỀ PLC S71200
1
. TỔNG QUAN PLC S71200
1.1 . Giới thiệu về PLC S71200
PLC S71200 là một dòng PLC cỡ nhỏ của hãng Siemens. Đây là dòng PLC được thiết
kế tích hợp các ngõ vào/ra trên CPU nên được ứng dụng trong các ứng dụng vừa và
nhỏ.
Dòng CPU của S71200 gồm: CPU 1211C; CPU 121C; CPU 1214C; CPU 1215C và
CPU 1217C. Bên cạnh đó, còn có dòng CPU S7 1200 FC (1214FC, 1215FC, 1217FC) hỗ
trợ chức năng PROFISafe của Siemens.
Ngoài ra, còn có các dòng CPU S7 1200 SIPLUS (đây là các dòng PLC có khả năng làm
việc ở các môi trường nhà máy khắc nghiệt như nhiệt độ cao, các hóa chất độc hại,
…).
Bên cạnh tên CPU sẽ có 3 ký hiệu, ví dụ: AC/DC/Rly hoặc DC/DC/DC. Trong đó Ký
hiệu đầu tiên thể hiện điện áp nguồn cấp cho PLC là AC (220V) hoặc DC (24V). Ký
hiệu thứ 2 thể hiện điện áp đặt lên input của PLC, thường là DC24V. Ký hiệu cuối
cùng thể hiện dạng output của PLC là Rly (Rơ le) hoặc DC (transistor).
Ngoài các I/O được tích hợp sẵn trên CPU thì ta có thể mở rộng các chức năng này
thông qua các module mở rộng khác để phù hợp với các ứng dụng cần nhiều I/O cũng
như các giao tiếp truyền thông khác.
[1]. Các module giao
tiếp (CM)
[2]. CPU
[3]. Signal board (SB),
communication board
(CB), hoặc Battery
Board (BB)
[4]. Các module tín hiệu
(SM)
Một số module xử lý tín hiệu số.
Một số module xử lý tín hiệu analog.
Một số module giao tiếp.
Ngoài ra còn có Battery Board hỗ trợ cho các ứng dụng realtime hoặc backup khi bị
mất nguồn.
1.2 . Cấu trúc bộ nhớ PLC S7 1200
Vùng chương trình ứng dụng
Organization blocks (Obs): miền chứa chương trình tổ chức. Trong đó, OB1 là
chương trình chính.
Data blocks (DBs): chứa dữ liệu của các chương trình (giới hạn từ 165535).
Functions (FCs) and function blocks (FBs): miền chứa chương trình con được tổ
chức thành hàm để thực hiện các chức năng riêng. Mỗi FCs hoặc FBs tổ chức thành
hàm có biến hình thức để trao đổi dữ liệu với chương trình đã gọi nó. Ngoài ra, các
FBs còn có thể sử dụng được dữ liệu từ các DB. (giới hạn của FBs và FCs là từ 1
65535).
Vùng nhớ chứa các tham số
I (Process image input): Vùng nhớ đệm ngõ vào.
Q (Process image output): Vùng nhớ đệm ngõ ra.
M (Memory): Vùng nhớ chứa các biến cờ.
T (Timer): Vùng nhớ phục vụ cho các bộ định thời.
C (Counter): Vùng nhớ phục vụ bộ.
PI: Vùng nhớ đệm ngõ vào tương tự.
PQ: Vùng nhớ đệm ngõ ra tương tự.
Vùng nhớ chứa các khối dữ liệu
DB (Data block): Miền chứa các dữ liệu được tổ chúc thành khối. Kích thước
hay số lượng khối do người sử dụng qui định.
L (Temp memory): Miền chứa các biến tạm của khối chương trình OB, FC, FB
được tổ chức và sử dụng cho các biến nháp tức thời và trao đổi dữ liệu của biến
hình thức với những khối đã gọi nó.
Phương pháp truy cập vùng nhớ
Theo bit: Tên vùng nhớ + địa chỉ byte + (.) + chỉ số bit
VD: I0.7, Q1.5, M2.6, DB1.DBX2.5,…
Theo byte: Tên vùng nhớ + B + địa chỉ byte
VD: IB0, QB1; MB6, DB5.DBB15,…
Theo Word: Tên vùng nhớ + W + địa chỉ byte cao nhất
VD: IW0, QW2; MW16, DB10.DBW8,…
Theo Dword: Tên vùng nhớ + D + địa chỉ byte cao nhất
VD: ID0, QD2; MD16, DB10.DBD8,…
Các loại dữ liệu
Kiểu dữ liệu: Bool, Byte, Word và Dword.
Kiểu dữ liệu: Integer (U = unsigned, S = short, D= double)
Kiểu dữ liệu: Real (L = Long)
Kiểu dữ liệu: NgàyGiờ
Ngoài ra, còn có các kiểu dữ liệu khác như: Char, String, Array, Pointer
2
. PHẦN MỀM TIA PORTAL
Đây là phần mềm được cung cấp để thiết lập cũng như lập trình cho các dòng sản
phẩm của hãng Siemens. Phần mềm được tích hợp giúp người dùng thuận tiện trong
việc lập trình, thiết lập cài đặt, các kết nối và lập trình HMI một cách dễ dàng.
[1].
Hiển thị các chức năng
[2].
Bảng chọn các chức năng
[3].
Bảng chọn các project
[4].
Chuyển đến trang làm việc của Project
[1].
Thanh công cụ
[2].
Các mục của Project
[3].
Màn hình làm việc
[4].
Thẻ chức năng
[5].
Màn hình thuộc tính
[6].
Chuyển về màn hình thông tin Project
[7].
Các Tab
Làm việc với phần
mềm TIA PORTAL
Bước 1: Tạo dự án
mới
Bước 2: Cấu hình
phần cứng
Bước 3: Viết chương
trình điều khiển
Bước 4: Kiểm tra chương trình đã viết
Cấu hình phần cứng
[1].
Các module giao tiếp mạng. Tối đa là 3 module từ slot 101, 102, 103
[2].
CPU, slot 1
[3].
Cổng EtherNet của CPU
[4].
Signal board (SB), communication board (CB) hoặc battery board (BB): nằm trên
CPU
[5].
Signal Modoule (SM) tối đa
8 8 module từ slot 2 đén slot
9
+ Trong màn hình thông tin, chọn
“Devices & Networks” và chọn
“Add new device”.
+ Trong màn hình Project, bên
dưới tên Project chọn “Add
new device”.
+ Danh sách các thiết bị hiện ra.
Sau đó, chọn dòng CPU cần lập
trình và Version của nó.
+ Các thông tin của
CPU được hiển thị.
Sau đó, thiết lập các
cài đặt từ màn hình
thiết lập.
3
. CÁC TẬP LỆNH CƠ BẢN
3.1 . Nhóm lệnh bit logic
Lệnh tiếp điểm thường mở
Nếu địa chỉ n có giá trị mức logic=1 thì lệnh tiếp
điểm thường mở sẽ đóng lại. (cho dòng điện đi
qua)
Nếu địa chỉ n có giá trị mức logic=0 thì lệnh tiếp điểm thường mở sẽ mở ra. (không
cho dòng điện đi qua)
Lệnh tiếp điểm thường đóng
Nếu địa chỉ n có giá trị mức logic=1 thì lệnh tiếp
điểm thường mở sẽ mở ra. (không cho dòng điện
đi qua)
Nếu địa chỉ n có giá trị mức logic=0 thì lệnh tiếp điểm thường mở sẽ đóng lại. (cho
dòng điện đi qua)
n: được truy xuất theo bit vào các vùng nhớ:
I,Q, M, D, L
Lệnh cuộn dây
n: được truy xuất theo bit vào
các vùng nhớ: Q, M, D, L
Nếu đầu 1 của lệnh được nối với mức 1 thì địa
chỉ n có giá trị mức logic=1
Khi n =1 là địa chỉ ngõ ra Q thì ngõ ra sẽ
có điện
Các tiếp điểm thường đóng, thường mở sẽ thay đổi trạng thái
Nếu đầu 1 của lệnh được nối với mức 0 thì địa chỉ n có giá trị mức logic=0
Khi n =0 là địa chỉ ngõ ra Q thì ngõ ra sẽ không có điện
Các tiếp điểm thường đóng, thường mở sẽ trở về trạng thái ban đầu
Lệnh đảo cuộn dây
n: được truy xuất theo bit vào
các vùng nhớ: Q, M, D, L
Nếu đầu 1 của lệnh được nối với mức 1 thì địa chỉ n có giá trị mức logic=0
Khi n =0 là địa chỉ ngõ ra Q thì ngõ ra sẽ không có điện
Các tiếp điểm thường đóng, thường mở sẽ trở về trạng thái ban đầu đổi trạng
thái
Nếu đầu 1 của lệnh được nối với mức 0 thì địa chỉ n có giá trị mức logic=1
Khi n =1 là địa ngõ ra Q thì ngõ ra sẽ có điện
Các tiếp điểm thường đóng, thường mở sẽ thay đổi trạng thái
Lệnh SET
n: được truy xuất theo bit vào
các vùng nhớ: Q, M, D, L
Nếu kích 1 xung vào đầu 1 của lệnh thì địa chỉ n sẽ có giá trị mức logic=1
Khi n =0 là địa chỉ ngõ ra Q thì ngõ ra sẽ không có điện
Các tiếp điểm thường đóng, thường mở có địa chỉ trùng với địa chỉ n thì các tiếp
điểm này sẽ thay đổi trạng thái
Để đưa địa chỉ n về mức logic 0 thì phải dung lệnh RESET
Lệnh RESET
n: được truy xuất theo bit vào
các vùng nhớ: Q, M, D, L
Nếu kích 1 xung vào đầu 1 của lệnh thì địa chỉ n sẽ có giá trị mức logic = 0
Khi n = 0 thì địa chỉ ngõ ra Q thì ngõ ra sẽ không có điện
Các tiếp điểm thường đóng, thường mở có địa chỉ trùng với địa chỉ n thì các tiếp
điểm này sẽ trở về trạng thái ban đầu
Lệnh cạnh lên
Phát hiện tín hiệu của “IN” từ 0 lên 1. Trạng thái của tín hiệu IN được lưu lại vào
“M_BIT”. Ðộ rộng của xung này bằng thời gian của một chu kì vòng quét.
Lệnh cạnh xuống
Phát hiện tín hiệu của “IN” từ 1 xuống 0. Trạng thái của
tín hiệu IN được lưu lại vào “M_BIT”. Ðộ rộng của xung
này bằng thời gian của một chu kì vòng quét.
3.2 . Nhóm lệnh MOVE
Lệnh MOVE dùng để di chuyển nội dung ngõ vào IN đến ngõ ra OUT mà không làm
thay đổi giá trị ngõ OUT.
Nếu EN=1 thì mỗi vòng quét PLC, lệnh sẽ chép DATA ở ngõ vào IN sang địa chỉ ở
OUT.
3.3 . Nhóm lệnh TIMER
Sử dụng lệnh Timer để tạo một chương trình trễ định thời. Số lượng của Timer phụ
thuộc vào người sử dụng và số lượng vùng nhớ của CPU. Mỗi timer sử dụng 16 byte
IEC_Timer dữ liệu kiểu cấu trúc DB. Phần mềm sẽ tự động tạo khối DB khi lấy khối
Timer
Kích thước và tầm của kiểu dữ liệu Time là 32 bit, lưu trữ như là dữ liệu Dint : T#
14d_20h_31m_23s_648ms đến T#24d_20h_31m_23s_647ms hay là 2.147.483.648 ms
đến 2.147.483.647 ms.
Có 4 loại Timer:
Ondelay TON
Ngõ ra Q sẽ lên 1 khi đạt được giá trị thời gian PT (Preset Time).
Thay đổi PT khi Timer vận hành không ảnh hưởng.
Khi ngõ vào IN ngừng tác động thì reset và dừng hoạt động.
Tham số
Chức năng
Kiểu dữ liệu
Mô tả
IN
Input
BOOL
Ngõ vào (IN=1, chạy thời gian)
Q
Output
BOOL
Ngõ ra
PT (Preset Time)
Input
TIME
Thời gian đặt
ET (Elapsed Time)
Output
TIME
Thời gian đếm được
OffDelay TOF
Ngõ ra Q sẽ xuống 0 khi đạt được giá trị thời gian PT (Preset Time).
Thay đổi PT khi Timer vận hành không ảnh hưởng.
Khi ngõ vào IN ngừng tác động thì reset và dừng hoạt động.
Tham số
Chức năng
Kiểu dữ liệu
Mô tả
IN
Input
BOOL
Ngõ vào (IN=0, chạy thời gian)
Q
Output
BOOL
Ngõ ra
PT (Preset Time)
Input
TIME
Thời gian đặt
ET (Elapsed Time)
Output
TIME
Thời gian đếm được
Pulse Generation TP
Timer TP tạo một chuỗi xung với độ rộng xung đặt trước.
Thay đổi PT, IN không ảnh hưởng khi Timer đang chạy.
Khi đầu vào IN được tác động vào timer sẽ tạo ra một xung có độ rộng bằng thời gian
đặt PT
Tham số
Chức năng
Kiểu dữ liệu
Mô tả
IN
Input
BOOL
Ngõ vào (IN=1, chạy thời gian)
Q
Output
BOOL
Ngõ ra
PT (Preset Time)
Input
TIME
Thời gian đặt
ET (Elapsed Time)
Output
TIME
Thời gian đếm được
Accumulating On Delay TONR
Thay đổi PT không bị ảnh hưởng khi Timer vận hành, chỉ ảnh hưởng khi Timer đếm
lại.
Khi ngõ vào IN chuyển sang 0 thì Timer sẽ dừng nhưng không đặt lại bộ định thì. Khi
IN lên 1 thì Timer bắt đầu tính từ giá trị thời gian tích lũy trước đó.
Tham số
Chức năng
Kiểu dữ liệu
Mô tả
IN
Input
BOOL
Ngõ vào (IN=1, chạy thời gian)
Q
Output
BOOL
Ngõ ra
PT (Preset Time)
Input
TIME
Thời gian đặt
ET (Elapsed Time)
Output
TIME
Thời gian đếm được
R
Input
BOOL
Chân reset
3.4 . Nhóm lệnh COUNTER
Lệnh Counter được dùng để đếm các sự kiện ở ngoài hay các sự kiện quá trình ở
trong PLC. Mỗi Counter sử dụng cấu trúc lưu trữ của khối dữ liệu DB để làm dữ liệu
của
Counter. Step 7 tự động tạo khối DB khi lấy lệnh.
Up Counter CTU
Giá trị bộ đếm CV được tăng lên 1 khi tín hiệu ngõ vào CY chuyển từ 0 lên 1. Ngõ ra
Q được tác động lên 1 khi CV >= PV. Nếu trạng thái R=Reset được tác động thì bộ
đếm CV=0.
Tham số
Chức năng
Kiểu dữ liệu
Mô tả
CU
Input
BOOL
Tín hiệu vào đếm lên
Q
Output
BOOL
Ngõ ra (Đúng khi CV >= PV)
PV (Preset Value)
Input
SInt, Int, DInt,
USInt, UInt,
Giá trị đặt
UDInt
CV (Counter
Value)
Output
R
Input
SInt, Int, DInt,
USInt, UInt,
UDInt
BOOL
Giá trị đếm được
Chân reset về 0
Down Counter (CTD)
Giá trị bộ đếm được giảm 1 khi tín hiệu ngõ vào CD chuyển từ 0 lên 1. Ngõ ra Q được
tác động lên 1 khi CV<=0. Nếu trạng thái LOAD được tác động thì CV=PV.
Tham số
Chức năng
Kiểu dữ liệu
Mô tả
CD
Input
BOOL
Tín hiệu vào đếm xuống
Q
Output
BOOL
Ngõ ra (Đúng khi CV <= 0)
PV (Preset Value)
Input
SInt, Int, DInt,
USInt, UInt,
Giá trị đặt
UDInt
CV (Counter
Value)
Output
LD
Input
SInt, Int, DInt,
USInt, UInt,
UDInt
BOOL
Giá trị đếm được
Chân điều khiển giá trị PV.
UpDown Counter CTUD
Giá trị bộ đếm CV được tăng lên 1 khi tín hiệu ngõ vào CY chuyển từ 0 lên 1. Ngõ ra
Q được tác động lên 1 khi CV >= PV. Nếu trạng thái R=Reset được tác động thì bộ
đếm CV=0.
Giá trị bộ đếm được giảm 1 khi tín hiệu ngõ vào CD chuyển từ 0 lên 1. Ngõ ra Q được
tác động lên 1 khi CV<=0. Nếu trạng thái LOAD được
tác động thì CV=PV.
Tham số
Chức năng
Kiểu dữ liệu
CU,CD
Input
BOOL
QU
Output
BOOL
QD
Mô tả
Tín hiệu vào đếm lên, đếm
xuống
Ngõ ra đếm lên (Đúng khi CV
>= PV)
Ngõ ra đếm xuống (Đúng khi
CV <= 0)
Giá trị đặt
Input
SInt, Int, DInt,
USInt, UInt,
UDInt
SInt, Int, DInt,
USInt, UInt,
UDInt
BOOL
Input
BOOL
Chân Reset (QU).
PV (Preset Value)
Input
CV (Counter
Value)
Output
LD
R
3.5 . Nhóm lệnh so sánh
Nhóm lệnh so sánh gồm: =, >, <, >=, <=, <>
ĐK được thay bằng =, >, <, >=, <=, <>
D là kiểu Data chọn theo IN1 và IN2 như bảng sau:
Giá trị đếm được
Điều khiển giá trị PV (QD).
3.6 . Nhóm lệnh toán học
Lệnh cộng
Nếu chân EN = 1 thì mỗi vòng quét PLC, lệnh sẽ thực
hiện 1 lần. Khi lệnh thực hiện thì:
OUT = Giá trị ở ngõ vào IN1 + Giá trị ở ngõ vào IN2
Lệnh trừ
Nếu chân EN = 1 thì mỗi vòng quét PLC, lệnh sẽ
thực
hiện 1 lần. Khi lệnh thực hiện thì:
OUT = Giá trị ở ngõ vào IN1 Giá trị ở ngõ vào IN2
Lệnh nhân
Nếu chân EN = 1 thì mỗi vòng quét PLC, lệnh sẽ
thực
hiện 1 lần. Khi lệnh thực hiện thì:
OUT = Giá trị ở ngõ vào IN1 * Giá trị ở ngõ vào IN2
Lệnh chia
Nếu chân EN = 1 thì mỗi vòng quét PLC, lệnh sẽ
thực
hiện 1 lần. Khi lệnh thực hiện thì:
OUT = Giá trị ở ngõ vào IN1 / Giá trị ở ngõ vào IN2
Lệnh chia lấy dư
Nếu chân EN = 1 thì mỗi vòng quét PLC, lệnh sẽ thực
hiện 1 lần. Khi lệnh thực hiện thì:
OUT = Phần dư (IN1 / IN2)
Lệnh tính toán
Công dụng : thực hiện phép toán từ các giá trị
ngõ vào IN1, IN2, IN(n) theo công thức
OUT=…(+,,*,/) rồi xuất kết quả ra ngõ ra
OUT.
Các ngõ vào phải cùng kiểu dữ liệu.
Lệnh tăng
Nếu chân EN = 1 thì mỗi vòng quét PLC, lệnh sẽ
tăng giá trị của thanh ghi ở IN/OUT lên 1 đơn vị.
IN/OUT = IN/OUT + 1
Lệnh giảm
Nếu chân EN = 1 thì mỗi vòng quét PLC, lệnh sẽ
giảm giá trị của thanh ghi ở IN/OUT lên 1 đơn vị.
IN/OUT = IN/OUT – 1
Lệnh lấy giá trị tuyệt đối