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 đủ
pdf 26 trang baolam 56001 Free
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:

  • pdfgiao_trinh_he_thong_san_xuat_tu_dong_hoa_voi_plcs_phan_15_nh.pdf