Professional Documents
Culture Documents
CHƯƠNG MỘT
PLC viết tắt của Programmable Logic Controlle, là thiết bị điều khiển lập trình
được (khả trì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. Người sử dụng có thể lập trình để thực hiện một loạt trình
tự các sự kiện. Các sự kiện này được kích hoạt bởi tác nhân kích thích (ngõ vào) tác
động vào PLC hoặc qua các hoạt động có trễ như thời gian định thì hay các sự kiện
được đếm. Một khi sự kiện được kích hoạt thật sự, nó bật ON hay OFF thiết bị điều
khiển bên ngoài được gọi là thiết bị vật lý. Một bộ điều khiển lập trình sẽ liên tục
“lặp” trong chương trình do “người sử dụng lập ra” chờ tín hiệu ở ngõ vào và xuất tín
hiệu ở ngõ ra tại các thời điểm đã lập trình.
Để khắc phục những nhược điểm của bộ điều khiển dùng dây nối ( bộ điều khiển
bằng Relay) người ta đã chế tạo ra bộ PLC nhằm thỏa mãn các yêu cầu sau :
- Lập trình dể dàng , ngôn ngữ lập trình dể học .
- Gọn nhẹ, dể dàng bảo quản , sửa chữa.
- Dung lượng bộ nhớ lớn để có thể chứa được những chương trình phức tạp .
- Hoàn toàn tin cậy trog môi trường công nghiệp .
- Giao tiếp được với các thiết bị thông minh khác như : máy tính, nối mạng, các
mô Modul mở rộng.
- Giá cả có thể cạnh tranh được.
Các thiết kế đầu tiên là nhằm thay thế cho các phần cứng Relay dây nối và các
Logic thời gian .Tuy nhiên, bên cạnh đó việc đòi hỏi tăng cường dung lượng nhớ và
tính dể dàng cho PLC mà vẫn bảo đảm tốc độ xử lý cũng như giá cả … Chính điều
này đã gây ra sự quan tâm sâu sắc đến việc sử dụng PLC trong công nghiệp . Các tập
lệnh nhanh chóng đi từ các lệnh logic đơn giản đến các lệnh đếm , định thời , thanh
ghi dịch … sau đó là các chức năng làm toán trên các máy lớn … Sự phát triển các
máy tính dẫn đến các bộ PLC có dung lượng lớn , số lượng I / O nhiều hơn.
Trong PLC, phần cứng CPU và chương trình là đơn vị cơ bản cho quá trình điều
khiển hoặc xử lý hệ thống. Chức năng mà bộ điều khiển cần thực hiện sẽ được xác
định bởi một chương trình . Chương trình này được nạp sẵn vào bộ nhớ của PLC,
PLC sẽ thực hiện viêc điều khiển dựa vào chương trình này. Như vậy nếu muốn thay
đổi hay mở rộng chức năng của qui trình công nghệ , ta chỉ cần thay đổi chương trình
bên trong bộ nhớ của PLC . Việc thay đổi hay mở rộng chức năng sẽ được thực hiện
một cách dể dàng mà không cần một sự can thiệp vật lý nào so với các bộ dây nối
hay Relay .
Hiện nay với sự phát triển của ngành công nghiệp điện tử đã cho phép chế tạo các
hệ vi xử lý liên tiếp, dựa trên cơ sở của bộ vi xử lý, các bộ điêu khiển logic có khả
nẳng lập trình được (PLC) đã ra đời, cho phép khắc phục được rất nhiều nhược điểm
của các hệ điều khiển liên kết cứng trước đây, việc dùng PLC đã trở nên rất phổ biến
trong công nghiệp tự động hoá. Có thể liệt kế các ưu điểm chính của việc sử dụng
PLC gồm:
- Giảm bớt việc đấu nối dây khi thiết kế hệ thống, giá trị logic của nhiệm vụ điều
khiển được thực hiện trong chương trình thay cho việc đấu nối dây.
- Tính mềm dẻo cao trong hệ thống.
GVHD: Nguyễn Đức Toàn 1 NHÓM THỰC HIỆN
Phạm Song Toàn
Nguyễn Văn Thuần
Dương Đình Thế
ĐỒ ÁN HỌC PHẦN 1A PLC S7-200
Bộ định
+ Khối vi thời
Bộ đếm xử lý
vào-ra trung tâm Bộ đếm
+ Hệ điều
hành Bit cơ
Cổng
Bus của PLC
vào ra
Onboard
Quản lý ghép
Cổng nối
ngắt và
đếm tốc
độ cao
a. Cấu trúc
Dựa vào sơ đồ khối ta thấy PLC gồm có 4 khối chính đó là: Khối nguồn, khối vi
xử lý – bộ nhớ, khối đầu vào, khối đầu ra. Thông thường các tín hiệu xuất nhập đầu ở
dạng số (1- 0), còn nếu tín hiệu là dạng liên tục thì ta cần gắn các khối xuất nhập ở
dạng liên tục (Analog).
Thực hiện
Truyền thông và chương trình
kiểm tra bộ nhớ
Hình 3: Chu kỳ thực hiện vòng quét của CPU trong bộ PLC
Trong quá trình thực hiện chương trình CPU luôn làm việc với bảng ảnh ra. Tiếp theo
của việc quét chương trình là truyền thông nội bộ và tự kiểm tra lỗi. Vòng quét được
kết thúc bằng giai đoạn chuyển dữ liệu từ bộ đệm ảo ra ngoại vi. Những trường hợp
cần thiết phải cập nhật module ra ngay trong quá trình thực hiện chương trình. Các
PLC hiện đại sẽ có sẵn các lệnh để thực hiện điều này. Tập lệnh của PLC chứa các
lệnh ra trực tiếp đặc biệt, lệnh này sẽ tạm thời dừng hoạt động bình thường của
chương trình để cập nhật module ra, sau đó sẽ quay lại thực hiện chương trình. Thời
gian cần thiết để PLC thực hiện được một vòng quét gọi là thời gian vòng quét (Scan
time). Thời gian vòng quét không cố định, tức là không phải vòng quét nào cũng được
thực hiện trong một khoảng thời gian như nhau. Có vòng quét được thực hiện lâu, có
vòng quét được thực hiện nhanh tuỳ thuộc vào số lệnh trong chương trình được thực
hiện, vào khối lượng dữ liệu được truyền thông trong vòng quét đó. Một vòng quét
chiếm thời gian quét ngắn thì chương trình điều khiển được thực hiện càng nhanh.
Nguyên lý hoạt động dựa trên các bộ phận sau :
thiết bị liên kết để thực thi. Và toàn bộ các hoạt động thực thi đó đều phụ thuộc vào
chương trình điều khiển được giữ trong bộ nhớ.
Hệ thống bus
Hệ thống Bus là tuyến dùng để truyền tín hiệu, hệ thống gồm nhiều đường tín
hiệu song song :
Address Bus : Bus địa chỉ dùng để truyền địa chỉ đến các Modul khác nhau.
Data Bus : Bus dùng để truyền dữ liệu.
Control Bus : Bus điều khiển dùng để truyền các tín hiệu định thì và điểu khiển
đồng bộ các hoạt động trong PLC .
Trong PLC các số liệu được trao đổi giữa bộ vi xử lý và các modul vào ra thông
qua Data Bus. Address Bus và Data Bus gồm 8 đường, ở cùng thời điểm cho phép
truyền 8 bit của 1 byte một cách đồng thời hay song song.
Nếu môt modul đầu vào nhận được địa chỉ của nó trên Address Bus , nó sẽ
chuyển tất cả trạnh thái đầu vào của nó vào Data Bus. Nếu một địa chỉ byte của 8 đầu
ra xuất hiện trên Address Bus, modul đầu ra tương ứng sẽ nhận được dữ liệu từ Data
bus. Control Bus sẽ chuyển các tín hiệu điều khiển vào theo dõi chu trình hoạt động
của PLC .
Các địa chỉ và số liệu được chuyển lên các Bus tương ứng trong một thời gian
hạn chế.
Hê thống Bus sẽ làm nhiệm vụ trao đổi thông tin giữa CPU, bộ nhớ và I/O . Bên
cạch đó, CPU được cung cấp một xung Clock có tần số từ 118 MHZ. Xung này quyết
định tốc độ hoạt động của PLC và cung cấp các yếu tố về định thời, đồng hồ của hệ
thống.
Bộ nhớ
PLC thường yêu cầu bộ nhớ trong các trường hợp :
Làm bộ định thời cho các kênh trạng thái I/O.
Làm bộ đệm trạng thái các chức năng trong PLC như định thời, đếm, ghi các
Relay.
Mỗi lệnh của chương trình có một vị trí riêng trong bộ nhớ, tất cả mọi vị trí trong
bộ nhớ đều được đánh số, những số này chính là địa chỉ trong bộ nhớ .
Địa chỉ của từng ô nhớ sẽ được trỏ đến bởi một bộ đếm địa chỉ ở bên trong bộ vi
xử lý. Bộ vi xử lý sẽ giá trị trong bộ đếm này lên một trước khi xử lý lệnh tiếp theo .
Với một địa chỉ mới , nội dung của ô nhớ tương ứng sẽ xuất hiện ở đấu ra, quá trình
này được gọi là quá trình đọc .
Bộ nhớ bên trong PLC được tạo bỡi các vi mạch bán dẫn, mỗi vi mạch này có khả
năng chứa 2000 ÷ 16000 dòng lệnh , tùy theo loại vi mạch. Trong PLC các bộ nhớ
như RAM, EPROM đều được sử dụng .
RAM (Random Access Memory ) có thể nạp chương trình, thay đổi hay xóa bỏ nội
dung bất kỳ lúc nào. Nội dung của RAM sẽ bị mất nếu nguồn điện nuôi bị mất . Để
tránh tình trạng này các PLC đều được trang bị một pin khô, có khả năng cung cấp
năng lượng dự trữ cho RAM từ vài tháng đến vài năm. Trong thực tế RAM được dùng
để khởi tạo và kiểm tra chương trình. Khuynh hướng hiện nay dùng CMOSRAM nhờ
khả năng tiêu thụ thấp và tuổi thọ lớn .
EPROM (Electrically Programmable Read Only Memory) là bộ nhớ mà người sử
dụng bình thường chỉ có thể đọc chứ không ghi nội dung vào được . Nội dung của
EPROM không bị mất khi mất nguồn , nó được gắn sẵn trong máy , đã được nhà sản
xuất nạp và chứa hệ điều hành sẵn. Nếu người sử dụng không muốn mở rộng bộ nhớ
GVHD: Nguyễn Đức Toàn 6 NHÓM THỰC HIỆN
Phạm Song Toàn
Nguyễn Văn Thuần
Dương Đình Thế
ĐỒ ÁN HỌC PHẦN 1A PLC S7-200
thì chỉ dùng thêm EPROM gắn bên trong PLC . Trên PG (Programer) có sẵn chổ ghi
và xóa EPROM.
Môi trường ghi dữ liệu thứ ba là đĩa cứng hoạc đĩa mềm, được sử dụng trong máy
lập trình. Đĩa cứng hoăc đĩa mềm có dung lượng lớn nên thường được dùng để lưu
những chương trình lớn trong một thời gian dài .
a. Xử lý chương trình
Khi một chương trình đã được nạp vào bộ nhớ của PLC , các lệnh sẽ được trong
một vùng địa chỉ riêng lẻ trong bộ nhớ .
PLC có bộ đếm địa chỉ ở bên trong vi xử lý, vì vậy chương trình ở bên trong bộ
nhớ sẽ được bộ vi xử lý thực hiện một cách tuần tự từng lệnh một, từ đầu cho đến cuối
chương trình . Mỗi lần thực hiện chương trình từ đầu đến cuối được gọi là một chu
kỳ thực hiện. Thời gian thực hiện một chu kỳ tùy thuộc vào tốc độ xử lý của PLC và
độ lớn của chương trình. Một chu lỳ thực hiện bao gồm ba giai đoạn nối tiếp nhau :
• Đầu tiên, bộ xử lý đọc trạng thái của tất cả đầu vào. Phần chương trình phục vụ
công việc này có sẵn trong PLC và được gọi là hệ điều hành .
• Tiếp theo, bộ xử lý sẽ đọc và xử lý tuần tự lệnh một trong chương trình. Trong
ghi đọc và xử lý các lệnh, bộ vi xử lý sẽ đọc tín hiệu các đầu vào, thực hiện các phép
toán logic và kết quả sau đó sẽ xác định trạng thái của các đầu ra.
• Cuối cùng, bộ vi xử lý sẽ gán các trạng thái mới cho các đầu ra tại các modul đầu
ra.
b. Xử lý xuất nhập
Gồm hai phương pháp khác nhau dùng cho việc xử lý I / O trong PLC :
được thực hiện thì các ngỏ ra cài lại vào đơn vị I / O, vì thế nên chúng vẫn giữ được
trạng thái cho tới khi lần cập nhật kế tiếp.
CHƯƠNG HAI
PLC S7-200 là một loại PLC cỡ nhỏ của công ty Siemens. Cấu trúc S7-200 gồm
1 CPU và các module mở rộng cho nhiều ứng dụng khác nhau.S7-200 gồm nhiều loại:
CPU 221, 222, 224, 226….có nhiều nhất 7 module mở rộng khi có nhu cầu: tổng số
ngõ vào/ra, ngõ vào/ra Analog, kết nối mạng ( AS-I, Profibus ).
Bộ điều khiển lập trình S7-200 được chia thành 4 vùng nhớ. Với 1 tụ có nhiệm vụ
duy trì dữ liệu trong thời gian nhất định khi mất nguồn bộ nhớ S7-200 có tính năng
động cao, đọc và ghi trong phạm vi toàn vùng loại trừ các bít nhớ đặc biệt SM
( Special Memory) chỉ có thể truy nhập để đọc.
Vùng chương trình: Là vùng bộ nhớ được sử dụng để lưu trữ các lệnh chương
trình vùng này thuộc bộ nhớ trong đọc và ghi được.
Vùng tham số: Là vùng lưu giữ các tham số như: Từ khoá, địa chỉ trạm….cũng
giống như vùng chương trình thuộc bộ nhớ trong đọc và ghi được.
Vùng dữ liệu: Là vùng nhớ động được sử dụng cất các dữ liệu của chương
trình bao gồm các kết quả các phép tính nó được truy cập theo từng bit từng byte
vùng này được chia thành những vùng nhớ với các công dụng khác nhau.
- Vùng I (Input image register): Là vùng nhớ gồm 16 byte I (đọc/ghi): I.O -
I.15
GVHD: Nguyễn Đức Toàn 12 NHÓM THỰC HIỆN
Phạm Song Toàn
Nguyễn Văn Thuần
Dương Đình Thế
ĐỒ ÁN HỌC PHẦN 1A PLC S7-200
Vùng đối tượng: Là timer (định thì), counter (bộ đếm) tốc độ cao và các cổng
vào/ra tương tự được đặt trong vùng nhớ cuối cùng vùng này không thuộc kiểu non –
volatile nhưng đọc ghi được.
- Timer (bộ định thì): đọc/ghi T0 -T255
- Counter (bộ đếm): đọc/ghi C0 - C255
- Bộ đệm vào analog (đọc): AIW0 - AIW30
- Bộ đệm ra analog (ghi): AQW0 - AQW30
- Accumulator (thanh ghi): AC0 - AC3
- Bộ đếm tốc độ cao: HSC0 - HSC5
Tất cả các miền này đều có thể truy nhập được theo từng bit, từng byte, từng từ đơn
(word – 2byte), từ kép (Double word).
Cấu trúc chương trình:
- Chương trình cho S7-200 phải có cấu trúc bao gồm chương trình chính (main
program) sau đó đến các chương trình con và các chương trình xử lý ngắt.
- Chương trình chính được kết thúc bằng lệnh kết thúc chương trình (MEND).
- Các chương trình xử lý ngắt là một bộ phận của chương trình, nếu cần sử dụng
chương trình xử lý ngắt phải viết sau lệnh kết thúc MEND.
- Các chương trình con được nhóm lại thành một nhóm ngay sau chương trình
chính, sau đó đến ngay các chương trình xử lý ngắt bằng cách viết như vậy cấu
trúc chương trình được rõ ràng và thuận tiện hơn trong việc đọc chương trình có
thể trộn lẫn các chương trình con và chương trình xử lý ngắt đằng sau chương
trình chính.
CHƯƠNG BA
n n: I, Q, M,
LD n Tiếp điểm thường mở sẽ đóng khi n = 1
┤├ SM, (bit) T,
n C
LDN n Tiếp điểm thường đóng sẽ mở khi n = 1
┤/├
• OUTPUT (=):
Lệnh sao chép nội dung của bit đầu tiên trong ngăn xếp vào bit được chỉ định
trong lệnh. Nội dung ngăn xếp không bị thay đổi.
LAD Mô tả Toán hạng
n Cuộn dây đầu ra ở trạng thái kích thích khi n: I, Q, M, SM,
─( ) T, C
có dòng điều khiển đi qua
(bit)
n Cuộn dây đầu ra được kích thích tức thời n: Q (bit)
─( I )
khi có dòng điều khiển đi qua
khiển đến các cuộn dây thì các cuôn dây đóng hoặc mở các tiếp điểm. Trong STL,
lệnh truyền trạng thái bit đầu tiên của ngăn xếp đến các điểm thiết kế. Nếu bit này có
giá trị bằng 1, các lệnh S hoặc R sẽ đóng ngắt tiếp điểm hoặc một dãy các tiếp điểm
(giới hạn từ 1 đến 255). Nội dung của ngăn xếp không bị thay đổi bởi các lệnh này.
VD: Khi tiếp điểm I0.0 đóng lệnh Set hoặc Reset sẽ đóng (ngắt) một mảng
gồm n (5) tiếp điểm kể từ Q0.0.
I0.0 Q0.0 I0.0 Q0.0
s R
5 5
• OR (O).
Tín hiệu ra sẽ bằng 1 khi ít nhất có một tín hiệu vào bằng 1.
LD I0.0
I0.1 O I0.1
= Q0.0
• OR NOT (ON)
Dạng LAD Dạng STL
I0.0 Q0.0
LD I0.0
I0.1
O I0.1
= Q0.0
NOT N P
Có thể dùng các lệnh tiếp điểm đặc biệt để phát hiện sự chuyển tiếp trạng thái
của xung (sườn xung) và đảo lại trạng thái của dòng cung cấp (giá trị đỉnh của ngăn
xếp). LAD sử dụng các tiếp điểm đặc biệt này để tác động vào dòng cung cấp. Các
tiếp điểm đặc biệt này không có toán hạng riêng của chúng vì thế phải đặt chúng phía
trước cuộn dây hoặc hộp đầu ra. Tiếp điểm chuyển tiếp dương/âm (các lệnh trước và
sườn sau) có nhu cầu về bộ nhớ, bởi vậy đối với CPU 224 có thể sử dụng nhiều nhất
là 256 lệnh.
LD I0.0
I0.0 Q0.0
EU
P
= Q0.0
LD I0.0
I0.0 ED
Q0.1
N = Q0.1
LD I0.0
NOT
= Q0.2
Q0.2
I0.0
NOT
I0.0
Q0.0
Q0.2
Q0.1
logic từ 0 lên 1, được gọi là thời điểm Timer được kích, và không tính khoảng thời
gian khi đầu vào có giá trị logic 0 vào thời gian trễ tín hiệu đặt trước.
Khi đầu vào có giá trị logic bằng 0, TON tự động Reset còn TONR thì không. Timer
TON được dùng để tạo thời gian trễ trong một khoảng thời gian (miền liên thông),
còn với TONR thời gian trễ sẽ được tạo ra trong nhiều khoảng thời gian khác nhau.
Timer TON và TONR bao gồm 3 loại với 3 độ phân giải khác nhau, độ phân giải 1ms,
10ms và 100ms. Thời gian trễ τ được tạo ra chính là tích của độ phân giải của bộ
Timer được chọn và giá trị đặt trước cho Timer. Ví dụ có độ phân giải 10ms và giá trị
đặt trước 50 thì thời gian trễ là 500ms.
• Cú pháp khai báo sử dụng Timer như sau:
LAD Mô tả Toán hạng
Khai báo Timer số hiệu xx kiểu TON để Txx (Word)
CPU 214: 32-63,
TON-Txx tạo thời gian trễ tính từ khi đầu vào IN
96-127
được kích. Nếu như giá trị đếm tức thời PT: VW, T, (Word) C,
IN lớn hơn hoặc bằng giá trị đặt trước PT thì
IW, QW, MW, SMW,
C, hằng số.
T-bit có giá trị logic bằng1. Có thể Reset
PT Timer kiểu TON bằng lệnh R hoặc bằng
giá trị logic 0 tại đầu vào IN.
Khai báo Timer số hiệu xx kiểu TONR để Txx (Word)
tạo thời gian trễ tính từ khi đầu vào IN CPU 214: 0-31,
TONR-Txx được kích. Nếu như giá trị đếm tức thời 64-95
IN lớn hơn hoặc bằng giá trị đặt trước PT thì PT: VW, TR, (Word)
T-bit có giá trị logic bằng1. Chỉ có thể C, IW, QW, MW,
PT Reset Timer kiểu TONR bằng lệnh R cho SMW, AC, AIW, hằng
T-bit. số.
Khi sử dụng Timer TONR, giá trị đếm tức thời được lưu lại và không bị thay
đổi trong khoảng thời gian khi tín hiệu đầu vào có logic 0. Giá trị của T-bit không
được nhớ mà hoàn toàn phụ thuộc vào số kết quả so sánh giữa giá trị đếm tức thời và
giá trị đặt trước.
Khi Reset một Timer, T-word và T-bit của nó đồng thời được xóa và có giá trị
bằng 0, như vậy giá trị đếm tức thời được đặt về 0 và tín hiệu đầu ra cũng có trạng
thái logic 0.
GVHD: Nguyễn Đức Toàn 20 NHÓM THỰC HIỆN
Phạm Song Toàn
Nguyễn Văn Thuần
Dương Đình Thế
ĐỒ ÁN HỌC PHẦN 1A PLC S7-200
50 PT 10ms
10 PT 10ms
TONR T33, 10
I0.0
MAX =32767
PT =50 PT =50
T33 (Current )
T33 ( Bit)
I0.0
MAX =32767
PT =10
T33 (Current)
T33 ( Bit)
PV *AC
Khai báo bộ đếm tiến/lùi, đếm Cxx: (Word)
CTD - Cxx tiến theo sườn lên của CU, đếm CPU 214 : 48-79
LAD STL
I0.0
I0.1
6
5
4
3
2
C40 1
cunrrent 0 0
C40 (bit )
LAD STL
I0.0 C48
CU CTUD
LD I0.0
LD I0.1
I0.1
CD LD I0.2
I0.2
CTUD C48, +5
R
+5 PV
I0.0 (CU)
I0.1 (CD)
I0.2
6
5 5
4
3
2
1
C48 (word)
current 0 0
C48 (bit)
n1 n2 D = Double Integer
= =D
n1 n2
= =R R = Real
n1 n2
> =B Tiếp điểm đóng khi n1>= n2
B = byte n1, n2 (Word): VW, T, C,
n1 n2 QW, MW, SMW, AC,
> =I I = Integer = Word AIW, hằng số, *VD, *AC
n1 n2
> =D D = Double Integer
n1 n2 R = Real
> =R
n1 n2
Tiếp điểm đóng khi n1<= n2
<= B B = byte n1, n2 (Dword): VD, ID,
n1 QD, MD, SMD, AC, HC,
n2
I = Integer = Word hằng số, *VD, *AC
<= I
n1 n2
D = Double Integer
<= D
n1 n2 R = Real
<= R
VB0 IN1
VB1 IN2 VB1
ANDB VB0, VB1
OUT
Lệnh thực hiện phép AND từng bit của hai byte ngõ vào IN1 và IN2, kết quả
được ghi vào một byte ở ngõ ra OUT, địa ngõ ra có thể giống ngõ vào.
Toán hạng trong câu lệnh thuộc một trong các vùng địa chỉ sau:
IN1: VB, T, C, IB, QB, SMB, AC, Const
IN2: VB, T, C, IB, QB, SMB, AC
Ví dụ:
1 0 0 0 1 1 1 0 VB10
AND
VB20
0 0 1 1 0 1 1 1
Kết quả
0 0 0 0 0 1 1 0 VB20
• Lệnh AND word:
Lệnh thực hiện phép AND thừng bit của hai Word ngõ vào IN1 và IN2, kết
quả được ghi vào 1 Word ở ngõ ra OUT, địa chỉ ngõ ra có thể khác ngõ vào.
Toán hạng trong câu lệnh thuộc một trong các vùng địa chỉ sau:
IN1: VW, T, C, IW, SMW, AC, Const
IN2: VW, T, C, IW, QW, SMW, AC
WAND_W
EN ANDW VW0, VW1
VW0 IN1
VW2 IN2 OUT VW2
Ví dụ:
1 0 1 0 1 1 1 0 0 1 1 1 1 1 0 1
VW10
AND
1 0 0 0 1 0 1 0 1 1 0 1 1 1 0 1
VW12
Kết quả
1 0 0 0 1 0 1 0 0 1 0 1 1 1 0 1
VW12
• Lệnh AND dword :
WAND_DW
EN ORB VB0, VB1
VD0 IN1
VD4 IN2 OUT
• Lệnh OR byte.
Dạng LAD Dạng STL
WOR_B
EN ORB VB0, VB1
VB0 IN1
VB1 IN2 OUT
Lệnh thực hiện phép OR từng bit của hai byte ngõ vào IN1, IN2, kết quả thu được ghi
vào 1 byte ở ngõ ra OUT, địa chỉ ngõ ra có thể khác ngõ vào.
Toán hạng trong câu lệnh thuộc một trong các vùng địa chỉ sau:
IN1: VB, T, C, IB, QB, SMB, AC, Const
IN2: VB, T, C, IB, QB, SMB, AC
Ví dụ:
1 0 0 0 1 1 1 0 VD10
OR
0 0 1 1 0 1 1 1 VD20
Kết quả
1 0 1 1 1 1 1 1 VD20
• Lệnh OR word:
Dạng LAD Dạng STL
WOR_W
EN
ORW VW0, VW2
VW0 IN1
VW2 IN2 OUT VW2
• Lệnh OR Double word:
Dạng LAD Dạng STL
WOR_DW
EN ORDW VD0, VD4
VD0 IN1
VD4 IN2 OUT VD4
Các lệnh di chuyển thực hiện việc di chuyển hoặc sao chép số liệu từ vùng này
sang vùng khác trong bộ nhớ. Trong LAD và STL lệnh dịch chuyển thực hiện việc di
chuyển hay sao chép nội dung 1 byte, 1 từ đơn, hoặc 1 từ kép từ vùng này sang vùng
khác trong bộ nhớ. Lệnh trao đổi nội dung của 2 byte trong một từ đơn thực hiện việc
chuyển nội dung của byte thấp sang byte cao và ngược lại chuyển nội dung của byte
cao sang byte thấp của từ đó.
• MOV_B.
Dạng LAD Dạng STL
MOV_B
EN
MOVB VB0, VB0
IO.0
LD I0.0
MOV_B
EN
MOVB 0,VB0
0 IN OUT VB0
LD I0.1
IO.1 MOVB 12,VB0
MOV_B
EN
12 IN OUT VB0
Giải thích:
Nếu tiếp điểm I0.0 đóng thì lấy giá trị 0 ghi vào byte VB0 (xóa VB0)
Tiếp theo đóng tiếp điểm I0.1 thì lấy số 12 ghi vào VB0. Kết quả địa chỉ byte
VB0 có giá trị bằng 12 (nhị phân).
• MOV_W.
Dạng LAD Dạng STL
MOV_W
EN
Lệnh sao chép nội dung của Word ở địa chỉ ngõ vào IN sang Word có
địa chỉ ở ngõ ra OUT, địa chỉ ngõ ra có thể giống ngõ vào, nằm trong các vùng
sau:
IN: VW, IW, QW, MW, SMW, AC, Const
OUT: VW, IW, QW, MW, SMW, AC
• MOV_DW.
Dạng LAD Dạng STL
MOV_DW
EN MOVDW VD0, VD0
Lệnh sao chép nội dung của Dword ở địa chỉ ngõ vào IN sang Dword có
địa chỉ ở ngõ ra OUT, địa chỉ ngõ ra có thể giống ngõ vào, nằm trong các vùng
sau:
IN: VDW, IDW, QDW, MDWW, SMD, AC, Const
OUT: VDW, IDW, QDW, MDW, SMDW, AC.
• MOV_R: (dịch chuyển số thực).
Dạng LAD Dạng STL
MOV_R
EN MOVR VD0, VD0
Lệnh sao chép nội dung của số thực chứa trong Double Word có địa chỉ ở ngõ
vào IN sang Double Word có địa chỉ ở ngõ ra OUT, địa chỉ ngõ ra có thể khác ngõ
vào, thường nằm trong các vùng sau:
IN: VR, IR, QR, MR, SMR, AC, Const
OUT: VR, IR, QR, MR, SMR, AC
Khi dữ liệu ghi vào trong các địa chỉ này theo nguyên tắc sau:
Phần nguyên ghi vào Word thấp
Phần thập phân ghi vào Word cao
Ví dụ:
LAD STL
IO.0 MOV_R
LD I0.0
EN
MOVR 0.0,VD0
0.0000000 IN OUT VD0
LD I0.1
IO.1
MOV_R MOVR 30.2,VD0
EN
Tiếp điểm I0.0 đóng thì xóa Double Word 0 (VD0), tiếp điểm I0.1 đóng thì
ghi số thực 30.2 vào Double Word (VD0), kết quả như sau:
VD0
Lệnh này có tác dụng chuyển đổi các số trong hệ thập lục phân từ 0 đến F
( dạng nhị phân) chứa trong 4 bit thấp của byte có địa chỉ ở ngõ vào IN thành giá trị
bit chứa trong 8 bit của byte có địa chỉ ở ngõ ra OUT tương ứng với thanh led 7 đoạn
CK, địa chỉ ngõ ra có thể giống ngõ vào, nằm trong những vùng sau:
IN: VB,IB, QB, MB, SMB, SC, Const
OUT: VB, IB, AB, MB, SMB, AC
Ví dụ:
Dạng LAD Dạng STL
I0.0 MOV _W
EN
3 IN OUT VW0
LD I0.0
MOVW +3, VW0
I0.1
IN SEG
LD I0.1
SEG VB0, AC0
Khi tiếp điểm I0.0 đóng thì số 3 được ghi vào VW0, tiếp điểm I0.1 đóng thì
giá trị chứa trong 4 bit thấp của byte VB0 chuyển thành 8 bit chứa trong thanh ghi
AC0.
IN OUT VW0
BCDI VW0
Lệnh này thực hiện phép biến đổi một số dạng mã BCD 16 bit chứa trong
Word có địa chỉ ở ngõ vào IN sang số nguyên nhị phân 16 bit chứa trong Word có địa
chỉ ở ngõ ra OUT, địa chỉ ngõ ra có thể giống ngõ vào, thường nằm trong trong các
vùng sau:
IN : VW, T, C, IW, QW, MW, SMW, AC, AIW, Const
OUT : VW, T, C, IW, QW, MW, SMW, AC.
IN OUT VW0
IBCD VW0
Lệnh này thực hiện phép biến đổi một số số nguyên dạng nhị phân 16 bit chứa
trong Word có địa chỉ ở ngõ vào IN sang mã BCD 16 bit chứa trong Word có địa chỉ
ở ngõ ra OUT, địa chỉ ngõ ra có thể giống ngõ vào, thường nằm trong trong các vùng
sau:
IN : VW, T, C, IW, QW, MW, SMW, AC, AIW, Const
OUT : VW, T, C, IW, QW, MW, SMW, AC.
Lệnh có tác dụng đảo giá trị từng bit của toán hạng DW có địa chỉ ngõ vào IN
rồi ghi kết quả vào Dword có địa chỉ ở ngõ ra OUT. Lệnh này còn được gọi là lệnh
lấy giá trị bù của một số.
Ví dụ:
0 0 0 0 0 1 1 1 VB10
INVB
1 1 1 1 1 0 0 0 VB10
• Lệnh cộng số nguyên 1 vào nội dung byte, Word, Double Word.
Dạng LAD Dạng STL
INC_B
EN
INCB VB0
VB0 IN OUT VB0
INC_W
EN
INCW VW0
VW0 IN OUT VW0
INC_DW
EN
INCD VD0
VD0 IN OUT VD0
Những lệnh này có tác dụng cộng số nguyên 1 với nội dụng byte, Word,
Double Word có địa chỉ ở ngõ vào IN, kết quả được ghi vào byte, Word, Double
Word có địa chỉ ở ngõ ra OUT. Ngõ vào IN và ngõ ra OUT có thể cùng địa chỉ. Lệnh
này có sử dụng các bit nhớ đặc biệt SM1.0, SM1.1, SM1.2 để báo trạng thái kết quả
phép tính theo nguyên tắc sau:
Kết quả tính SM 1.0 SM 1.1 SM 1.2
=0 1
Số âm 1
> byte 1
• Lệnh trừ số nguyên 1 vào nội dung byte, Word, Double Word.
DEC_W
EN
DECW VW0
VW0 IN OUT VW0
DEC_DW
EN
DECD VD0
VD0 IN OUT VD0
Những lệnh này có tác dụng lấy nội dụng byte, Word, Double Word có địa chỉ
ở ngõ vào IN trừ đi 1đơn vị, kết quả được ghi vào byte, Word, Double Word có địa
GVHD: Nguyễn Đức Toàn 35 NHÓM THỰC HIỆN
Phạm Song Toàn
Nguyễn Văn Thuần
Dương Đình Thế
ĐỒ ÁN HỌC PHẦN 1A PLC S7-200
chỉ ở ngõ ra OUT. Ngõ vào IN và ngõ ra OUT có thể cùng địa chỉ. Lệnh này có sử
dụng các bit nhớ đặc biệt SM1.0, SM1.1, SM1.2 để báo trạng thái kết quả phép tính
theo nguyên tắc sau:
Kết quả tính SM 1.0 SM 1.1 SM 1.2
=0 1
Số âm 1
> byte 1
VW0 IN1
+I VW0, VW2
VW2 IN2 OUT VW2
Lệnh thực hiện cộng các số nguyên 16 bit IN1 và IN2, kết quả là số nguyên 16
bit được ghi vào OUT, IN1 + IN2 =OUT, ngõ vào IN1, IN2 và ngõ ra VW2 có thể
cùng địa chỉ, thuộc các vùng nhớ sau:
IN1,IN2: VW, T, C, IW, QW, MW, SMW, AC, AIW, Const
OUT: VW, T, C, IW, QW, MW, SMW, AC, AIW
Lệnh thực hiện phép trừ các số nguyên 16 bit IN1 và IN2, kết quả là số
nguyên 16 bit được ghi vào OUT, IN1 - IN2 =OUT, ngõ vào IN1, IN2 và ngõ ra VW2
có thể cùng địa chỉ, thuộc các vùng nhớ sau:
IN1, IN2: VW, T, C, IW, QW, MW, SMW, AC, AIW, Const
OUT: VW, T, C, IW, QW, MW, SMW, AC, AIW
• Lệnh nhân số nguyên 16 bit.
GVHD: Nguyễn Đức Toàn 36 NHÓM THỰC HIỆN
Phạm Song Toàn
Nguyễn Văn Thuần
Dương Đình Thế
ĐỒ ÁN HỌC PHẦN 1A PLC S7-200
Lệnh này thực hiện phép nhân 2 số nguyên 16 bit IN1, IN2. Kết quả 32 bit
chứa trong từ kép OUT (4 byte).
• Lệnh chia số nguyên 16 bit.
Dạng LAD Dạng STL
DIV
EN
DIV VW0, VW2
VW0 IN1
Lệnh này thực hiện phép chia số nguyên 16 bit IN1 cho số nguyên 16 bit IN2.
Kết quả 32 bit chứa trong từ kép OUT (4 byte) gồm thương số ghi trong mảng 16 bit
từ bit 0 đến bit 15 và phần dư cũng 16 bit ghi trong mảng từ bit 16 đến bit 32. Trong
lệnh này có sử dụng các bít nhớ đặc biệt để báo trạng thái:
Trong thiết bị lập trình S7-200 từ CPU 214 trở đi thì trong CPU có một đồng
hồ ghi giá trị thời gian thực gồm các thông số về năm, tháng, giờ, phút, giây và ngày
trong tuần.
Đồng hồ được cấp điện liên tục bởi nguồn Pin 3V.
Khi thực hiện lập trình cho các hệ thống tự động điều khiển cần cập nhật giá
trị đồng hồ thời gian này ta phải thông qua 2 lệnh sau:
GVHD: Nguyễn Đức Toàn 37 NHÓM THỰC HIỆN
Phạm Song Toàn
Nguyễn Văn Thuần
Dương Đình Thế
ĐỒ ÁN HỌC PHẦN 1A PLC S7-200
• Lệnh đọc:
Dạng LAD Dạng STL
READ_RTC
EN
TODR VB0
VB0 T
Lệnh này đọc nội dung của đồng hồ thời gian thực rồi chuyển sang mã BCD
và lưu vào bộ đệm 8 byte liên tiếp nhau theo thứ tự như sau:
Byte 0 Năm ( 0 – 99) Byte 4 Phút ( 0 – 59)
Byte 1 Tháng ( 1 – 12) Byte 5 Giây (0 – 59)
Byte 2 Ngày ( 1 – 31) Byte 6 Không sử dụng
Byte 3 Giờ ( 0 – 23) Byte 7 Ngày trong tuần (1 - 7)
Trong đó byte đầu tiên được chỉ định bởi toán hạng T trong câu lệnh, byte 7
chỉ sử dụng 4 bit thấp để lưu giá trị các ngày trong tuần.
• Lệnh ghi:
Dạng LAD Dạng STL
SET_RTC
EN
TODW VB0
VB0 T
Lệnh này có tác dụng ghi nội dung của bộ đệm 8 byte với byte đầu tiên được
chỉ định trong toán hạng T vào đồng hồ thời gian thực. Trong đó T thuộc một trong
những vùng nhớ sau: VB, IB, QB, MB, SMB.
Nếu cần chỉnh sử các thông số về năm, tháng, ngày, giờ, phút, giây, ngày
trong tuần thì điều chỉnh các byte như sau:
T Byte 0 Năm ( 0 – 99)
CHƯƠNG BỐN
Khi đó hộp thoại xuất hiện hỏi chúng ta muốn cài chương trình ở đâu, mặc
định ở ổ đĩa C:\Program File. Nếu muốn thay đổi chọn nút Browse, nếu không chọn
Next để tiếp tục.
Hình 19. Kết thúc quá trình cài đặt, Restar lại máy tính
2. CÁCH SỪ DỤNG PHẦN MỀN Step 7 Micro Win.
Step7 MicroWin 3.2 hoặc 4.0 là phần mềm dùng để lập trình cho PLC S7-200.
a. Khởi động:
Cách 1: Vào Start/Simatic/Step 7 Micro Win 4.0
Sau khi khởi động xong trên màn hình xuất hiện giao diện như hình sau:
Vùng hiển thị trạng Cây lệnh của Chương trình chính(main),
thái chương trình chương trình con(sbr) , ngắt(int)
Hình 21. Các thành phần cơ bản của chương trình Step 7 Micro Win 4.0
Program Block (khối chương trình) được tạo từ mã thực thi và chú
thích. Mã thực thi gồm một chương trình chính (Main) và một số chương trình con
(SBR) hoặc chương trình phục vụ ngắt (INT). Mã này sẽ được biên dịch và chép
xuống PLC, còn chú thích chương trình thì vẫn giữ nguyên trên máy tính.
Symbol Table (bảng ký hiệu) là phương tiện cho phép người lập
trình sử dụng định địa chỉ theo ký hiệu (Symbolic Addressing). Các ký hiệu đôi khi
thuận tiện hơn cho người lập trình và làm cho dễ theo dõi logic chương trình. Chương
trình đã được biên dịch khi chép vào PLC sẽ đổi tất cả các ký hiệu thành các địa chỉ
tuyệt đối.
Status Chart (bảng trạng thái) thể hiện trạng thái các ngõ vào ra,
thông tin bảng ký hiệu không được chép vào PLC.
Data Block (khối dữ liệu) được tạo từ dữ liệu (các trị bộ nhớ ban
đầu, các hằng số) và chú thích. Dữ liệu được biên dịch và được chép vào PLC, còn
chú thích thì không.
System Block (khối hệ thống) bao gồm thông tin cấu hình như các
truyền thông, các dãy dữ liệu lưu trữ (Retentive Rages), các bộ lọc ngõ vào Analog
(tương tự ) và Digital (số), các giá trị xuất khi chuyển tiếp STOP và thông tin mật
khẩu. Thông tin khối hệ thống được chép vào PLC.
Set PG/PC Interace dùng để thiết lập loại cáp truyền thông.
Read CPU type nếu đã nối giữa máy tính và PLC để phần mềm tự xác lập loại
CPU đang giap tiếp.
GVHD: Nguyễn Đức Toàn 46 NHÓM THỰC HIỆN
Phạm Song Toàn
Nguyễn Văn Thuần
Dương Đình Thế
ĐỒ ÁN HỌC PHẦN 1A PLC S7-200
Hình 22. Cách viết chương trình bằng ngôn ngữ LAD
Khi đưa một lệnh vào LAD thì ban đầu các tham số được biểu diễn bằng các
dấu chấm hỏi giống như ( ??.? ). Các dấu chấm hỏi chỉ tham số chưa được gán. Ta có
thể gán một hằng số hoặc địa chỉ biến, ký hiệu hay tuyệt đối cho tham số. Chương
trình sẽ không được biên dịch đúng nếu còn tham số nào đó chưa được gán.
Ta có thể định nghĩa địa chỉ cho ký hiệu qua Symbol Table hay Click chuột
phải vào phần tử mong muốn và chọn Define Symbol.
Muốn lưu nơi khác thì chọn ổ đĩa cần lưu, nơi lưu, rồi chọn Save.
- Compile all biên dịch tất cả Program Editor, System Block, Data
Block.
Kiểm tra xem PLC có đang ở trạng thái Stop không. Nếu không ở chế độ Stop
thì click vào biểu tượng STOP trên chương trình. Click chuột vào biểu tượng
Dowload trên Tasbar để bắt đầu nạp chương trình vào PLC. Nếu ta chưa biên dịch thì
Micro Win sẽ biên dịch trước khi Dowload xuống PLC, khi biên dịch mà có lỗi sẽ
không Dowload được.
Chương trình sẽ kiểm tra nếu không có lỗi sẽ bắt đầu nạp vào PLC. Hộp thoại
xuất hiện hỏi chúng ta muốn Download hay không, chọn Dowload.
CHƯƠNG NĂM
1. GIỚI THIỆU.
S7-200 Simulator 2.0 Ing English là một
trong những phần mềm dùng để mô phỏng hoạt
động của PLC sau khi được nạp chương trình.
Chúng ta có thể mô phỏng chương trình đã viết
bằng cách sử dụng phần mềm này mà không cần
đến PLC. Để chạy mô phỏng, ta chỉ cần thực thi
File S7-200.exe, sau khi khởi động ta được giao
diện như hình bên:
Đèn
báo
trạng Các tiếp điểm ngõ
thái vào (nút nhấn)
ngõ
vào
Hình 32. Giao diện của S7-200 Simulator 2.0 Ing English
2. TRÌNH TỰ THỰC HIỆN KHI MÔ PHỎNG
- Viết chương trình bằng phần mềm Step 7 Micro Win
- Biên dịch chương trình: File/Export
- Chạy mô phỏng: PLC / Run hoặc biểu tượng Run trên thanh công cụ
- Thay đổi trạng thái ngõ vào bằng các công tắc trên bảng điều khiển màu xanh
- Quan sát các đèn báo trạng thái ngõ vào ra trên PLC.
- Dừng chương trình: PLC / Stop hoặc biểu tương Stop trên thanh công cụ
Một số hình ảnh minh họa khi mô phỏng: Ở đây chúng ta mô phỏng chương
trình đèn giao thông đơn giản.
Hình 33. Viết chương trình bằng phần mềm Step 7 Micro Win
Chương
trình dạng
STL
Hình 39. Quan sát các đèn báo trạng thái ngõ vào ra trên PLC
CHƯƠNG SÁU
a. Mô tả mô hình
Hình ảnh mô hình tương tự như sau :
Động cơ năng hạ buồng thang
Khung nhôm
TẦNG 3
Đèn báo tầng
TẦNG 1
a. Ngỏ ra : 3 đèn báo tầng, 4 Rơlay điều khiển kéo thang và đóng mở cửa.
• Khi buồng thang đến và dừng ở tầng thì đèn tầng đó sáng.
Q1 : Đèn báo tầng 1
Q2 : Đèn báo tầng 2
Q3 : Đèn báo tầng 3
b. Ngỏ vào : 5 công tắc hành trình, 4 nút nhấn gọi tầng.
1. Giáo trình PLC, tài liệu học tập, Đại học Công nghiệp Tp.HCM, lưu hành nội bộ,
2006.
2. Các Website : www.tailieu.vn
www.weddien.com
3. Các tài liệu liên quan khác.