Professional Documents
Culture Documents
PLC s7-1200
PLC s7-1200
PHỤ LỤC
LỜI CẢM ƠN
Xin chân thành cảm ơn cha mẹ, anh (chị em) đã tạo mọi điều kiện để
chúng tôi có thể hoàn thành tốt bài luật văn tốt nghiệp.
Xin chân thành cảm ơn Thầy Nguyễn Hoàng Dũng đã tận tình hướng
dẫn và giúp đỡ chúng em trong suốt thời gian thực hiện luật văn tốt nghiệp.
Xin cảm ơn thầy cô bộ môn tự động hóa và các bạn sinh viên cùng
khóa đã đóng góp những ý kiến quý báu để chúng tôi có thể hoàn thành tiểu
luận này.
TÓM TẮT
Hinh 2.1. Hình dạng bên ngoai của S7 – 1200 và các module mở rộng
PLC S7-1200 ( Promamable Logic Controller) là những kết hợp I/O và các
lựa chọn cấp nguồn, bao gồm 9 module các bộ cấp nguồn cả VAC – hoặc
VDC - các bộ nguồn với sự kết hợp I/O DC hoặc Relay. Các module tín hiệu
để mở rộng I/O và các module giao tiếp dễ dàng kết nối với các mặt của bộ
điều khiển. Tất cả các phần cứng Simatic S7-1200 có thể được gắn trên DIN
rail tiêu chuẩn hay trực tiếp trên bảng điều khiển, giảm được không gian và
chí phí lắp đặt.
Các module tín hiệu có trong các model đầu vào, đầu ra và kết hợp loại 8,
16, và 32 điểm hỗ trợ các tín hiệu I/O DC, relay và analog. Bên cạnh đó, bảng
tín hiệu tiên tiến có trong I/O số 4 kênh hay I/O analog 1 kênh gắn đằng trước
bộ điều khiển S7-1200 cho phép nâng cấp I/O mà không cần thêm không
gian. Thiết kế có thể mở rộng này giúp điều chỉnh các ứng dụng từ 10_I/O
đến tối đa 284_I/O, với khả năng tương thích chương trình người sử dụng
nhằm tránh phải lập trình lại khi chuyển đổi sang một bộ điều khiển lớn hơn.
Các đặc điểm khác: bộ nhớ 50 KB với giới hạn giữa dữ liệu người sử
dụng và dữ liệu chương trình, một đồng hồ thời gian thực, 16 vòng lặp PID
với khả năng điều chỉnh tự động, cho phép bộ điều khiển xác định thông số
vòng lặp gần tối ưu cho hầu hết các ứng dụng điều khiển quá trình thông
dụng. Simatic S7-1200 cũng có một cổng giao tiếp Ethernet 10/100Mbit tích
hợp với hỗ trợ giao thức Profinet cho lập trình, kết nối HMI /SCADA hay nối
mạng PLC với PLC.
2. Phân loại
Việc phân loại S7-1200 dựa vào loại CPU mà nó trang bị:
Các loại PLC thông dụng: CPU 1211C, CPU 1212C, CPU 1214C
Thông thường S7-200 được phân ra làm 2 loại chính:
Loại cấp điện 220VAC:
- Ngõ vào: Kích hoạt mức 1 ở cấp điện áp +24VDC(từ 15VDC – 30VDC).
- Ngõ ra: Relay.
- Ưu điểm của loại này là dùng ngõ ra Relay. Do đó có thể sử dụng ngõ
ra ở nhiều cấp điện áp khác nhau( có thể sử dụng ngõ ra 0V, 24V,
220V…)
- Tuy nhiên, nhược điểm của nó là do ngõ ra Relay nên thời gian đáp
ứng không nhanh cho ứng dụng biến điệu độ rộng xung, hoặc Output
tốc độ cao…
Loại cấp điện áp 24VDC:
- Ngõ vào: Kích hoạt mức 1 ở cấp điện áp +24VDC( từ 15VDC –
30VDC).
- Ngõ ra: transistor
- Ưu điểm của loại này là dùng ngõ ra transistor. Do đó có thể sử dụng
ngõ ra này để biến điệu độ rộng xung, Output tốc độ cao…
- Tuy nhiên, nhược điểm của loại này là do ngõ ra transistor nên chỉ có
thể sử dụng một cấp điện áp duy nhất là 24VDC, do vậy sẽ gặp rắc rối
trong những ứng dụng có cấp điện áp khác nhau. Trong trường hợp
này, phải thông qua một Relay 24VDC đệm.
Bảng 1.1: các đặc điểm cơ bản của s7-1200
Đặc trưng CPU 1211C CPU 1212C CPU 1214C
Kích thướt(mm) 90 x 100 x 75 110 x 100 x 75
Bộ nhớ người dùng
Bộ nhớ làm việc 25 Kbytes 50 Kbytes
Bộ nhớ tải 1 Mbytes 2 Mbytes
Bộ nhớ sự kiện 2 Kbytes 2 Kbytes
Hinh 2.2. Hình dạng bên ngoài của S7 – 1200 (CPU 1212C)
CPU 1212C gồm 10 ngõ vào và 6 ngõ ra, có khả năng mở rộng thêm 2
module tín hiệu (SM), 1 mạch tín hiệu(SB) và 3 module giao tiếp (CM).
Các đèn báo trên CPU 1212C:
STOP / RUN (cam / xanh): CPU ngừng / đang thực hiện chương trình
đã nạp vào bộ nhớ.
ERROR (màu đỏ): màu đỏ ERROR báo hiệu việc thực hiện chương
trình đã xảy ra lỗi.
MAINT (Maintenance): led cháy báo hiệu việc có thẻ nhớ được gắn vào
hay không.
LINK: Màu xanh báo hiệu việc kết nối với tính thành công.
Rx / Tx: Đèn vàng nhấp nháy báo hiệu tín hiệu được truyền.
Đèn cổng vào ra:
Ix.x (đèn xanh): Đèn xanh ở cổng vào báo hiệu trạng thái tức thời của
cổng Ix.x. đèn này báo hiệu trạng thái của tín hiệu theo giá trị của công
tắc.
Qx.x(đèn xanh): Đèn xanh ở cổng ra báo hiệu trạng thái tức thời của
cổng Qx.x. Đèn này báo hiệu trạng thái của tín hiệu theo giá trị logic
của cổng.
4. Cấu trúc bên trong.
Cũng giống như các PLC cùng họ khác, PLC S7-1200 gồm 4 bộ phận cơ
bản: bộ xử lý, bộ nhớ, bộ nguồn, giao tiếp xuất / nhập.
- Bộ xử lý còn được gọi là bộ xử lý trung tâm (CPU), chứa bộ vi xử lý,
biên dịch các tín hiệu nhập và thực hiện các hoạt động điều khiển theo
chương trình được lưu trong bộ nhớ của PLC. Truyền các quyết định dưới
dạng tín hiệu hoạt động đến các thiết bị xuất.
- Bộ nguồn có nhiệm vụ chuyển đổi điện áp AC thành điện áp DC (24V)
cần thiết cho bộ xử lý và các mạch điện trong các module giao tiếp nhập và
xuất hoạt động.
- Bộ nhớ là nơi lưu trữ chương trình được sử dụng cho các hoạt động
điều khiển dưới sự kiểm soát của bộ vi xử lý.
- Các thành phần nhập và xuất (input / output) là nơi bộ nhớ nhận thông
tin từ các thiết bị ngoại vi và truyền thông tin đến các thiết bị điều khiển. Tín
hiệu nhập có thể từ các công tắc, các bộ cảm biến,… Các thiết bị xuất có thể
là các cuộn dây của bộ khởi động động cơ, các van solenoid,…
- Chương trình điều khiển được nạp vào bộ nhớ nhờ sự trợ giúp của bộ
lập trình hay bằng máy vi tính.
5. Đấu dây.
Ở đây ta chọn CPU 1212C, để trình bày đấu dây tiêu biểu:
Chúng ta có thể cung cấp nguồn 24VDC hay 100 – 230VAC cho PLC và
các thông số điện áp được thể hiện ở (Hinh 5).
Nguồn cung cấp cho PLC là 100 – 230VAC với tần số từ 47Hz – 63Hz.
Điện áp có thể thay đổi trong khoảng từ 85V – 264V . Ở 264V dòng điện tiêu
thụ là 20A.
Nguồn cung cấp là 24VDC. Điện áp có thể thay đổi trong khoảng
20.4V - 28.8V. Ở 28.8V dòng điện tiêu thụ là 12A.
Các ngõ vào được tác động ở mức điện thế tiêu biểu là 24VDC. Các ngõ
ra của PLC ở mức 0 khi công tắc hở hay điện áp <= 5VDC. Ngõ vào ở mức 1
khi công tắc đóng hay điện áp =>15VDC. Thời gian đổi trạng thái từ “0” lên “1”
và từ “1” xuống “0” tối thiểu là 0.1us để PLC nhận biết được.
Các ngõ ra có thể là 5VDC – 30VDC hay 5VAC – 250VAC. Tùy theo yêu
cầu thực tế mà ta có thể nối nguồn khác nhau để phù hợp với ứng dụng của
nó.
6. Module mở rộng.
Chương trình định nghĩa hoạt động điều khiển được viết nhờ sự giúp đỡ của
một máy vi tính.
Để thay đổi tiến trình điều khiển, chỉ cần một thay đổi nội dung bộ nhớ điều
khiển, chứ không cần thay đổi cách nối dây bên ngoài. Qua đó, ta thấy được
ưu điểm của phương pháp điều khiển lập trình được so với phương pháp
điều khiển cứng. Do đó, phương pháp này được sử dụng rất rộng rãi trong
lĩnh vực điều khiển vì nó rất mềm dẻo…
Phương pháp điều khiển lập trình được thực hiện theo các bước sau:
Chương trình LAD (Hinh 8.1) bao gồm cột dọc biểu diễn nguồn điện
logic cùng với các kí hiệu công tắc logic tạo thành một nhánh mạch điện logic
nằm ngang. Ở hình bên, logic điều khiển được biểu diễn bằng hai công tắc
thường hở, một công tắc thường đóng và một ngõ ra relay logic.
Các kí hiệu công tắc trên được dùng để xây dựng nên bất kì mạch logic
nào: sự kết hợp nhiều mạch logic có thể biểu diễn mạch điều khiển cho một
ứng dụng có logic điều khiển phức tạp. Điều cần thiết cho công việc thiết kế
chương trình ladder là lập tài liệu về hệ thống và mô tả hoạt động của chúng
để người sử dụng hiểu được mạch ladder một cách nhanh chóng và chính
xác.
Các qui ước của ngôn ngữ lập trình LAD:
- Các đường dọc trên sơ đồ biểu diễn đường công suất, các mạch được
nối kết với đường này.
- Mỗi nấc thang (thanh ngang) xác định một hoạt động trong quá trình
điều khiển.
- Sơ đồ thang được đọc từ trái sang phải và từ trên xuống. Nấc ở đỉnh
thang được đọc từ trái sang phải, nấc thứ hai tính từ trên xuống cũng đọc
tương tự… Khi ở chế độ hoạt động, PLC sẽ đi từ đầu đến cuối chương trình
thang sau đó lặp đi lặp lại nhiều lần. Quá trình lần lượt đi qua tất cả các nấc
thang gọi là chu kỳ quét.
- Mỗi nấc thang bắt đầu với một hoặc nhiều ngõ vào và kết thúc với ít
nhất một ngõ ra.
- Các thiết bị điện được trình bày ở điều kiện chuẩn của chúng. Vì vậy,
công tắc thường hở được trình bày ở sơ đồ thang ở trạng thái hở. Công tắc
thường đóng được trình bày ở trạng thái đóng.
- Thiết bị bất kỳ có thể xuất hiện trên nhiều nấc thang. Có thể có một rơle
đóng một hoặc nhiều thiết bị.
- Các ngõ vào và ra được nhận biết theo địa chỉ của chúng, kí hiệu tùy
theo nhà sản xuất qui định.
8.2. Ngôn ngữ lập trình FDB (Funtion Block Diagram):
Phương pháp này có cách biểu diễn chương trình như sơ đồ không tiếp
điểm dùng các cổng logic (thường dùng theo ký tự của EU)
Theo phương pháp này các tiếp điểm ghép nối tiếp được thay thế bằng cổng
AND, các tiếp điểm ghép song song được thay thế bằng cổng OR, các tiếp
điểm thường đóng thì có cổng NOT. Phương pháp này thích hợp cho người
dùng sử dụng kiến thức về điện tử mà đặc biệt là mạch số.
Phần mềm SIMATIC TIA Portal STEP7 Basic cung cấp một môi trường
thân thiện với người dùng, từ hiệu chỉnh, thư viện, và bộ điều chỉnh logic cần
thiết đến ứng dụng điều khiển.
SIMATIC TIA Portal STEP7 Basic cung cấp công cụ cho quản lý và cấu
hình tất cả các thiết bị trong project, ví dụ như: PLCs và thiết bị HMI.
SIMATIC TIA Portal STEP7 Basic cung cấp hai ngôn ngữ lập trình (LAD và
FBD), thích hợp và hiệu quả trong cải tiến lập trình điều khiển trong ứng
dụng. Ngoài ra SIMATIC TIA Portal STEP7 Basic còn cung cấp bộ công cụ
tạo và cấu hình thiết bị HMI.
SIMATIC TIA Portal STEP7 Basic cung cấp một hệ thống trợ giúp trực
tuyến và cung cấp 2 chế độ hiển thị khác nhau: a project-oriented view và a
task-oriented set of portals.
9.1. Trình tự các bước thiết kế một chương trình điều khiển.
9.2. Giao diện của phần mềm SIMATIC TIA Portal STEP7 Basic.
Phần mềm SIMATIC TIA Portal STEP7 Basic chạy hệ điều hành
Windows, phần mềm làm nhiệm vụ trung gian giữa người lập trình và PLC.
Để tạo một project mới ta thực hiện theo các bước sau:
Từ giao diện chính của phần mềm, chọn Start / Create new project / Create /
Create a PLC program / Main
Lúc này vùng soạn thảo chương trình dưới dạng Ladder hiện ra (Hinh 8.3).
Run.
Stop.
Online / STOP (hinh 9.3.) hoặc click trái chuột lên biểu tượng trên
thanh công cụ. Lúc này trên giao diện xuất hiện hộp thoại thông báo
xác nhận việc chọn PLC ở chế STOP, chọn yes.
Từ menu chính chọn Online / download to device hoặc click trái
chuột lên biểu tượng từ thanh công cụ để nạp chương trình
xuống PLC.
diện cho trạng thái một bit trong bộ nhớ dữ liệu hay vùng ảnh của các đầu
vào, ra. Công tắc thường hở (ON – nghĩa là cho dòng điện đi qua) khi bit
bằng 1 còn công tắc thường đóng (ON – nghĩa là không cho dòng điện đi
qua) khi bit bằng 0.
Trong LAD, các lệnh này biểu diễn bằng chính các công tắc thường hở
và thường đóng. Trong FBD, các công tắc thường hở được biểu diễn như các
đầu vòa hoặc ra của các khối chức năng AND, OR hoặc XOR. Công tắc
thường đóng được biểu diễn them dấu đảo(vòng tròn nhỏ) ở đầu vào tương
ứng.
Các ví dụ minh họa:
Ladder(LAD):
Công tắc thường hở:
OR:
XOR:
FDB:
FDB:
Ví dụ:
LAD :
FBD:
LAD:
FDB:
Mô tả:
P_TRIG: Khi có tín hiệu xung CLK lệnh bắt đầu hoạt động. Khi tín hiệu
có sự thay đổi mức (0 lên 1) thì ngõ ra Q sẽ được đặt lên 1. Các trường
hợp khác ngõ ra Q ở mức 0.
N_TRIG: Khi có tín hiệu xung CLK lệnh bắt đầu hoạt động. Khi tín hiệu có
sự thay đổi mức (1 xuống 0) thì ngõ ra Q sẽ được đặt lên 1. Các trường
hợp khác ngõ ra Q ở mức 0.
Thí dụ:
LAD:
FBD:
LAD:
FBD:
FBD:
Ví dụ:
LAD:
FBD:
LAD:
FDB:
LAD:
FBD:
- RESET: Một khi điều kiện vào ON, hàm này sẽ giữ ở trạng thái OFF cho
dù điều kiện vào có ON.
LAD:
FBD:
Hình 2.23. Mô tả lệnh
FBD:
LAD:
FBD:
Hình 2.25
10.1.4.3. SET_BF và RESET_BF: Set và Reset bit field
FBD:
LAD:
FBD:
FDB:
Ví dụ:
LAD:
FBD:
LAD:
FBD:
Cấu trúc: S1 R Q
0 0 giữ nguyên trạng thái
0 1 0
1 0 1
1 1 1
SR(Set reset set flip-flop): Là một thiết lập lại chi phối chốt nơi đặt lại chi
phối. Nếu các thiết lập S và thiết lập lại R1 tín hiệu là đúng. Địa chỉ ngõ
ra Q sẽ ở mức 0.
Cấu trúc: S R1 Q
Thông số Dữ liệu Mô tả
S,S1 Set ngõ vào
R,R1 BOOL Reset ngõ vào
Q Ngõ ra
Bit nhớ M0.0 và ngõ ra Q4.0 sẽ được thiết lập khi thỏa các điều kiện sau:
I0.0 = 0 và I0.1 = 1
I0.0 và I0.1 cùng ở mức 1
Bit nhớ M0.0 và ngõ ra Q4.0 sẽ được thiết lập lại khi thỏa các điều kiện sau:
I0.0 =1 và I0.1 = 0
LAD: FBD:
Bit nhớ M0.0 và ngõ ra Q4.0 sẽ được thiết lập khi thỏa các điều kiện sau:
I0.0 = 0 và I0.1 = 1
Bit nhớ M0.0 và ngõ ra Q4.0 sẽ được thiết lập lại khi thỏa các điều kiện sau:
I0.0 =1 và I0.1 = 0
I0.0 và I0.1 cùng ở mức 1
10.2. Lệnh định thời:
- TP: Bộ đếm thời gian Pulse tạo ra một xung có độ rộng với thời gian
được đặt trước.
- TON(On-Delay Timer): Bộ đóng trễ.
- TOF(OFF-Delay Timer): Bộ ngắt trễ.
- TONF(Retentive On-Delay Timer): Bộ đóng trễ có nhớ.
10.2.1. TP:
LAD FBD
Bảng 2.6:
Thông số Dữ liệu Mô tả
IN BOOL Đầu vào cho phép Timer
PT TIMER Giá trị đặt trước cho Timer
Q BOOL Đầu ra Timer
ET TIMER Giá trị thời gian trôi qua ở đầu ra
Timer data DB Xác định bộ định thời để reset lại khi RT cho
block phép
Mỗi lần có một xung cạnh lên thì ngõ ra Q sẽ ON, thời gian Timer bắt đầu
tính, đủ thời gian đặt (PT) Q OFF.
Khi IN lên 1 chưa đủ thời gian đặt PT sau đó xuống 0 thì Q vẫn giữ
nguyên trạng thái.
Khi IN =0 thì Q ở trạng thái OFF.
10.2.2. TON:
LAD FBD
Khi ngõ vào IN lên 1 thì ET tăng dần lên 1(ngõ ra Q off), thời gian Timer
bắt đầu tính, khi ET >=PT thì ngõ ra Q on.
Nếu IN lên 1 trong khoảng thời gian chưa đủ thời gian đặt PT thì ngõ ra
Q vẫn giữ nguyên trạng thái(off).
Khi Q đang ON, ngõ vào IN xuống 0 thì Q sẽ OFF.
10.2.3. TOF:
LAD FBD
10.2.4. TONR:
LAD FBD
Thông số Dữ liệu Mô tả
IN BOOL Đầu vào cho phép Timer
R BOOL Thiết lập lại TONR khi thời gian trôi qua bằng 0
PT TIMER Giá trị đặt trước cho Timer
Q BOOL Đầu ra Timer
ET TIMER Giá trị thời gian trôi qua ở đầu ra
Timer data DB Xác định bộ định thời để reset lại khi RT cho
block phép
Ngõ vào IN có tác dụng kích thời gian cho Timer, khi ngõ vào IN=1 thời
gian. Timer được tính, khi IN=0 thời gian không bị reset về 0. Khi đủ thời gian
thì bit ET sẽ lên 1. Thời gian Timer chỉ bị reset khi có tín hiệu Reset Timer(tín
hiệu từ R).
10.3. Lệnh đếm(Counter).
10.3.1. Đếm lên (Counter Up):
FBD
LAD
Thông số Dữ liệu Mô tả
Counter Số hiệu Counter
name
CU BOOL Kích đếm lên
R BOOL reset
PV SINT, INT, DINT, USINT, UINT, Giá trị đặt trước cho
UDINT Counter
Q BOOL Đúng nếu CV>=PV
CV SINT, INT, DINT, USINT, UINT, Giá trị hiện tại
UDINT
Mô tả:
Mỗi lần có một sườn cạnh lên ở CU, giá trị bộ đếm được tăng lên 1. Khi
giá trị hiện tại (CV: Current count value) lớn hơn hoặc bằng giá trị đặt
(PV:Preset value), ngõ ra sẽ được bậc lên ON. Khi chân Reset được kích giá
trị hiện tại bộ đếm và ngõ ra Q được trả về 0.
Bộ đếm ngưng đếm khi giá trị bộ đếm đạt giá trị tối đa là 32767.
Thông số Dữ liệu Mô tả
Counter name Số hiệu Counter
CD BOOL Kích đếm xuống
LOAD BOOL load
PV SINT, INT, DINT, USINT, UINT, Giá trị đặt trước cho
UDINT Counter
Q BOOL Đúng nếu CV<=0
CV SINT, INT, DINT, USINT, UINT, Giá trị hiện tại
UDINT
Mô tả:
Khi chân LOAD được kích(sườn lên) giá trì PV được nạp cho bộ đếm.
Mỗi lần có sườn cạnh lên ở chân CD, giá trị bộ đếm được giảm xuống 1. Khi
giá trị hiện tại (CV) của bộ đếm nhỏ hơn hoặc bằng 0, ngõ ra sẽ được bật lên
ON.
Bộ đếm ngưng đếm khi giá trị bộ đếm đạt giá trị tối thiểu là - 32767.
Thông số Dữ liệu Mô tả
Counter Số hiệu Counter
name
CU, CD BOOL Kích đếm lên / xuống
R BOOL Reset
LOAD BOOL Load
PV SINT, INT, DINT, USINT, UINT, Giá trị đặt trước cho
UDINT Counter
QU BOOL Đúng nều CV>=PV
QD BOOL Đúng nếu CV<=0
CV SINT, INT, DINT, USINT, UINT, Giá trị hiện tại
UDINT
Mô tả:
Mỗi lần có một sườn cạnh lên ở chân CU, giá trị bộ đếm được tăng
lên 1.
Mỗi lần có một sườn cạnh lên ở chân CD, giá trị bộ đếm được giảm
xuống 1.
Khi giá trị hiện tại CV>=PV , ngõ ra QU sẽ được bật lên ON.
Khi giá trị hiện tại CV<=0, ngõ ra QD sẽ được bật lên ON.
Khi chân R được kích(sườn lên) giá trị bộ đếm và ngõ ra Q sẽ
được reset về 0.
Khi chân LOAD được kích(sườn lên) giá trị PV được đặt lại.
Hình 2.41
Bảng 2.12: các thông số
Thông số Loại thông Loại dữ Mô tả
số liệu
Counter Số hiệu Counter
name
HSC HW_HSC Nhận diên HSC
DIR BOOL 1=yêu cầu hướng mới
CV 1=yêu cầu thiết lập giá trị truy cập
mới
RV 1=yêu cầu thiết lập giá trị tham
chiếu mới.
PERIOD 1=yêu cầu đặt giá trị định thời mới
(chỉ dành cho chế độ đo tần số)
IN
NEW_DIR INT Hướng mới:
1=phía trước
1=phía sau
NEW_CV DINT Giá trị truy cập mới
NEW_RV DINT Giá trị tham chiếu mới
NEW_ INT Giá trị định thời mới trong vài giây:
PERIOD 0.01, 0.1 hoặc 1(chỉ dành cho chế
độ đo tần số)
BUSY BOOL Chức năng bận
OUT
STATUS WORD Điều kiện thực thi lệnh.
10.4.3. OK và NOT_OK:
Dùng để kiểm tra dữ liệu đầu vào có phải là số thực hay không?
Khi công tắc LAD là TRUE thì kích hoạt kết nối và cho dòng điện đi qua.
Khi hộp FBD là TRUE, thì ngõ ra OUT là TRUE.
LAD:
FBD:
Khi ngõ vào cho phép EN lên 1 chương trình sẽ thực hiện việc cộng(hay
trừ) 2 số bit ở IN1, IN2 tương ứng kết quả đưa ra OUT. Nếu không có lỗi
xảy ra trong quá trình hoạt động ENO có trạng thái tín hiệu là 1.
10.5.2. Lệnh nhân – chia:
MUL: Nhân hai số (IN1 * IN2 = OUT)
DIV: Chia hai số (IN1 / IN2 = OUT)
LAD FBD
Thông Dữ liệu Mô tả
số
IN1, IN2 SINT, INT, DINT, USINT, UINT, UDINT, Ngõ vào
REAL, LREAL, Constant
OUT SINT, INT, DINT, USINT, UINT, UDINT, Ngõ ra
REAL, LREAL
Thông số Dữ liệu Mô tả
IN SINT, INT, DINT, REAL, LREAL Ngõ vào
Constant
OUT SINT, INT, DINT, REAL, LREAL Ngõ ra
LAD FBD
Thông số Dữ liệu Mô tả
IN / OUT SINT, INT, DINT, USINT, UINT, UDINT. Ngõ vào / ngõ ra
Mô tả:
Khi ngõ vào cho phép EN lên 1, chương trình được thực thi. Giá trị ngõ
vào được tăng (hoặc giảm) 1. Giá trị ENO được set lên 1.
Bảng 2.24: Điều kiện mã
Thông số Dữ liệu Mô tả
IN Sint, int, dint, real. Lreal Ngõ vào
OUT Sint, int, dint, real. Lreal Ngõ ra
Mô tả:
Khi ngõ vào cho phép ON, chương trình bắt đầu được thực hiện. Giá trị
ngõ vào được lấy giá trị tuyệt đối, kết quả đưa ra OUT. Nếu không có lỗi
trong quá trình hoạt động ENO được đặt lên 1.
Bảng 2.26:Điều kiện mã
Trạng thái Điều kiện
ENO
1 Không có lỗi
Giá trị kết quả là ngoài phạm vi số hợp lệ của các kiểu dữ
liệu được chọn.
0 Ví dụ cho Sint: ABS (-128) trong 128 kết quả vượt quá mức
tối đa kiểu dữ liệu
Chú ý:
Ngõ vào và ngõ ra phải cùng kiểu dữ liệu.
Thông Dữ liệu Mô tả
số
IN1, IN2 Sint, Int, Dint, Usint, Uint Real, Lreal, Tham số ngõ vào
Constant
OUT Sint, Int, Dint, Udint, Usint, Uint, Real Tham số ngõ ra
Thông số Dữ liệu Mô tả
MIN, IN and Sint, Int, Dint, Usint, Uint Các tham số ngõ
MAX Real, Constant vào
OUT Sint, Int, Dint, Usint, Uint Tham số ngõ ra
Real
Mô tả:
Khi ngõ vào cho phép EN lên 1, hoạt động so sánh bắt đầu. Nếu giá trị
tham số IN nằm trong phạm vi quy định (MIN < IN < MAX) thì giá trị IN
được lưu trữ ở OUT. Nếu giá trị tham số IN nằm ngoài phạm vi quy định,
thì giá trị OUT là giá trị của tham số MIN (nếu giá trị IN nhỏ hơn giá trị
MIN) hoặc là giá trị của tham số MAX (nếu giá trị IN lớn hơn giá trị MAX).
ENO được đặt lên 1.
Chú ý: các tham số MIN, IN, MAX and OUT phải cùng kiểu dữ liệu.
10.5.9. FLOATING – POINT:
o SQR: bình phương (IN^2 = OUT).
o SQRT: cân bậc hai (√IN = OUT).
o LN: Hàm logarit (LN(IN) = OUT).
o EXP: Hàm mũ (e^IN = OUT).
o SIN: sine (sin(IN) = OUT).
o COS: Cosine (cos(IN) = OUT).
o TAN: Tangent (tan(IN) = OUT).
o ASIN: nghịch đảo của sine (arsine(IN) = OUT, sin(OUT) = IN).
o ACOS: Nghịch đảo của cosine (arccos(IN) = OUT, cos(OUT) = IN).
o ATAN: Nghịch đảo của tangent (arctan(IN) = OUT, tan(OUT) = IN).
o FRAC: Phân số (Phân số một phần của dấu chấm động IN = OUT).
o EXPT: Tổng số mũ (IN1^IN2 = OUT).
Thông Dữ liệu Mô tả
số
SINT, INT, DINT, USINT, UINT, UDINT, REAL, Địa chỉ
IN LREAL, BYTE, WORD, DWORD, CHAR, ARRAY, nguồn
STRUCT, DTL, TIME
SINT, INT, DINT, USINT, UINT, UDINT, REAL, Địa chỉ đến
OUT LREAL, BYTE, WORD, DWORD, CHAR, ARRAY,
STRUCT, DTL, TIME
Khi ngõ vào cho phép EN lên 1, lệnh sẽ chuyển nội dung của ô nhớ trong IN
sang ô nhớ trong OUT.
Thông Dữ liệu Mô tả
số
IN SINT, INT, DINT, USINT, UINT, Địa chỉ nguồn
UDINT, REAL, BYTE, WORD,
DWORD.
COUNT UINT Số lượng dữ liệu cần di
chuyển
OUT SINT, INT, DINT, USINT, UINT, Địa chỉ đến
UDINT, REAL, BYTE, WORD,
DWORD.
Mô tả:
Khi có tín hiệu ở ngõ vào cho phép, chương trình sẽ chuyển COUNT nội
dung có vị trí bắt đầu ở IN sang OUT. Nếu không có lỗi trong quá trình
hoạt động ENO được đặt lên 1.
10.6.3. FILL_BLK và UFILL_BLK:
LAD FBD
Thông Dữ liệu Mô tả
số
IN SINT, INT, DINT, USINT, UINT, Địa chỉ nguồn
UDINT, REAL, BYTE, WORD,
DWORD.
COUNT USINT, UINT Số lượng dữ liệu cần di
chuyển
OUT SINT, INT, DINT, USINT, UINT, Địa chỉ đến
UDINT, REAL, BYTE, WORD,
DWORD.
Mô tả:
Khi có tín hiệu ở ngõ vào cho phép, chương trình sẽ chuyển COUNT nội
dung có vị trí bắt đầu ở IN sang OUT. Nếu không có lỗi trong quá trình
hoạt động ENO được đặt lên 1.
Mô tả:
Khi co tín hiệu ngõ vào cho phép, chương trình thực hiện việc hoán đổi vị
trí các byte và lưu trữ trong OUT. Nếu không có lỗi trong quá trình thực
hiện ENO được đặt lên 1.
OUT SINT, INT, DINT, USINT, UINT, UDINT, Giá trị được
BYTE, WORD, DWORD, REAL, LREAL, chuyển đổi
BCD16, BCD32
Mô tả:
Khi ngõ vào cho phép EN lên 1, chương trình bắt đầu thực hiện việc
chuyển đổi . Kết quả được lưu ở OUT, ENO được đặt lên 1.
Bảng 2.36: Điều kiện mã
Trạng thái Điều kiện Kết quả ngõ ra
ENO
1 Không có lỗi Kết quả hợp lệ
0 IN là: + / - INF hoặc + / - NAN + / - INF hoặc + / - NAN
0 Kết quả vượt quá phạm vi hợp Ngõ ra được thiết lập
lệ cho loại dữ liệu OUT lại
- ROUND: Làm tròn một số thực ở ngõ vào và chuyển thành số nguyên
(DINT) ở ngõ ra. Nếu số lẻ >= 0.5 thì giá trị được làm tròn lên, ngược lại
thì làm tròn xuống.
LAD FBD
- TRUNC: Làm tròn xuống một số thực ở ngõ vào và chuyển thành số
nguyên (DINT) ở ngõ ra.
LAD FBD
NAN
SCALE_X: quy mô hóa các dữ liệu ở ngõ vào, kết quả được lưu ở
OUT
NORM_X: bình thường hóa các dữ liệu ở ngõ vào, kết quả được lưu ở
OUT.
Giá trị OUT là giá trị của MIN hoặc MAX sao cho phù hợp với kiểu dữ
liệu đã chọn. ENO luôn đúng trong trường hợp này.
Trong trường hợp này giá trị là giá trị trung gian giữa MIN và MAX.
ENO luôn sai.
Tham số VALUE trong lệnh NORM_X được giới hạn trong phạm vi (MIN
<= VALUE <= MAX)
Nếu giá trị VALUE nhỏ hơn MIN hoặc lớn hơn MAX thì giá trị
0.0 <= OUT <= 1.0. ENO luôn đúng.
Bảng 2.42: Điều kiện mã
Trạng thái Điều kiện Kết quả
ENO
1 Không có lỗi Kết quả hợp lệ
0 Kết quả vượt ngoài phạm vi của Kết quả trung gian
kiểu dữ liệu trong OUT
0 Tham số MAX <= MIN SCALE_X:
0 Tham số VALUE = +/- INF hoặc VALUE được đưa ra
+/- NAN OUT
Hình 2.72. Mô tả ví dụ
Khi I0.0 =1 chương trình sẽ nhảy đến nhản CAS1. I0.4 =1 , Q4.1 được reset.
10.8.2. Lệnh RETURN_VALUE(RET):
Mô tả:
Khi có dòng điện qua cuộn dây RET(LAD) hoặc đầu vào hộp RET là
đúng(FBD), thì chương trình thực hiện khối hiện hành sẽ kết thúc ở điểm đó
và dữ liệu vượt ra ngoài RET sẽ không được thực thi.
Nếu khối hiện hành là một OB, các tham số “Return_value” được bỏ
qua.
Nếu khối hiện hành là một FC hoặc FB, giá trị của các tham số
“Return_value” được thông qua trở lại gọi là giá trị ENO của hộp gọi.
10.9.Nhóm lệnh toán Logic:
10.9.1. AND, OR và XOR:
Lựa chọn tập hợp kiểu dữ liệu các thông số IN1, IN2, và OUT phải cùng
một kiểu dữ liệu. Các bit tương ứng với giá trị của các thông số IN1 và IN2
được kết hợp để tạo ra một kết quả logic nhị phân, tại tham số OUT. Trong
trường hợp này ENO luôn luôn là TRUE.
10.9.2. Lệnh đảo (INVERT):
Mô tả:
Khi có tín hiệu ở ngõ vào cho phép, chương trình sẽ thực hiện đảo giá trị
ngõ vào IN, kết quả đưa ra OUT. ENO được đặt lên 1.
Mô tả:
- ENCO: Hướng dẫn mã hóa tham số IN sang số nhị phân tương ứng
với vị trí của các bit quan trọng được đặt ở IN và trả về kết quả ở OUT.
Nếu tham số IN là 00000001 hoặc 00000000, sau đó giá trị 0 được gán
cho OUT. Nếu giá trị của tham số IN là 00000000, ENO là sai (FALSE).
- DECO: Hướng dẫn giải mã một số nhị phân sang tham số IN, bằng
cách thiết lập vị trí bit tương ứng trong tham số OUT là 1(tất cả các bit
được đặt 0). Eno luôn luôn đúng (TRUE). Nếu giá trị của tham số IN vượt
ra ngoài phạm vi cho phép, một module hoạt động để giải nén các bit bên
dưới:
Phạm vi của tham số IN (DECO):
3 bit IN (giá trị 0-7) được sử dụng để thiết lập vị trí 1 bit trong một
byte OUT.
4 bit IN (giá trị 0-15) được sử dụng để thiết lập vị trí 1 bit trong một
từ OUT.
5 bit IN (giá trị 0-31) được sử dụng để thiết lập vị trí 1 bit trong một
từ kép OUT.
10.9.4. SEL:
Gán một trong hai giá trị tham số đầu vào cho tham số OUT, tùy
thuộc vào giá trị của tham số G.
Khi ngõ vào cho phép EN lên 1, chương trình thực hiên việc chọn
lựa giá trị. Nếu G là TRUE thì IN0 được gán cho OUT ngược lại thì gán IN1
cho OUT. ENO luôn luôn TRUE trong trường hợp này.
10.9.5. MUX:
Gán một trong nhiều giá trị của tham số đầu vào cho tham số
OUT, tùy thuộc vào giá trị của tham số K. Nếu giá trị của tham số K vượt
ngoài phạm vi hợp lệ, OUT được gán một giá trị khác.
1: chọn IN1
..........
IN0, SINT, INT, DINT, USINT, UINT, UDINT, REAL, Ngõ vào
IN1... BYTE, WORD, DWORD, TIME, CHAR
ELSE SINT, INT, DINT, USINT, UINT, UDINT, REAL, Giá trị thay thế
BYTE,WORD, DWORD, TIME, CHAR (tùy chọn)
OUT SINT, INT, DINT, USINT, UINT, UDINT, REAL, Ngõ ra
BYTE, WORD, DWORD, TIME, CHAR
Khi ngõ vào cho phép EN lên 1, chương trình thực hiên việc chọn
lựa giá trị. Nếu K là TRUE thì IN0 được gán cho OUT, nếu K là FALSE thì
gán IN1 cho OUT. Nếu K ngoài phạm vi hợp lệ thì gán ELSE cho OUT.
ENO = 1 nếu chương trình không có lỗi.
Bảng 2.49: Điều kiện mã
Trạng thái Điều kiện Kết quả (OUT)
ENO
1 Không có lỗi Giá trị IN được gán cho OUT
0 K >=IN Không cung cấp số khác: Out
không đổi
Cung cấp số khác: Out được gán
một số khác.
Sử dụng lệnh SHIFT để dịch chuyển vị trí bit của tham số IN, phụ
thuộc vào tham số N. Kết quả được đưa ra OUT. Tham số N chỉ định số
lượng vị trí bit dịch chuyển.
SHR: lệnh dịch phải.
SHL: lệnh dịch trái.
Mô tả:
N=0, không có sự thay đổi xảy ra và giá trị IN được gán cho OUT.
0 được dịch vào vị trí các bit trống.
Nếu số lượng vị trí để dịch (N) vượt quá số lượng các bit cho trong
bảng (8 bit cho kiểu dữ liệu BYTE, 16 cho WORD và 32 cho DWORD), sau
đó tất cả các giá trị bit ban đầu được đưa ra ngoài và thay thế bằng số 0 (0
được gán cho OUT).
Eno luôn luôn TRUE cho các hoạt động dịch.
10.10.2. Lệnh quay (Rotate):
Dùng để thay đổi luân phiên các bit của tham số IN. Kết quả đưa
ra OUT. Tham số N xác định số lượng vị trí bit quay.
ROL: lệnh quay trái.
ROR: lệnh quay phải.
Kiểu dữ liệu Mô tả
Thông số
IN BYTE, WORD, DWORD Bit mẫu dùng để
quay
N UNIT Số vị trí bit cần quay
OUT BYTE, WORD, DWORD Bit mẫu sau khi quay
Mô tả:
Đối với N = 0, không xảy ra sự thay đổi và giá trị IN được gán cho Out.
Bit dữ liệu luân phiên trong một mặt của giá trị mục tiêu có thể luân
phiên vào mặt khác của giá trị mục tiêu, vì vậy không có giá trị bit ban đầu
bị mất.
Nếu số lượng vị trí để quay (N) vượt quá số lượng các bit cho trong
bảng(8 bit cho kiểu dữ liệu BYTE, 16 cho WORD và 32 cho DWORD), lệnh
quay vẫn thực hiện bình thường.
Eno luôn luôn TRUE trong mọi hoạt động quay.
T_SUB: Trừ giá trị TIME và giá trị DTL(TIME – TIME = TIME hoặc DTL
– TIME = DTL).
T_DIFF: Cung sự khác biệt giữa hai giá trị DTL như là giá trị TIME (
DTL – DTL = TIME).
Bảng 2.52: các kiểu dữ liệu
10.11.1.1.1. T_CONV:
T_CONV (Time convert): Dùng chuyển đổi một kiểu dữ liệu TIME sang
DINT, hoặc ngược lại.
10.11.1.1.2. T_ADD:
T_ADD (Time add): thêm vào giá trị đầu vào IN1(DTL hoặc TIME) giá trị
IN2 (TIME). Tham số OUT cung cấp kết quả có thể là DTL hoặc TIME. Hai
giá trị có thể cùng tồn tại:
TIME + TIME = TIME
DTL + TIME = DTL
10.11.1.1.3. T_SUB:
T_SUB (Time Subtract): Trừ giá trị IN2 (TIME) cho IN1(DTL hoặc TIME).
Tham số OUT cung cấp giá trị khác biệt như là một DTL hoặc TIME. Hai kiểu
dữ liệu có thể hoạt động là:
TIME - TIME = TIME
DTL - TIME = DTL
10.11.1.1.4. T_DIFF:
Tham số RET_VAL:
Lỗi lệnh (W#16#....) Điều kiện
0000 Không có lỗi
8081 Năm không hợp lệ
8082 Tháng không hợp lệ
8083 Ngày không hợp lệ
8084 Thông tin giờ không hợp lệ
8085 Thông tin phút không hợp lệ
8086 Thông tin giây không hợp lệ
8087 Thông tin Nano giây không hợp lệ
80B0 Đồng hồ thời gian thực không thành công
Tham số RET_VAL:
Mô tả:
RD_LOC_T(Read Local time): cung cấp thời gian địa phương cho PLC như
là loại dữ liệu DTL.
Thời gian địa phương được tính bằng cách sử dụng hiệu số múi giờ và
thời gian tiết kiệm ánh sáng có trong đồng hồ của CPU.
Thời gian tiết kiệm ánh sáng xác định cấu hình các tháng, tuần, ngày và
giờ.
Cấu hinh thời gian tiêu chuẩn cũng quy định các tháng, tuần, ngày và
giờ.
Các múi giờ luôn luôn áp dụng cho thời gian của hệ thống. Thời gian
tiết kiệm ánh sáng chỉ áp dụng khi chế độ tiết kiệm thời gian có hiệu lực.
Điều kiện mã:
Eno = 1 nghĩa là không có lỗi xảy ra. ENO = 0 có một lỗi thực thi
xảy ra và một lệnh điều kiện được cung cấp ở ngõ ra RET_VAL.
Tham số RET_VAL:
Lỗi lệnh(W#16#...) Điều kiện
0000 Không có lỗi
8080 Không đọc được thời gian địa phương
10.11.2. STRING + CHAR:
10.11.2.1. Nhóm lệnh chuyển đổi chuổi
10.11.2.1.1. S_CONV:
10.11.2.1.1.1. S_CONV: chuyển đổi từ chuỗi sang số.
Mô tả:
Chuyển đổi các tham số chuỗi IN bắt đầu bằng ký tự đầu tiên và tiếp
tục cho đến kết thúc của một chuỗi, hoặc cho đến khi ký tự đầu tiên gặp
phải không phải là ký tự “0 – 9”, “+”, “-”, hoặc “.”. Giá trị kết quả được
cung cấp ở ngõ ra OUT, sau đó tham số OUT được đặt về 0 và ENO là
FALSE. Nếu không, tham số OUT chứa một giá trị hợp lệ và ENO là
TRUE.
Quy tắc định dạng chuỗi nhập vào:
Nếu một điểm thập phân nhập được sử dụng trong chuỗi IN, phải sử
dụng ký tự “.”.
Ký tự “,”, được sử dụng như là dấu phân cách hang ngàn phía bên trái
của điểm thập phân là được phép và bị bỏ qua.
Không gian hàng đầu được bỏ qua.
Chỉ điểm cố định là được hỗ trợ. Các ký tự “e” và “E” không được công
nhận là ký tự số mũ.
Bảng 2.61: các thông số Thí dụ
Chuỗi IN Kiểu dữ liệu Giá trị OUT ENO
OUT
“123” 123
“-00456” -456
“123.45” INT / DINT 123
TRUE
“+2345” 2345
“00123AB” 123
“123” REAL 123.0
“123.45” 123.45
“1.23e-4” 1.23
“1.23E-4” 1.23
“12,345.67” 12345.67
“3.4e39” 3.4
“-3.4e39” -3.4
“1.17549e-38” 1.1749
“12345” SINT 0
“A123” 0
‘’’’ 0 FALSE
N/A
“++123” 0
“+-123” 0
Mô tả:
Giá trị số nguyên, số nguyên không dấu hoặc dấu chấm động IN được
chuyển thành chuỗi ký tự tương ứng ở OUT. Các tham số OUT phải được
tham khảo chuỗi hợp lệ trước khi được thực thi. Một chuỗi giá trị bao gồm
chiều dài tối đa của byte đầu tiên, độ dài chuỗi ký tự hiện hành trong byte
thứ hai và chuỗi hiện hành trong byte kế tiếp. Chuyển đổi chuỗi thay thế các
ký tự trong chuyển OUT bắt đầu bằng ký tự đầu tiên và độ dài byte hiện
hành của chuỗi OUT. Chiều dài tối đa byte của chuỗi OUT là không thay đổi.
Bao nhiêu chuỗi được thay thế phụ thuộc vào kiểu dữ liệu của tham số IN và
giá trị số. Số lượng ký tự thay thế phải nằm trong chiều dài chuỗi của tham
số OUT. Chiều dài chuỗi tối đa (byte đầu tiên) của chuỗi OUT có thể được
lớn hơn hoặc bằng số lượng tối đa của chuỗi chuyển đổi dự kiến.
Bảng 2.63: quy định độ dài chuỗi ký tự đối đa cho tưng kiểu dữ liệu
10.11.2.1.2. STRG_VAL:
Mô tả:
Chuyển đổi một ký tự số cho số nguyên tương ứng hoặc điểm đại diện
nổi. Chuyển đổi bắt đầu trong chuỗi ký tự IN tại P và tiếp tục cho đến cuối
chuỗi, hoặc cho đến khi ký tự đầu tiên gặp phải không phải là “+”, “-“, “,”,
“.”, “e”, hoặc “0 - 9”. Kết quả được đặt tại vị trí quy định tại tham số OUT.
Tham số P cũng quay trở lại như là một số bổ xung trong chuỗi gốc tại vị
trí mà việc chuyển đổi chấm dứt. Dữ liệu STRING phải được khởi tạo
trước khi thực hiện như là một chuỗi giá trị trong bộ nhớ.
Tham số STRG_VAL FORMAT:
Tham số FORMAT cho STRG_VAL được định nghĩa dưới đây. Các bit
không sử dụng được đặt về 0:
FORMAT (W#16#) Ký hiệu định dạng Điểm thập phân đại diện
0000(mặc định) Điểm cố định “.”
0001 “,”
0002 Số mũ “.”
0003 “,”
0004 to FFFF Giá trị không hợp pháp
Nếu ký tự dấu chấm “.” được sử dụng cho điểm thập phân, thì dấu phẩy
“,” bên trái của dấu thập phân được hiểu là ký tự phân cách hàng ngàn. Các
ký tự dấu phẩy được chấp nhận và được bỏ qua.
Nếu ký tự dấu phẩy “,” được sử dụng cho điểm thập phân, thì dấu chấm
“.” bên trái của dấu thập phân được hiểu là ký tự phân cách hàng ngàn. Các
ký tự dấu chấm được chấp nhận và được bỏ qua.
Không gian hàng đầu được bỏ qua.
Bảng 2.67: các thông số thí dụ
Mô tả:
Chuyển đổi một số nguyên, số nguyên không dấu hoặc dấu chấm
động thành các ký tự tương ứng với chuỗi đại diện. Giá trị được đại diện
bởi tham số IN chuyển đổi thành một chuỗi tham chiếu bởi tham số OUT.
Các tham số OUT phải là một chuỗi hợp lệ trước khi lệnh chuyển đổi
được thực hiện. Chuỗi ký sẽ thay thế các ký tự trong OUT chuỗi bắt đầu
từ ký tự bù đắp số P với số ký tự được quy định bởi tham số SIZE. Số
lượng ký tự trong SIZE phải nằm trong độ dài chuỗi OUT kể từ vị trí ký tự
P.
Thông số PREC quy định cụ thể chính xác số lượng chữ số cho
các phần phân đoạn trong chuỗi. Nếu giá trị tham số IN là số nguyên, thì
PREC quy định cụ thể vị trí của điểm thập phân. Ví dụ: nếu giá trị dữ liệu
là 123 và PREC = 1, thì kết quả PREC là “12,3”. Hỗ trợ tối đa chính xác
cho kiểu dữ liệu REAL là 7 chữ số.
Nếu tham số P lớn hơn kích thước hiện tại của chuỗi OUT, sau đó
các không gian được thêm vào, lên vị trí của P, và kết quả được nối vào
cuối của chuỗi. chuyển đổi kết thúc nếu chuỗi OUT đạt được chiều dài tối
đa.
Tham số VAL_STRG FORMAT:
Tham số FORMAT cho VAL_ STRG được định nghĩa dưới đây.
Các bit không sử dụng được đặt về 0:
s = số ký tự nhập vào.
1 = sử dụng ký tự “+” và “-”
0 = sử dụng ký tự “-”
0 P không đúng khi giá trị P = 0 hoặc P lớn hơn chiều dài
chuỗi hiện tại.
0 Tham số SIZE phải lớn hơn tham số PREC.
X: khoảng trống
-/+INF: âm/dương vô hạn
NAN: hoạt động toán không hợp lệ
10.11.2.2. Nhóm lệnh hoạt động chuỗi:
LEN
Đo chiều dài của chuỗi hiện tại tại ngõ ra OUT. ENO luôn luôn TRUE
trong trường hợp này.
CONCAT
Ghép hai chuỗi ngõ vào thành một chuỗi mới, kết quả gán cho OUT. Sau
khi ghép chuỗi 1 ở bên trái và chuỗi 2 ở bên phải. nếu chuỗi kết hợp dài hơn
chiều dài tối đa, chuỗi kết quả được giới hạn chiều dài tối đa và ENO được
đặt về 0.
Bảng 2.74: Điều kiện mã ENO
ENO Điều kiện OUT
LEFT
Chiều dài của IN1 hoặc OUT không hợp đặt xuống 0
lệ
L <= 0
Chiều dài của IN1 hoặc OUT là 0 hoặc
255(chuỗi không hợp lệ)
Chiều dài chuỗi con (L) lớn hơn so với Ký tự được sao chép
độ dài tối đa của OUT đến khi đạt chiều dài tối
đa của OUT.
RIGHT
MID
Cung cấp phần giữa của chuỗi, các chuỗi con là chiều dài L ký tự và bắt
đầu từ vị trí ký tự P.
Nếu tổng chiều dài của L và P vượt quá chiều dài hiện tại của chuỗi
IN, một chuỗi con được được trả về bắt đầu từ vị trí ký tự P đến hết
chuỗi IN.
Nếu vị trí ký tự P nằm ngoài chiều dài chuỗi IN, thì chuỗi rỗng được trả
về cho OUT và ENO được đặt xuống 0.
Nếu các thông số L và P là bằng 0 hay số âm, chuỗi rỗng được trả về
OUT và ENO được đặt xuống 0.
DELETE
Xóa L ký tự của chuỗi IN. Xóa ký tự bắt đầu từ vị trí ký tự P, và chuỗi con
là phần còn lại cung cấp cho OUT.
Nếu L = 0. Chuỗi IN được gán cho OUT và ENO là TRUE.
Nếu P lớn hơn độ dài chuỗi hiện tại, chuỗi IN được gán cho OUT và
ENO = FALSE.
Nếu tổng L và P lớn hơn chiều dài chuỗi hiện tại, chuỗi được xóa hoàn
toàn.
Nếu L là âm hay P bằng 0 hoặc âm, chuỗi rỗng được gán cho OUT.
ENO = FALSE.
INSERT
Chèn chuỗi IN2 vào chuỗi IN1, bắt đầu chèn sau vị trí ký tự P.
Nếu P lớn hơn độ dài chuỗi IN1, chuỗi IN2 được nối vào chuỗi IN1 và
ENO = FALSE
Nếu P là số âm hay 0, chuỗi rỗng được trả về cho OUT và ENO =
FALSE.
Nếu chiều dài chuỗi kết quả dài hơn chiều dài tối đa cho phép của
tham số OUT, chuỗi kết được giới hạn bởi chiều dài tối đa của tham
số OUT và ENO = FALSE.
Bảng 2.83: Điều kiện mã ENO
10.11.3. GET_ERROR:
10.11.4. TSEND_C:
Chúng ta có thể kiểm tra trạng thái làm việc với các thông số BUSY, DONE,
ERROR và STATUS. Các tham số BUSY chỉ tình trạng xử lý. Với tham số
DONE, chúng ta có thể kiểm tra một công việc có được thực hiện thành
công hay không? Các tham số ERROR được thiết lập khi lỗi xảy ra trong
quá trình thực hiện lênh TSEND_C. Các thông tin lỗi là ngõ ra của tham số
STATUS.
Bảng 2.87: Các thông số DONE, BUSY và ERROR:
Mô tả:
TSEND_C là không đồng bộ và có các chức năng sau đây:
Cài đặt và thiết lập kết nối truyền thông:
TSEND_C cài đặt một TCP(Transmission Control Protocol) hoặc
ISO-on-TCP (ISO là viết tắt của International Organization for
Standardization) và thiết lập nó. Sau khi kết nối được cài đặt và thiết
lập, nó sẽ tự động được duy trì và giám sát bởi CPU (Central
Processing Unit). Thông số CONNECT được sử dụng để thiết lập kết
nối truyền thông, các thông số CONT được đặt lên giá trị “1”. Khi một
kết nối được thực hiện thành công thông số DONE cho chu ký quét đặt
lên “1”.
Khi CPU chuyển sang chế độ STOP kết nối hiện tại kết thúc và
thiết lập kết nối bị loại bỏ. TSEND_C phải được thực hiện lại để kết nối
có hiệu lực.
Truyền dữ liệu qua kết nối truyền thông hiện có:
Thông số DATA chỉ khu vực được gửi bao gồm cả địa chỉ và độ
dài của dữ liệu được truyền đi. Khi phát hiện có một xung cạnh lên ở
REQ việc truyền sẽ được thực hiện. Thông số LEN chỉ định số lượng
tối đa các byte gửi đi với một lần truyền. Các dữ liệu truyền không
được chỉnh sửa cho đến khi việc truyền hoàn thành. Nếu thực hiện
thành công, thông số DONE được thiết lập giá trị “1”.
Kết thúc kết nối truyền thông:
Khi tín hiệu CONT có giá trị “0” kết nối truyền thông kết thúc. Khi
tín hiệu COM_RST có giá trị “1”, TSEND_C chấm dứt kết nối và dữ liệu
đang truyền sẽ bị mất.
10.11.5. TRCV_C:
Tương tự lệnh TSEND_C chúng ta cũng có thể kiểm tra trạng thái làm
việc với các thông số BUSY, DONE, ERROR và STATUS. Các tham số
BUSY chỉ tình trạng xử lý. Với tham số DONE, chúng ta có thể kiểm tra một
công việc có được thực hiện thành công hay không? Các tham số ERROR
được thiết lập khi lỗi xảy ra trong quá trình thực hiện lênh TSEND_C. Các
thông tin lỗi là ngõ ra của tham số STATUS
Bảng 2.90: Các thông số DONE, BUSY và ERROR:
Mô tả:
TRCV_C là không đồng bộ và có các chức năng sau đây:
Cài đặt và thiết lập kết nối truyền thông:
TRCV_C cài đặt một TCP(Transmission Control Protocol) hoặc ISO-on-
TCP (ISO là viết tắt của International Organization for Standardization) và thiết lập nó.
Sau khi kết nối được cài đặt và thiết lập, nó sẽ tự động được duy trì và
giám sát bởi CPU (Central Processing Unit). Thông số CONNECT được sử
dụng để thiết lập kết nối truyền thông, các thông số CONT được đặt lên
giá trị “1”. Khi một kết nối được thực hiện thành công thông số DONE
cho chu ký quét đặt lên “1”.
Khi CPU chuyển sang chế độ STOP kết nối hiện tại kết thúc và
thiết lập kết nối bị loại bỏ. TRCV_C phải được thực hiện lại để kết nối
có hiệu lực.
Nhận dữ liệu qua kết nối truyền thông hiện có:
Khi tín hiệu EN_R được thiết lập lên “1”, bắt đầu nhận các dữ
liệu. các dữ liệu nhận được nhập vào khu vực tiếp nhận. Độ dài của
khu vực tiếp nhận phụ thuộc vào các biến thể giao thức được sử dụng
hoặc thông số LEN (nếu LEN <>0) hoặc thông tin chiều dài của thông
số DATA (nếu LEN = 0). Sau khi dữ liệu đã được nhận thành công, tình
trạng tín hiệu thông số DONE có giá trị là “1”. Nếu có lỗi trong quá trình
truyền dữ liệu, thông số DONE có giá trị là “0”.
Chấm dứt kết nối truyền thông:
Các kết nối truyền thông kết thúc khi các thông số CONT được
thiết lập là “0”. Khi tín hiệu COM_RST có giá trị “1”, TRCV_C chấm dứt
kết nối và dữ liệu đang nhận sẽ bị mất.
Bảng 2.92: Chế độ tiếp nhận dữ liệu của TRCV_C:
10.11.6. PID_Compact.
“Manual Enable”
Chọn
“Manual manipulated variable” trong
cửa sổ hiện hành.
10.11.7.2. DETACH
Hoạt động:
Một khối dữ liệu (DB) được sử dụng bởi lệnh CTRL_PWM để lưu trữ
thông tin số. Khi đặt lệnh CTRL_PWM vào trình soạn thảo chương trình,
một DB sẽ được chỉ định. Các khối dữ liệu không thay đổi thông số một
cách riêng biệt, mà được điều khiển bởi CTRL_PWM.
Khi ngõ vào cho phép EN là TRUE, CTRL_PWM bắt đầu hoặc kết thúc
tùy thuộc vào giá trị của thông số ENABLE, chiều rộng của xung được xác
định bởi giá trị của địa chỉ Q liên kết xuất từ ngõ ra.
Trong quá trình thực thi lệnh CTRL_PWM, tham số BUSY luôn luôn
FALSE. Nếu phát hiện lỗi trong quá trình hoạt động, ENO được thiết lập là
FALSE và STATUS chứa tham số trạng thái mã.
1. Ứng dụng 1: Điều khiển băng truyền đóng gói trái cây.
Trong khi hệ thống đang hoạt động ấn nút RESET (I0.2 =1) hệ thống sẽ
chạy lại từ đầu.
b. Yêu cầu phần cứng.
- Đối với hệ thống đóng gói trái cây được nêu ở phần a. , cần có
hai bộ cảm biến để xác định vị trí hộp và cảm biến có trái cây. Để xác
định vị trí vị trí hộp và xác định có trái cây người ta có thể dùng nhiều loại
cảm biến khác nhau. Tuy nhiên trong phần báo cáo này, cảm biến hồng
ngoại được sử dụng để xác định số trái cây và vị trí hộp.
- Cơ cấu truyền động: có nhiều phương án như dùng động cơ,
dùng khí nén, thủy lực...Trong bài này, động cơ DC được sử dụng để
vận hành băng truyền.
c. Sơ đồ đấu dây.
Sơ đồ kết nối các I/O của PLC được trình bày trong (Hinh c).
Hinh 3.2 Sơ đồ kết nối PLC với các băng truyền và các nút ấn.
Trong đó các số hiệu của PLC được qui định trong bảng sau:
Ngõ vào Ngõ ra
I0.0 Nút ấn start Q0.0 Băng truyền hộp
I0.1 Nút ấn stop Q0.1 Băng truyền trái cây
- Mạch điều khiển tốc độ băng truyền được trình bày trong (hinh
d.2). Trong đó IC LM317 giữ vai trò chỉnh cho việc điều khiển băng
truyền theo ý muốn bằng cách điều chỉnh biến trở R2 làm thay đổi điện
thế ngõ ra Vout. Điện thế này dùng để cấp cho động cơ DC hoạt động.
VIN được lấy từ ngõ ra của PLC.
Dạng FBD:
NHẬN XÉT
............................................................................................................................
............................................................................................................................
............................................................................................................................
............................................................................................................................
............................................................................................................................
............................................................................................................................
............................................................................................................................
............................................................................................................................
............................................................................................................................
............................................................................................................................
............................................................................................................................
............................................................................................................................
.................................................................................................................... .......
............................................................................................................................
............................................................................................................................
............................................................................................................................
............................................................................................................................
............................................................................................................................
............................................................................................................................
............................................................................................................................
............................................................................................................................
............................................................................................................................
............................................................................................................................
............................................................................................................................
............................................................................................................................
............................................................................................................................