Giáo trình Hệ thống sản xuất tự động hóa với PLCs - Phần 15: Những hàm logic bậc thang
15. NHỮNG HÀM LOGIC BẬC THANG
Chủ đề:
Các hàm cho xử lý dữ liệu, toán học, chuyển đổi, phép toán với mảng, thống
kê, so sánh và các phép toán Bun.
Các ví dụ thiết kế.
Mục tiêu:
Hiểu được các hàm cơ bản mà chúng cho phép các tính toán và các so sánh.
Hiểu được các hàm mảng bằng cách sử dụng các tệp bộ nhớ.
15.1 GIỚI THIỆU
Các công tắc đầu vào và các cuộn dây đầu ra logic bậc thang cho phép các quyết
định logic đơn giản. Các hàm mở rộng logic bậc thang cơ bản để cho phép các loại
khác của điều khiển. Ví dụ, phép cộng của các bộ bấm giờ và các bộ đếm đã cho phép
điều khiển dựa trên sự kiện. Một danh sách dài hơn của các hàm được chỉ ra trong
hình 15.1. Các hàm logic và sự kiện kết hợp đã được đề cập rồi. Chương này sẽ thảo
luận xử lý dữ liệu và logic số. Chương tiếp theo sẽ đề cập các danh sách và điều khiển
chương trình và một vài các hàm đầu vào và đầu ra. Các hàm còn lại sẽ được thảo
luận trong các chương sau.
Combinatorial Logic
- relay contacts and coils
Events
- timer instructions
- counter instructions
Data Handling
Logic tổ hợp
- Các công tắc rơ le và các cuộn dây
Các sự kiện
- Các dòng lệnh bộ bấm giờ
- Các dòng lệnh bộ đếm
Xử lý dữ liệu
- moves
- mathematics
- Dịch chuyển
- Toán học
- conversions
- Chuyển đổi
Numerical Logic
- boolean operations
- comparisons
Logic số
- Các phép toán Bun
- Các phép so sánh
Lists
Liệt kê
- shift registers/stacks
- sequencers
- Dịch chuyển các thanh ghi/các ngăn xếp
- Các bộ sắp xếp dãy
Program Control
- branching/looping
- immediate inputs/outputs
- fault/interrupt detection
Điều khiển chương trình
- Rẽ nhánh/vòng lặp
- Các đầu vào/các đầu ra tức thời
- Phát hiện lỗi/ngắt
Input and Output
- PID
Đầu vào và đầu ra
- PID
- communications
- high speed counters
- ASCII string functions
- Truyền thông
- Các bộ đếm tốc độ cao
- Các hàm xâu ASCII
Figure 15.1 Basic PLC Function Categories – Các loại hàm PLC cơ bản
Hầu hết các hàm này sẽ dùng các vị trí bộ nhớ PLC để lấy các giá trị, lưu các giá
trị và theo dõi trạng thái hàm. Hầu hết hàm sẽ trở nên kích hoạt một cách bình
thường khi đầu vào là đúng. Nhưng một vài hàm, như là các bộ bấm giờ TOF, có thể
duy trì kích hoạt khi đầu vào là tắt. Các hàm khác sẽ chỉ làm việc khi đầu vào đi từ sai
tới đúng, nó được biết như là khía cạnh được kích hoạt tích cực. Xem xét một bộ
đếm mà nó chỉ đếm khi đầu vào đi từ sai tới đúng, độ dài của thời gian mà đầu vào là
đúng không thay đổi cách ứng xử của hàm này. Một hàm khía cạnh được kích hoạt
tiêu cực sẽ được kích hoạt khi đầu vào đi từ đúng tới sai. Hầu hết các hàm không là
khía cạnh được kích hoạt: trừ ra các hàm giả thiết được công khai là không khía cạnh
được kích hoạt.
GHI CHÚ: Tôi không vẽ các hàm một cách chính xác như chúng xuất hiện trong
các sách hướng dẫn và phần mềm lập trình. Điều này giúp tiết kiệm giấy và làm các
chỉ dẫn (dòng lệnh) hơi dễ đọc hơn. Tất cả các thông tin cần thiết đều được đưa ra.
15.2 XỬ LÝ DỮ LIỆU
15.2.1 Những hàm di chuyển
Có hai loại hàm dịch chuyển cơ bản:
MOV(value,destination) - MOV(giá trị,đích) – chuyển một giá trị tới một vị trí
bộ nhớ
MVM(value,mask,destination) - MVM(giá trị,mặt nạ,đích) – chuyển một giá
trị tới một vị trí bộ nhớ, nhưng với một mặt nạ để lựa chọn các bit cụ
thể.
Hàm MOV đơn giản sẽ lấy một giá trị từ một vị trí trong bộ nhớ và đặt nó trong
một vị trí bộ nhớ khác. Các ví dụ của hàm MOV được cho trong hình 15.2. Khi A là
đúng hàm MOV di chuyển một số dấu phảy động từ địa chỉ nguồn tới địa chỉ đích. Dữ
liệu trong địa chỉ nguồn là còn lại không bị thay đổi. Khi B là đúng số dấu phảy động
trong nguồn sẽ được chuyển tới một số nguyên và được lưu trong địa chỉ đích trong
bộ nhớ số nguyên. Số dấu phảy động sẽ được làm tròn lên hay xuống thành số
nguyên gần nhất. Khi C là đúng giá trị số nguyên này của 123 sẽ được đặt trong tệp
số nguyên N7:23.
GHI CHÚ: Khi một hàm nào đó thay đổi một giá trị, trừ các đầu vào và các đầu
ra, giá trị này được thay đổi một cách tức thời. Xem xét hình 15.2, nếu A, B và C đều
là đúng, thì giá trị trong F8:23 sẽ thay đổi trước khi dòng lệnh tiếp theo bắt đầu. Điều
này là khác so với các quét đầu vào và đầu ra mà các quét này chỉ xuất hiện trước và
sau quét logic.
Figure 15.2 Examples of the MOV Function – Các ví dụ về hàm MOV
Một ví dụ phức tạp hơn của các hàm di chuyển được chỉ ra trong hình 15.3. Khi
A trở thành đúng câu lệnh di chuyển đầu tiên sẽ chuyển giá trị của 130 vào trong
N7:0. Và, câu lệnh di chuyển thứ hai sẽ chuyển giá trị -9385 từ N7:1 tới N7:2. (Ghi
chú: Số này được chỉ ra như là số âm bởi vì ta đang dùng phần bù 2s). Đối với các
lệnh MOV đơn giản các giá trị nhị phân là không cần thiết, nhưng với câu lệnh MVM
các giá trị nhị phân là cần thiết. Câu lệnh này di chuyển các bit nhị phân từ N7:3 tới
N7:5, nhưng chỉ những bit mà chúng cũng trên trong mặt nạ N7:4, các bit khác trong
đích sẽ được để lại không được đụng đến. Nhớ rằng bit đầu tiên N7:5/0 là đúng
trong địa chỉ đích trước và sau, nhưng nó không đúng trong mặt nạ này. Hàm MVM
là rất hữu ích cho các ứng dụng ở đó các bit nhị phân cá biệt được thực hiện, nhưng
chúng là kém hữu ích khi làm việc với các giá trị số thực sự.
GHI CHÚ: Ý tưởng của một mặt nạ là rất hữu ích, và nó sẽ được sử dụng trong
các hàm khác. Các mặt nạ cho phép các câu lệnh thay đổi một vài bit trong một số
nhị phân mà không phải thay đổi toàn bộ số đó. Bạn có thể muốn làm điều đó khi
bạn đang sử dụng các bit trong một số để đại diện các trạng thái, các chế độ, v.v...
Figure 15.3 Example of the MOV and MVM Statement with Binary Values
Ví dụ về câu lệnh MOV và MVM với các giá trị nhị phân
15.2.2 Những hàm toán học
Các hàm toán học sẽ lấy một hay nhiều giá trị, thực hiện một phép toán và lưu
kết quả trong bộ nhớ. Hình 15.4 chỉ một hàm ADD mà hàm này sẽ lấy các giá trị từ
N7:4 và F8:35, chuyển cả hai tới kiểu của địa chỉ đích, thêm các số dấu phảy động, và
lưu kết quả trong F8:36. Hàm này có hai nguồn được gán nhãn nguồn A và nguồn B.
Trong trường hợp của các hàm ADD trình tự có thể thay đổi, nhưng điều này là
không đúng cho các phép toán khác như là trừ và chia. Một danh sách của hàm số
học đơn giản khác theo sau. Một vài hàm, như hàm âm là chỉ có một đối, vì thế nó
chỉ có một nguồn.
ADD(value,value,destination) - add two values
SUB(value,value,dest ination) - subtract
MUL(value,value,dest ination) - multiply
DIV(value,value,destination) - divide
Cộng hai giá trị
Trừ
Nhân
Chia
NEG(value,destination) - reverse sign from positive/negative Lấy số đối
CLR(value) - clear the memory location
Xóa vị trí bộ nhớ
GHI CHÚ: Để tiết kiệm không gian các loại hàm được chỉ ra trong các ký hiệu
được rút ngắn ở trên. Ví dụ hàm ADD(giá trị,giá trị,đích) yêu cầu hai giá trị nguồn và
sẽ lưu nó trong một đích. Sẽ dùng ký hiệu này trong một vài nơi để giảm số lượng
của các mô tả hàm.
Figure 15.4 Arithmetic Functions – Các hàm số học
Một ứng dụng của hàm số học được chỉ ra trong hình 15.5. Hầu hết các phép
toán cung cấp các kết quả ta sẽ mong đợi. Hàm ADD thứ hai lấy một giá trị từ N7:3,
thêm 1 và ghi đè vào nguồn – điều này thông thường được biết như một phép toán
tăng giá trị. Câu lệnh DIV đầu tiên chia số nguyên 25 cho 10, kết quả được làm tròn
tới số nguyên gần nhất, trong trường hợp này là 3, và kết quả được lưu trong N7:6.
Câu lệnh NEG làm cho giá trị mới thành -10, không phải giá trị ban đầu là 0, từ N7:4
chuyển ngược dấu và lưu nó trong N7:7.
Figure 15.5 Arithmetic Function Example – Ví dụ hàm số học
(Ghi chú của người gõ: nhắc lại, các giá trị số nguyên được giới hạn giữa -32768
và 32767, và không có phân số nào.)
Một danh sách của các hàm nâng cao hơn được cho trong hình 15.6. Danh sách
này bao gồm các hàm lượng giác, hàm mũ, lô ga và căn bậc hai. Hàm cuối CPT sẽ cho
phép một biểu thức và thực hiện một tính toán phức tạp.
ACS(value,destination) - inverse cosine
COS(value,destination) - cosine
Nghịch đảo cos
Cos
ASN(value,destination) - inverse sine
SIN(value,destination) - sine
Nghịch đảo sin
Sin
ATN(value,destination) - inverse tangent
TAN(value,destination) - tangent
Nghịch đảo tang
Tang
XPY(value,value,destination) - X to the power of Y X mũ Y
LN(value,destination) - natural log
Lô ga tự nhiên
LOG(value,destination) - base 10 log
SQR(value,destination) - square root
CPT(destination,expression) - does a calculation
Lo ga cơ số 10
Căn bậc hai
Làm một phép tính
Figure 15.6 Advanced Mathematical Functions
Các hàm toán học nâng cao
Hình 15.7 chỉ một ví dụ trong đó một phương trình đã được chuyển tới logic bậc
thang. Bước đầu tiên trong phép chuyển đổi này là chuyển các biến trong phương
trình tới các vị trí bộ nhớ trống trong PLC. Phương trình này có thể sau đó được
chuyển đổi bằng cách sử dụng các tính toán lồng nhau nhất trong phương trình ấy,
như hàm LN. Trong trường hợp này các kết quả của hàm LN được lưu trong một vị trí
bộ nhớ khác, được nói lại sau. Các phép toán khác được thực thi trong một cách
tương tự. (Ghi chú: Phương trình này có thể đã được thực thi trong các dạng khác,
bằng cách sử dụng các vị trí bộ nhớ ít hơn).
Cho:
A= ꢀln B + eꢁacos (D)
Ký hiệu: A = F8:0
B = F8:1
C = F8:2
D = F8:3
Figure 15.7 An Equation in Ladder Logic – Một phương trình ở dạng logic bậc thang
Phương trình tương tự trong hình 15.7 có thể đã được thực thi với một hàm
CPT như được chỉ ra trong hình 15.8. Phương trình này dùng cùng các vị trí bộ nhớ
được lựa chọn trong hình 15.7. Biểu thức này được gõ trực tiếp vào trong phần mềm
lập trình của PLC này.
Figure 15.8 Calculations with a Compute Function
Các tính toán với một hàm tính toán
Các hàm toán học có thể đưa đến các cờ trạng thái như là tràn ô nhớ, chuyển
mang, v.v... sự quan tâm phải được thực hiện để tránh các vấn đề như là tràn ô nhớ.
Các vấn đề này là ít phổ biến hơn khi dùng các số dấu phảy động. Các số nguyên là dễ
xảy ra hơn trong các vấn đề này bởi vì chúng bị hạn chế trong khoảng từ -32768 tới
32767.
15.2.3 Những hàm chuyển đổi
Các hàm chuyển đổi logic bậc thang được liệt kê trong hình 15.9. Hàm ví dụ này
sẽ lấy một số BCD từ bộ nhớ kiểu D (BCD) và chuyển nó sang một số dấu phảy động
mà số này sẽ được lưu trong F8:2. Hàm kia sẽ chuyển từ nhị phân phần bù 2s tới
BCD, và giữa các ra đi an và các độ.
TOD(value,destination) - convert from BCD to 2s
compliment
FRD(value,destination) - convert from 2s
compliment to BCD
DEG(value,destination) - convert from radians to
degrees
RAD(value,destination) - convert from degrees to
radians
Chuyển từ BCD tới phần bù 2s
Chuyển từ phần bù 2s tới BCD
Chuyển từ radian sang độ
Chuyển từ độ sang radian
Figure 15.9 Conversion Functions – Các hàm chuyển đổi
Các ví dụ của các hàm chuyển đổi được cho trong hình 15.10. Các hàm này tải
vào một giá trị nguồn, làm sự chuyển đổi, và lưu giữ các kết quả. Sự chuyển đổi TOD
sang BCD có thể gây ra một lỗi tràn ô nhớ.
Figure 15.10 Conversion Example – Ví dụ chuyển đổi
15.2.4 Những hàm dữ liệu mảng
Các mảng cho phép ta lưu giữ nhiều giá trị dữ liệu. Trong một PLC điều này sẽ là
một dãy liên tiếp của các số nguyên, dấu phảy động, hay các ô nhớ khác. Ví dụ, giả
thiết ta đang đo và lưu trọng lượng của một gói khoai tây trong bộ nhớ dấu phảy
động bắt đầu tại #8:20 (Nhớ rằng dấu ‘#’ dùng cho một tệp dữ liệu). Ta có thể đọc
một giá trị trọng lượng mỗi 10 phút một, và mỗi giờ sẽ thấy trung bình 6 trọng lượng.
Mục này sẽ tập trung vào các kỹ thuật mà các kỹ thuật này thực hiện các nhóm của
dữ liệu được tổ chức trong các mảng, cũng được gọi là các khối (blocks) trong các tài
liệu hướng dẫn.
15.2.4.1 – Thống kê
Các hàm là có sẵn mà chúng cho phép các phép tính thống kê. Các hàm này
được liệt kê trong hình 15.11. Khi A trở thành đúng và chuyển đổi trung bình (AVE) sẽ
bắt đầu tại vị trí bộ nhớ F8:0 và tính trung bình một tổng gồm 4 giá trị. Từ điều khiển
R6:1 được dùng để theo dõi tiến trình của thao tác này, và để xác định khi thao tác
ấy là hoàn thành. Thao tác này, và các thao tác khác, là khía cạnh kích hoạt. Thao tác
này có thể yêu cầu nhiều quét để được hoàn thành. Khi thao tác này được làm xong
giá trị trung bình được lưu tại F8:4 và bit R6:1/DN sẽ được bật.
AVE(start value,destination,control,length)
STD(start value,destination,control,length)
SRT(start value,control,length)
Trung bình các giá trị
Độ lệch chuẩn của các giá trị
Sắp xếp một dãy các giá trị
Figure 15.11 Statistic Functions – Các hàm thống kê
Các ví dụ của các hàm thống kê được cho trong hình 15.12 cho một mảng của
giá trị mà nó bắt đầu tại F8:0 và dài 4 giá trị. Khi làm xong giá trị trung bình sẽ được
lưu tại F8:4, và độ lệch chuẩn sẽ được lưu tại F8:5. Tập các giá trị này sẽ cũng được
sắp xếp theo thứ tự tăng dần từ F8:0 tới F8:3. Mỗi hàm trong số hàm này phải có bộ
nhớ điều khiển của chúng để chống lại sự trùng lặp. Không là ý tưởng tốt để kích
hoạt các phép sắp xếp và các phép toán khác tại cùng một thời điểm, vì phép so sánh
có thể chuyển các giá trị trong khi tính toán, gây ra các tính toán sai.
Figure 15.12 Statistical Calculations – Các tính toán thống kê
THÊM: Các hàm này sẽ cho phép một tính toán thời gian thực của dữ liệu SPC
cho các giới hạn điều khiển, v.v... Chỉ hàm PLC còn thiếu là một hàm ngẫu nhiên mà
hàm này sẽ cho phép các thời gian mẫu ngẫu nhiên.
15.2.4.2 – Phép toán khối
Một hàm khối cơ bản được chỉ trong hình 15.13. Hàm COP (sao chép) này sẽ sao
chép một mảng gồm 10 giá trị bắt đầu từ N7:50 tới N7:40. Hàm FAL sẽ thực hiện các
phép toán toán học bằng cách sử dụng một xâu biểu thức, và hàm FSC này sẽ cho
phép hai mảng được so sánh bằng cách sử dụng một biểu thức. Hàm FLL sẽ làm đầy
một khối của bộ nhớ với một giá trị đơn lẻ.
COP(start value,destination,length) - copies a block Sao chép một khối các giá trị
of values
FAL(control,length,mode,destination,expression) - Thực hiện các phép toán toán
will perform basic math operations to multiple
values.
học cơ bản cho nhiều giá trị
FSC(control,length,mode,expression) - will do a
comparison to multiple values
Làm một so sánh với nhiều giá
trị
FLL(value,destination,length) - copies a single value Sao chép một giá trị đơn tới
to a block of memory một khối bộ nhớ
Figure 15.13 Block Operation Functions – Các hàm tính toán khối
Hình 15.14 chỉ ra một ví dụ của hàm FAL với các chế độ địa chỉ khác nhau. Hàm
FAL đầu tiên sẽ làm các tính toán sau N7:5=N7:0+5, N7:6=N7:1+5, N7:7=N7:2+5,
N8:7=N7:3+5, N7:9=N7:4+5. Câu lệnh FAL thứ hai không có một ký hiệu tệp ‘#’ ở phía
trước của giá trị biểu thức, vì thế các tính toán sẽ là N7:5=N7:0+5, N7:6=N7:0+5,
N7:7=N7:0+5, N8:7=N7:0+5, N7:9=N7:0+5. Với một chế độ của hai câu lệnh sẽ làm
hai trong số các tính toán này khi có một khía cạnh tích cực từ B (ví dụ: một chuyển
đổi từ sai thành đúng). Kết quả của câu lệnh FALl cuối cùng sẽ là N7:5=N7:0+5,
N7:5=N7:1+5, N7:5=N7:2+5, N7:5=N7:3+5, N7:5=N7:4+5. Phép toán cuối cùng sẽ
dường như là vô ích, nhưng nhớ rằng chế độ này là gia tăng. Chế độ này sẽ làm một
tính toán cho mỗi chuyển đổi tích cực của C. Tất cả các chế độ này sẽ thực hiện cả
năm tính toán trong một quét đơn bất cứ khi nào có một khía cạnh tích cực trên đầu
vào này. Có thể được để đặt trong một số mà số đó sẽ chỉ thị số lượng của các phép
toán trong một quét. Thời gian tính toán có thể dài cho các mảng lớn và việc cố gắng
làm tất cả các phép toán trong một quét có thể dẫn tới một lỗi quá thời gian giám
sát.
Figure 15.14 File Algebra Example – Ví dụ đại số tệp
15.3 NHỮNG HÀM LOGIC BậC THANG
15.3.1 So sánh các giá trị
Các hàm so sánh được chỉ ra trong hình 15.15. Các khối hàm trước là các đầu ra,
những cái này thay thế các công tắc đầu vào. Ví dụ này chỉ ra một hàm EQU (bằng -
equal) mà hàm này so sánh hai số dấu phảy động. Nếu các số này là bằng nhau, bit
đầu ra B3:5/1 là đúng, ngược lại nó là sai. Các kiểu khác nhau của các hàm đẳng thức
cũng được liệt kê.
EQU(value,value) - equal
Bằng
NEQ(value,value) - not equal
LES(value,value) - less than
LEQ(value,value) - less than or equal
GRT(value,value) - greater than
Không bằng
Nhỏ hơn
Nhỏ hơn hay bằng
Lớn hơn
GEQ(value,value) - greater than or equal Lớn hơn hay bằng
CMP(expression) - compares two values
for equality
So sánh hai giá trị cho đẳng thức
MEQ(value,mask,threshold) - compare
for equality using a mask
So sánh cho đẳng thức bằng cách dùng
một mặt nạ
LIM(low limit,value,high limit) - check for Kiểm tra cho một giá trị giữa các giới hạn
a value between limits
Figure 15.15 Comparison Functions – Các hàm so sánh
Ví dụ trong hình 15.16 chỉ ra sáu hàm so sánh cơ bản. Về phía phải của hình này
là các ví dụ về các phép toán so sánh.
Figure 15.16 Comparison Function Examples – Các ví dụ hàm so sánh
Logic bậc thang trong hình 15.15 được tạo lại trong hình 15.17 với hàm CMP mà
hàm này cho phép các biểu thức chữ.
Figure 15.17 Equivalent Statements Using CMP Statements
Các câu lệnh tương đương bằng cách sử dụng các câu lệnh CMP
Các biểu thức cũng có thể được dùng để làm nhiều phép so sánh phức tạp hơn,
như được chỉ ra trong hình 15.18. Biểu thức này sẽ xác định nếu F8:1 là ở giữa F8:0
và F8:2.
Figure 15.18 A More Complex Comparison Expression
Một biểu thức so sánh phức tạp hơn
Các hàm LIM và MEQ được chỉ trong hình 15.19. Ba hàm đầu tiên sẽ so sánh
một giá trị thử nghiệm cho các giới hạn cao và thấp. Nếu giới hạn cao này là cao hơn
giới hạn thấp và giá trị thử nghiệm là ở giữa hay bằng với một giới hạn, thì nó sẽ là
đúng. Nếu giới hạn thấp là cao hơn giới hạn cao thì hàm này là chỉ đúng cho các giá
trị thử nghiệm bên ngoài khoảng này. Mặt nạ bằng nhau này sẽ so sánh các bit của
hai số, nhưng chỉ những bit là đúng trong mặt nạ ấy.
Figure 15.19 Complex Comparison Functions – Các hàm so sánh phức tạp
Hình 15.20 chỉ ra một dòng số mà dòng số này giúp xác định khi hàm LIM sẽ là
đúng.
Figure 15.20 A Number Line for the LIM Function – Một dòng số cho hàm LIM
Tệp cho các so sánh tệp cũng được cho phép bằng cách dùng các dòng lệnh
được chỉ ra trong hình 15.21. Dòng lệnh này sử dụng từ điều khiển R6:0. Nó sẽ diễn
dịch biểu thức này 10 lần, làm hai so sánh trong một quét logic (chế độ là 2). Các so
sánh sẽ là F8:10<F8:0, F8:11<F8:0 sau đó F8:12<F8:0, F8:13<F8:0 sau đó F8:14<F8:0,
F8:15<F8:0 sau đó F8:16<F8:0, F8:17<F8:0 sau đó F8:18<F8:0, F8:19<F8:0. Hàm này
sẽ tiếp tục cho tới khi một câu lệnh sai được phát hiện, hay phép so sánh là hoàn
thành. Nếu phép so sánh là hoàn thành với không dòng lệnh lỗi nào đầu ra A sẽ là
đúng. Chế độ này có thể cũng đã là tất cả để thực thi mọi phép so sánh trong một
quét, hay tăng lên để cập nhật khi đầu vào này tới hàm ấy là đúng – trong trường
hợp này đầu vào là một dây đơn giản, vì thế nó luôn là đúng.
Figure 15.21 File Comparison Using Expressions
So sánh tệp bằng cách dùng các biểu thức
15.3.2 Các hàm Bun
Hình 15.22 chỉ ra các hàm đại số Bun. Hàm được chỉ ra này sẽ nhận các từ dữ
liệu từ bộ nhớ bit, thực hiện một phép toán, và lưu các kết quả trong một vị trí mới
trong bộ nhớ bit. Các hàm này tất cả đều được hướng tới các phép toán mức độ từ.
Khả năng thực hiện các phép toán Bun cho phép các phép toán logic trên nhiều hơn
một bit đơn lẻ.
AND(value,value,destination) - Binary and function
OR(value,value,destination) - Binary or function
NOT(value,value,destination) - Binary not function
XOR(value,value,destination) - Binary exclusive or
function
Nhị phân và hàm
Nhị phân hay hàm
Nhị phân không hàm
Nhị phân dành riêng hay hàm
Figure 15.22 Boolean Functions – Các hàm Bun
Việc sử dụng các hàm Bun được chỉ trong hình 15.23. Ba hàm đầu tiên yêu cầu
hai đối, trong khi hàm cuối cùng chỉ yêu cầu một . Hàm AND sẽ chỉ bật các bit trong
kết quả mà kết quả đó là đúng trong cả hai từ nguồn. Hàm OR sẽ bật một bit trong từ
kết quả nếu một trong hai bit từ nguồn là bật (on). Hàm XOR sẽ chỉ bật một bit trong
từ kết quả nếu bit này là bật trong chỉ một giá trị của các từ nguồn. Hàm NOT đảo
ngược tất cả các bit trong từ nguồn.
Figure 15.23 Boolean Function Example – Ví dụ hàm Bun
15.4 NHỮNG VẤN ĐỀ CỦA THIẾT KẾ
15.4.1 Tính toán đơn giản
Bài toán: Một chuyển mạch sẽ tăng một bộ đếm lên khi được kích hoạt. Bộ đếm
này có thể được đặt lại bởi một chuyển mạch thứ hai. Giá trị trong bộ đếm này phải
được nhân với 2, và sau đó được hiển thị như một đầu ra BCD bằng cách sử dụng
(O:0.0/0 – O:0.0/7).
Giải pháp:
Figure 15.24 A Simple Calculation Example – Một ví dụ tính toán đơn giản
15.4.2 Vòng lặp For-Next
Bài toán: Thiết kế một vòng lặp for-next mà vòng lặp này tương tự như các vòng
lặp được thấy trong các ngôn ngữ lập trình truyền thống. Khi A là đúng logic bậc
thang này phải kích hoạt trong 10 quét, và các số quét này từ 1 đến 10 phải được lưu
trong N7:0.
Giải pháp:
Figure 15.25 A Simple Comparison Example – Một ví dụ so sánh đơn giản
15.4.3 Tính toán theo loạt
Bài toán: Tạo một chương trình logic bậc thang mà nó sẽ bắt đầu khi đầu vào A
được bật và tính toán theo loạt dưới đây. Giá trị của n sẽ bắt đầu tại 1 và với mỗi
quét của logic bậc thang n sẽ tăng lên cho đến khi n=100. Trong khi trình tự này đang
được tăng lên, bất cứ thay đổi nào trong A sẽ bị bỏ qua.
x = 2(n - 1)
A = I:000/00
n = N7:0
x = N7:1
Giải pháp:
Figure 15.26 A Series Calculation Example – Một ví dụ tính toán theo loạt
15.4.4 Đèn nhấp nháy
Bài toán: Ta đang thiết kế một mái rạp chiếu phim, và họ muốn các đèn nháy
truyền thống. Các đèn này đã được kết nối tới các đầu ra của PLC từ O:001/00 tới
O:001/17. Khi PLC được bật, mỗi giây một đèn phải sáng. Cứ mỗi nửa giây các đèn
này phải đảo lại. Kết quả sẽ là trong một giây hai đèn sẽ sáng cùng nhau trong một
nửa giây mỗi đèn.
Giải pháp:
Figure 15.27 A Flashing Light Example – Một ví dụ đèn nhấp nháy
15.5 TÓM TẮT
Các hàm có thể lấy các giá trị từ bộ nhớ, làm các phép toán đơn giản, và trả
kết quả về bộ nhớ.
Các hàm khoa học toán học và các hàm thống kê toán học là có sẵn.
Các hàm mặt nạ cho phép các phép toán mà các phép toán này chỉ thay đổi
một vài bit.
Các biểu thức có thể được sử dụng để thực hiện các phép toán phức tạp hơn.
Các chuyển đổi là có sẵn cho các góc và các số BCD.
Các lệnh tệp hướng mảng cho phép nhiều phép toán trong một quét.
Các giá trị có thể được so sánh để ra quyết định.
Các hàm Bun cho phép các phép toán mức bit.
Hàm thay đổi giá trị trong bộ nhớ dữ liệu một cách lập tức.
15.6 BÀI TẬP THỰC HÀNH
1. Làm tính toán sau bằng logic bậc thang:
N7:2 = -(5 - N7:0 / N7:1)
2. Thực hiện hàm sau:
ꢃ + log(ꢃ)
ꢂ = atan (ꢃ(
))
ꢃ + 1
3. Một chuyển mạch sẽ tăng một bộ đếm bật lên khi được kích hoạt. Bộ đếm này có
thể được đặt lại bởi một chuyển mạch thứ hai. Giá trị trong bộ đếm này phải được
nhân với 5, và sau đó được hiển thị như một đầu ra nhị phân bằng cách sử dụng
(O:000).
4. Tạo một chương trình logic bậc thang mà chương trình này sẽ bắt đầu khi đầu vào
A được bật và tính toán loạt dưới đây. Giá trị của n sẽ bắt đầu từ 0 và với mỗi quét
của logic bậc thang này n sẽ tăng lên 2 cho đến khi n=20. Trong khi trình tự này đang
được tăng, bất cứ thay đổi nào trong A sẽ bị bỏ qua.
( )
ꢂ = 2(log ꢄ − 1)
A = B3/10
n = N7:0
x = F8:15
5. Chương trình sau sử dụng các địa chỉ gián tiếp. Chỉ ra cái mà các giá trị mới trong
bộ nhớ sẽ trở thành khi nút A được bấm sau các dòng lệnh đầu tiên và thứ hai.
6. Một thẻ đầu vào nút bấm bánh xe có được cả thảy bốn chữ số BCD. Một cảm biến
phát hiện vật thể rơi xuống một cái máng. Khi số lần rơi bằng với giá trị BCD máng
này bị đóng lại, và một đèn sẽ được bật cho đến khi một nút đặt lại nào đó được
bấm. Một nút bắt đầu phải được bấm để bắt đầu việc cung cấp vật thể. Phát triển
logic bậc thang cho bộ điều khiển này. Sử dụng một kỹ thuật thiết kế có cấu trúc như
là một sơ đồ trạng thái.
INPUT
ĐẦU VÀO
I:000 - BCD input card
I:001/00 - part detect
I:001/01 - start button
I:001/02 - reset button
Thẻ đầu vào
Phát hiện vật thể
Nút bắt đầu
Nút đặt lại
OUTPUT
O:002/00 - chute open
O:002/01 - light
ĐẦU RA
Mở máng
Đèn
7. Mô tả sự khác nhau giữa gia tăng, tất cả và một số cho dòng lệnh hướng tệp, như
là FAL.
8. Số lượng cực đại của các yếu tố mà các yếu tố này được di chuyển với một dòng
lệnh tệp là gì? Cái gì có thể xảy ra nếu quá nhiều được chuyển trong một quét?
9. Viết một chương trình logic bậc thang để làm tính toán sau. Nếu kết quả là lớn hơn
20,0, thì đầu ra O:012/15 sẽ được bật.
ꢊ
ꢋ
Trong đó, A = F8:0
ꢅ = ꢆ − ꢇꢈꢉ
B = F8:1
C = F8:2
D = F8:3
T = F8:4
10. Viết logic bậc thang để đặt lại một bộ đếm RTO (T4:0) mà không dùng câu lệnh
RES.
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Hệ thống sản xuất tự động hóa với PLCs - Phần 15: Những hàm logic bậc thang", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
giao_trinh_he_thong_san_xuat_tu_dong_hoa_voi_plcs_phan_15_nh.pdf

