Để phát hiện xung sườn lên ta sử dụng Set và Reset.Khi M0.0 tác động thì cả Q0.0 và Q0.1 đều chuyển trạng thái từ 0->1 Set: là cuộn hút có giữ khi tác động vào coil set thì trạng thái 1
Trang 1GIÁO TRÌNH PLC S7 1200 SIEMENS
Trang 2M c L c ụ ụ
Trang 3Bài: 1 Giới thiệu tổng quát về PLC, Phần mềm và cách tạo 1 project mới
1: Giới thiệu tổng quát về PLC s7 1200
1.1: Khái niệm về PLC
PLC là từ viết tắt của các từ tiếng anh : Programable Logic Controller : là một bộđiều khiển logic lập trình mềm, làm việc theo chương trình lưu trong bộ nhớ, cho phép thực hiện linh hoạt các thuật toán điều khiển logic thông qua một ngôn ngữ lập trình như LAD , STL, FDB, IL, ST, SFC, SCL
1.2: Phân biệt các loại plc s71200
1.3: Cách đấu nối đầu vào (input)
1.3.1: Kiểu source( Nguồn chung)
Made By Stormy
Trang 4Đặc điểm kiểu source thường được sử dụng với các loại cảm biến dạng PNP,…
Ví dụ:
1.3.2: Kiểu sink( Âm chung)
Kiểu sink thường được sử dụng với các loạt cảm biến NPN,…
Ví dụ:
Made By Stormy
Trang 51.4: Cách đấu nối đầu ra(Output)
1.4.1: Ngõ ra relay (AC/DC/RLY hoặc DC/DC/RLY)
Ưu điểm
- Cách ly nguồn khỏi PLC qua relay
- Dòng tối đa 2A
Made By Stormy
Trang 72.1.3: Bước 3 đặt tên project, chọn đường dẫn.
- Project name: Tên project
- Path: chọn đường dẫn lưu lại project
- Version: Version của phần mềm
- Author: Tên tác giả
- Comment: ghi chú project
Click tạo project
2.1.4: Bước 4 Cấu hình thiết bị sử dụng của project.
Cấu hình thiết bị
Made By Stormy
Trang 8Lựa chọn PLC phù hợp với cấu hình bên ngoài.Sau đó chọn ADD.
Made By Stormy
Trang 92.1.5: Bước 5 Click vào Main để sẵn sàng lập trình.
3: Tài liệu tham khảo:
https://www.youtube.com/watch?v=n2vO8oKOJXY&t=183s
Made By Stormy
Trang 10Bài: 2 Giới thiệu các dạng dữ liệu lập trình trong PLC, làm quen các lệnh bit logic cơ
bản.
1: Các dạng dữ liệu trong lập trình PLC.
BOOL : với dung lượng 1bit và có giá trị là 0 hoặc 1 ( đúng hoặc sai )
BYTE : gồm có 8 bit, thường dùng để biểu diễn 1 số nguyên
dương trong khoảng từ 0 đến 255 ( 16#00 – 16#FF )
WORD : gồm có 2 bytes để biểu diễn một số nguyên dương từ 0 đến
65535 ( 16#0000 – 16#FFFF )
CHAR : gồm 8 bits dùng để biểu diễn số nguyên dương từ 0 đến 255
SINT : gồm 8 bits dùng để biểu diễn một số nguyên từ -128 đến 127
INT : gồm 2 bytes dùng để biểu diễn 1 số nguyên từ -32758 đến 32767
DINT : gồm 4 bytes để biểu diễn 1 số nguyên từ - 2,
147,483,648đến 2,147,483,648
USINT : gồm 8 bits để biều diễn 1 số nguyên dương từ 0 đến 255
UINT : gồm 2 bytes để biều diễn 1 số nguyên dương từ 0 đến 65,535
UDINT : gồm 4 bytes để biều diễn 1 số nguyên dương từ 0 đến
4,294,967,295
REAL : gồm 4 bytes dùng để biểu diễn một số thực dấu phảy động
từ +/- 1.18 ×10-38 đến +/- 3.40 ×1038 LREAL : gồm 64 bits dùng để biểu diễn một số thực dấu phảy động từ +/-
- Coil: Cuộn (Cuộn hút)
Khi được cấp điện cuộn hút sẽ chuyển trạng thái từ 0 -> 1
Made By Stormy
Trang 11Tất cả các thường mở mang tên cuộn hút sẽ đóng lại và các thường đóng mang tên cuộn hút sẽ
mở ra Và ngược lại khi cuộn hút chuyển trạng thái từ 1 -> 0
2.1: Ví dụ về NO, NC, Coil.
2.1.1: Ta có một đoạn code sau:
Ở đây mình có sử dụng thường mở NO : ON(I0.0)
Thường đóng NC(I0.1): OFF, Cuộn Coil: LAMP(Q0.0)
2.1.2: Nguyên lý hoạt động
- Nút ON đóng
Các trạng thái hiển thị như hình code mô phỏng
Made By Stormy
Trang 133: Đối với các loại PLC còn có các lệnh bắt xung sườn lên, xung sườn xuống 3.1: Xung sườn lên:
- Khi sử dụng lệnh bắt xung sườn lên thì tác động xung từ 0->1 của nút bấm hoặc tiếp điểm chỉ nhận 1 xung rất nhỏ bằng 1 chu kỳ quét của PLC
Ví dụ:
Khi tác động M0.0 Q0.0 sẽ chuyển từ 0->1
Còn Q0.1 sẽ chuyển từ 0->1 nhưng chỉ 1 chu kỳ xung
Made By Stormy
Trang 14Để phát hiện xung sườn lên ta sử dụng Set và Reset.
Khi M0.0 tác động thì cả Q0.0 và Q0.1 đều chuyển trạng thái từ 0->1
Set: là cuộn hút có giữ khi tác động vào coil set thì trạng thái 1 của cuộn sẽ được lưu lại cho đến khi tác động reset
Made By Stormy
Trang 15Reset: Khi tác động reset tất cả các cuộn set trước đó đều chuyển trạng thái từ 1 -> 0
3.2: Xung sườn xuống:
- Khi sử dụng lệnh bắt xung sườn lên thì tác động từ 1->0 của nút bấm hoặc tiếp điểm chỉnhận 1 xung rất nhỏ bằng 1 chu kỳ quét của PLC
Ví dụ:
Xung sườn xuống ngược với xung sườn lên Xung sườn lên bắt trực tiếp khi tác động, còn xung sườn xuống khi tác động chuyển từ 1->0 sẽ bắt xung
Made By Stormy
Trang 16Khi tác động M0.0 Q0.0 sẽ chuyển trạng thái 1 và q0.1 vẫn giữ trạng thái 0.
Khi tác động M0.0 ngắt Q0.1 sẽ được set lên 1
4: SR,RS
4.1: SR
Made By Stormy
Trang 17- S: Tác động xung 0->1 SR chuyển trạng thái từ 0->1 có giữ
- R1: Tác động xung từ 0-> SR chuyển trạng thái từ 1->0
Trang 18Khi M0.1 =1 thì SR = 0
Khi M0.0 = 1 và M0.1 =1 thì SR = 0
Made By Stormy
Trang 194.2: RS
- R: Tác động chuyển trạng thái RS 1->0
- S1: Tác động chuyển trạng thái RS 0->1
- Q: Khi RS = 1 Q=1, khi RS = 0 Q = 0
- RS ưu tiên Set
RS cũng tương tự với SR nhưng khi S1 và R đều được tác động thì RS duy trì trạng thái RS =1
5: Tài liệu tham khảo xung sườn lên, xung sườn xuống, Set, Reset:
https://www.youtube.com/watch?v=eBeRFeZeHyQ&t=256s
6: Tài liệu tham khảo bit lo-gic:
https://www.youtube.com/watch?v=I3g_FyaG2K8&t=157s
Made By Stormy
Trang 20Bài: 3 Lập trình HMI
1: Giới thiệu về HMI
HMI(Human – Machine – Interface): là thiết bị giao tiếp giữa người và máy qua một
giao diện màn hình.
1.1: Thiết lập một HMI trong phần mềm tia portal của siemens.
1.1.1: Bước 1: chọn Add new device
1.1.2: Bước 2 cấu hình một màn hình HMI phù hợp
Chọn Add
Made By Stormy
Trang 211.1.3: Bước 3: khai báo kết nối với PLC
Chọn đúng PLC cần khai báo và bấm next
Tự cấu hình các màn hình.
Màn hình giao diện HMI
Kết nối dữ liệu giữa màn hình với PLC thông qua các Tag từ PLC
Made By Stormy
Trang 22Toolbox thiết kế giao diện cho HMI
Click chuột và kéo các nút bấm hoặc các thiết bị cần sử dụng
Ví dụ: tạo 1 giao diện đơn giản:
- Lấy nút bấm:
- Lấy dữ liệu I/O Field
Made By Stormy
Trang 231.2: Gắn Tag liên kết giữa PLC với HMI
- Button: Click chuột phải vào Button, chọn event sử dụng press và release
o Press: click chuột trái sử dụng để chuyển trạng thái nút bấm 0 -> 1( Set bit)
o Release: nhả nút bấm sử dụng để chuyển trạng thái nút bấm 1 -> 0(Reset bit)
- Địa chỉ dữ liệu I/O Field: click chuột phải chọn properties chọn general và gắn tag như
hình sau:
Made By Stormy
Trang 24- Gắn tag Flash cho các hình tròn như bóng đèn
o Click chuột phải vào hình tròn, chọn properties, chọn mục animationsChọn Display, chọn dynamize colors and flashing
Click vào dấu “…” chọn tag cho bóng đèn
Made By Stormy
Trang 25Sau khi gắn tag xong click vào Range chọn trạng thái 1 chuyển màu back ground thành màu tùy ý.
2: Ví dụ: Một chương trình cơ bản hiển thị dữ liệu và ON/OFF trên màn hình.
Made By Stormy
Trang 26Khi bấm ON đèn LAMP sẽ được tác động.
Nhập dữ liệu cho A và B
Made By Stormy
Trang 27Sau đó tác động vào Kết quả:
Made By Stormy
Trang 28Kết quả hiển thị C= A+B.Thử lại:
Lập trình:
Made By Stormy
Trang 293: Tài liệu tham khảo:
Made By Stormy
Trang 30Bài: 4 Timer
1: Tổng quan
Timer là bộ định thì theo thời gian xác định
2: Đối với s7 1200 có tới 4 loại timer: TP, TON, TOFF, TONR 2.1: TP:
- IN: cấp tìn hiệu cho timer bắt đầu hoạt động
- PT: Giá trị ngưỡng đặt thời gian của timer
- Q: khi timer đạt tới ngưỡng đặt đầu Q sẽ chuyển từ 0 -> 1
- ET: Giá trị đếm tức thời của timer
2.1.1: Ta có giản đồ thời gian:
Made By Stormy
Trang 322.2: TON:
- IN: Tác động timer bắt đầu hoạt động
- PT: Giá trị đặt ngưỡng thời gian
- Q: Chuyển trạng thái từ 0 - > 1 khi ET = PT
- ET: Giá trị đếm tức thời của timer
2.2.1: Ta có giản đồ thời gian:
2.2.2: Ví dụ:
Made By Stormy
Trang 33Lưu ý: Khác với TP chân IN của TON phải được duy trì trạng thái 1 trong quá trình timer hoạt động ET<PT
Khi ET = PT Q sẽ chuyển trạng thái từ 0 -> 1 cho đến khi chân IN 1 - > 0
Timer sẽ reset hoàn toàn khi IN = 0
Made By Stormy
Trang 342.3: TOFF:
- IN: Tác động timer bắt đầu hoạt động
- PT: Giá trị đặt ngưỡng thời gian
- ET: Giá trị đếm tức thời của timer
- Q: Chuyển trạng thái từ 0 -> 1 khi IN chuyển từ 0 -> 1, Chuyển trạng thái từ 1 -> 0 khi
IN = 0 và ET = PT
2.3.1: Ta có giản đồ thời gian:
2.3.2: Ví dụ:
Made By Stormy
Trang 35Khi tác động IN từ 0 -> 1 Q sẽ chuyển từ 0 -> 1
Khi IN chuyển từ 1 -> 0 timer bắt đầu đếm Khi ET = PT Q sẽ chuyển từ 1 -> 0
Made By Stormy
Trang 362.4: TONR:
- IN: Tác động timer bắt đầu hoạt động
- R: Khi timer đếm reset giá trị đếm bằng 0(ET=0)
- PT: Giá trị đặt ngưỡng thời gian
- ET: Giá trị đếm tức thời
- Q: Chuyển trạng thái từ 0 -> 1 Khi ET = PT
Lưu ý: TONR hoạt động như TON nhưng có lưu lại giá trị khi đếm IN chuyển trạng thái từ 1 -> 0
Made By Stormy
Trang 372.4.1: Ta có giản đồ thời gian:
3: Ví dụ về lập trình timer:
Điều khiển chạy luân phiên 2 động cơ:
Made By Stormy
Trang 38Mô tả hoạt động:
Khi tác động S1 bơm 1 chạy 5s, sau đó tắt Sauk hi bơm 1 tắt Bơm 2 chạy 5s, sau đó tắt Bơm
2 tắt bơm 1 lại hoạt động theo 1 vòng tuần khoản luân phiên đến khi dừng S1
Khi có s2 tác đông cả 2 bơm cùng chạy s2 dừng lại tiếp tục luân phiên
Made By Stormy
Trang 404: Bài tập:
Bài tập: Bài toán điều khiển đèn giao thông tại một ngã tư có hiển thị trên HMI
Made By Stormy
Trang 43Giám sát hoạt động
Bài tập bổ xung: Bổ xung chức năng nháy đèn vàng khi chuyển chế độ
5: Tài liệu tham khảo:
https://www.youtube.com/watch?v=jqnTkv9gA0w&t=137s
Made By Stormy
Trang 45Bài: 5 Bộ đếm Counter
1: Giới thiệu chung
2: S7 1200 có 3 loại Counter đếm CTU, CTD, CTUD.
2.1: CTU bộ counter đếm lên 1 đơn vị.
- CU: Khi tác động 1 xung 0~1 có thể lấy lệnh bắt xung sườn lên, xuống hoặc các tiếp điểm bình thường Counter CTU sẽ đếm lên 1 đơn vị
- R: khi R được tác động từ 0 ~ 1 thì giá trị đếm của CTU = 0
- PV: Đặt giá trị ngưỡng đếm cho tác động Q(QU)
- CV: Giá trị đếm của Counter
- Nếu CV >= PV thì C1.QU được tác động
- Lưu ý giá trị của Couter(CV) có thể vượt qua giá trị của PV tối đa theo kiểu dữ liệu đặt.2.2: Ví dụ:
Khi tác động M0.6 Counter sẽ đếm lên 1 đơn vị
Made By Stormy
Trang 46Khi giá trị CV >= PV C1.QU sẽ tác động.
Khi tác động reset giá trị đếm về CV = 0
Made By Stormy
Trang 472.3: CTD bộ counter đếm xuống 1 đơn vị.
- CD: Khi tác động xung từ 0~1 có thể lấy lệnh bắt xung sườn lên, xuống hoặc các tiếp điểm bình thường Counter CTD sẽ đếm xuống 1 đơn vị
- LD: khi tác động xung từ 0 ~ 1 Giá trị đếm của counter sẽ trả về giá trị bằng PV
- PV: là giá trị đặt ngưỡng của Counter
- CV: Giá trị đếm của Counter
- Q: khi giá trị của CTU CV = 0 thì Q(C1.QD) sẽ lên 1
Lưu ý giá trị đếm của của CTD có thể CV <0 tối đa theo kiểu giá trị đặt.
Made By Stormy
Trang 482.4: CTUD: Bộ đếm counter đếm lên, xuống.
- CU: Khi tác động 1 xung 0~1 có thể lấy lệnh bắt xung sườn lên, xuống hoặc các tiếp điểm bình thường Counter CTU sẽ đếm lên 1 đơn vị
- CD: Khi tác động xung từ 0~1 có thể lấy lệnh bắt xung sườn lên, xuống hoặc các tiếp điểm bình thường Counter CTD sẽ đếm xuống 1 đơn vị
- R: khi R được tác động từ 0 ~ 1 thì giá trị đếm của CTU = 0
- LD: khi tác động xung từ 0 ~ 1 Giá trị đếm của counter sẽ trả về giá trị bằng PV
- PV: là giá trị đặt ngưỡng của Counter
- CV: Giá trị đếm của Counter
- Q: khi giá trị của CTU CV = 0 thì Q(C1.QD) sẽ lên 1
- CTUD là kết hợp của CTU và CTD
3: Bài tập:
- Đếm số lần sáng của đèn và hiển thị lên màn hình
Ta có màn hình sau
Made By Stormy
Trang 49Gắn tag cho Button, I/O Field
Lập trình
Bảng địa chỉ tag
Chương trình chính
Made By Stormy
Trang 51Giám sát hoạt động
Made By Stormy
Trang 524: Tài liệu tham khảo:
https://www.youtube.com/watch?v=vnQTX0dINBs
Made By Stormy
Trang 53Bài: 6 Lệnh toán học, lệnh so sánh
1: Lệnh toán học
- Đối với S7 1200 có đầy đủ tất cả các lệnh +, -, * , / , sin , cos, tan,…
- Những lệnh sử dụng chủ yếu là cộng ADD(+), trừ Sub(-), nhân Mul(*), chia Div(/),…
- Đặc biệt Tia Portal có thêm chức năng Caculate có thể tự do thiết lập các công thức
Trang 561.4: Lệnh chia lấy phần nguyên(DIV):
Trang 571.5: Lệnh chia lấy phần dư (MOD)
Trang 58- Phép so sánh đúng bước tiếp theo sau nó sẽ được tác động.
- Phép so sánh sai giữ nguyên trạng thái
Made By Stormy
Trang 60Yêu cầu: Vẽ lại và gắn dữ liệu hoạt động như hình trên.
- Bài giải:
Thiết lập kết nối màn hình HMI với PLC
Made By Stormy
Trang 61Tạo các tag cho PLC
Gắn tag Button, I/O Field và LAMP
Button
Made By Stormy
Trang 62I/O Field
Made By Stormy
Trang 63Viết chương trình cho PLC:
Made By Stormy
Trang 644: Tài liệu hướng dẫn:
https://www.youtube.com/watch?v=rYOlvYHuiCc
Made By Stormy
Trang 65Bài: 7 Lệnh chuyển đổi dữ liệu, thời gian thực.
1: Lệnh chuyển đổi dữ liệu:
- Các dạng dữ liệu chuyển đổi:
- Dữ liệu cần chuyển đổi
- Dữ liệu sau khi chuyển đổi
- EN: khi tác động xung 0 ->1 kiểu dữ liệu IN sẽ được chuyển sang kiểu dữ liệu OUT
Made By Stormy
Trang 662: Ví dụ:
Giá trị cần chuyển đổi đang ở hệ thực sau khi chuyển qua hệ số nguyên đã được làm tròn
3: Lệnh chuyển đổi thời gian thực
Ở đây mình sử dụng lệnh đọc thời gian thực RD_Loc_T
3.1: Trước khi đọc các bạn cần khai báo kiểu dữ liệu cho RD_LOC_T
- Tạo 1 khối DB Real_Time
Tạo kiểu dữ cho Real time là DTL
Made By Stormy
Trang 67- Khai báo cho lệnh RD_LOC_T
- Để plc đọc đúng thời gian thực trên máy tính chúng ta cần chuyển múi giờ của plc thành
múi giờ GMT +7.
Click vào device configuration:
Click chuột phải vào PLC chọn properties
Made By Stormy
Trang 68Chọn time of day và chọn giờ UTC+7 của việt nam.
Sau đó các bạn download phần hardware cho plc
Và kiểm tra thời gian đọc
Trong Online & diagnostics chọn Set time và tích vào take from PG/PC click ApplySau đó kiểm tra bằng cách vào DB Real_time giám sát
Made By Stormy
Trang 694: Tài liệu tham khảo:
https://www.youtube.com/watch?v=YzhVBfmjT-U
Made By Stormy
Trang 70Bài: 8 Xử lý tín hiệu Analog
1: Analog input.
S7 1200 đọc tín hiệu ngoại vi theo dải từ 0 ~ 10V, -10V ~ 10V, 0 ~ 20 ma, 4 ~ 20ma
1.1: Cách đấu nối:
Khi tín hiệu được đưa vào PLC sẽ ở dưới dạng số kiểu int (0~ 27648 – đối với tín hiệu 0~10V
và 0~ 20ma), (5529 ~ 27648 – đối với tín hiện 4 ~ 20ma) và ( -27648 ~ 27648 - đối với tín hiệu -10V ~ 10V)
Made By Stormy
Trang 711.2: Kiểm tra các địa chỉ dữ liệu của các chanel analog
Trong properties chọn AI chọn chanel 0 hoặc 1 tùy thuộc vào chanel đấu nối phần cứng.Các bước xử lý tín hiệu analog tạo 1 khối FC xử lý tín hiệu analog input
Khai báo các biến cho Funcion FC
Made By Stormy
Trang 72Để xử lý tín hiệu analog input t sử dụng 2 hàm Norm_X và Scale_X
- Norm_X: là khối chuyển đổi dữ liệu OUT luôn tỉ lệ với Value MIN <= OUT <= MAX
o Chuyển đổi từ Value sang OUT
- Scale_X tỉ lệ của Value luôn tỉ lệ với OUT với MIN < = OUT <= MAX
Cấu hình như hình vẽ sau:
Made By Stormy
Trang 73K1: 0
K2: 27648
PIW: Địa chỉ đầu vào analog
Temp: Giá trị trung gian
L_lim: giới hạn dưới sau khi chuyển đổi
H_lim giới hạn trên sau khi chuyển đổi
AI_Real: Giá trị thực sau khi chuyển đổi( 0 - > 100% , 0 - >10V,…)
Lưu ý: Các giá trị trên dành cho xử lý tín hiệu analog
Sau đó ta sử dụng FC như 1 chương trình con để sử dụng ở những Ct con khác
Trang 74Sử dụng tương tự analog input
Tín hiệu từ 0~10 trong PLC sẽ được đưa ra 0~10V hoặc 0~20ma, 4~20ma bằng các module
Trang 754: Tài liệu tham khảo:
https://www.youtube.com/watch?v=gN8hP58ZDsA
Made By Stormy
Trang 76Bài: 9 lập trình điều khiển động cơ bước, servo.
1: Tổng quan về động cơ bước và động cơ servo.
1.1: Động cơ bước:
- Là một loại động cơ điện có nguyên lý ứng dụng khác biệt với đa số các động cơ điện thông thường Chúng thực chất là một động cơ đồng bộ dung để biến đổi các tín hiệu điều dưới dạng xung rời rạc kế tiếp nhau thành các chuyển động góc quay hoặc các chuyển động của roto có khả năng cố định roto vào các vị trí cần thiết
2: Phân biệt xung PTO và PWM
Trang 77PTO( Count up A and Count down B): Với chế độ này thì ngõ ra P0 phát xung thuận, P1 phát xung nghịch.
PTO(Pulse A and Direction B): Với chế độ này ngõ ra P0 thực hiện phát xung và ngõ ra P1 điều khiển hướng xung
PTO(A/B Phase – Shifted): Cả 2 ngõ ra P0 và P1 đều phát xung nhưng lệnh nhau 90 độ
PTO(A/B Phase – Shifted – fourfold): Cả 2 ngõ ra P0 và P1 đều phát xung nhưng lệch nhau 1 góc 90 độ
Lưu ý: P0 là ngõ ra phát xung đầu tiên, P1 là ngõ ra tiếp theo trong cặp ( P0 là Q0.0, P1 là Q0.1)
3: Cách khởi tạo dự án điều khiển động cơ servo
- Bước 1:Cấu hình chanel xung PTO cho PLC
Trong properties chọn chanel PTO1/PWM1 chọn enable
- Bước 2: cấu hình ngõ ra xung và hướng
Made By Stormy