Lệnh Keep (11)

Một phần của tài liệu Đồ án tốt nghiệp: Nghiên cứu, ứng dụng PLC trong điều khiển tự động máy xấn tôn (Trang 55)

4.3 Lập trình bằng Ledder Diagram

4.3.15Lệnh Keep (11)

Kí hiệu trong chơng trình thang nh sau:

Lệnh KEEP(11) dùng để duy trì trạng thái bit đã định theo hai điều kiện ngõ vào là S và R. S là ngõ vào SET còn R là ngõ vào RESET. Lệnh Keep(11)hoạt động giống nh một Rơ le chốt mà đợc SET bởi S và RESET bởi R. Biểu đồ minh hoạ:

4.3.16 Lệnh DIFU(13) và DIFD(14).

Kí hiệu trong chơng trình thang.

Lệnh DIFU(13) và DIFD(14) đợc dùng để ON bit đã định trong một chu kỳ

Mỗi khi thực hiện lệnh DIFU(13), nó sẽ so sánh điều kiện thực hiện tại ngõ vào với điều kiện trớc đó của nó. Nếu điều kiện thực hiện trớc đó là OFF và hiện tại là ON thì DIFU(13) sẽ ON bit đã định. Nếu điều kiện

KEEP(11) B

S R

Điều kiện thực hiện S

Điều kiện thực hiện R

Trạng thái bit B

DIFD(14)B DIFU(13) B

thực hiện trớc đó là ON và hiện tại là ON hay OFF lệnh DIFU(13) sẽ OFF bit đã định.

Còn đối với lệnh DIFD(14) khi thực hiện nó sẽ so sánh điều kiện thực hiện tại ngõ vào hiện tại với điều kiện trớc đó của nó. Nếu điều kiện thực hiện trớc đó là ON và hiện tại là OFF thì DIFD(14) sẽ ON bit đã định. Nếu điều kiện thực hiện tại ngõ vào là ON bất chấp điều kiện trớc đó là ON hay OFF lệnh DIFD(14) sẽ OFF bit đã định.

Hai lệnh này khơng ảnh hởng đến cờ trạng thái. Ví dụ: Xét sơ đồ thang sau:

Chơng trình thang cho sơ đồ trên.

Địa chỉ Lệnh Dữ liệu

00000 LD 00000

00001 DIFU(13) 10014

00002 DIFD(14) 10014

Minh họa biểu đồ thời gian:

4.3.17 Lệnh JMP(04) và JME(05)

Các lệnh này đợc dùng để nhảy nấc trong chơng trình thang. Ký hiệu trong chơng trình thang:

DIFU(13) 10014 DIFD(14) 10014 DIFU(13) Điều kiện nhập: 00000 DIFD(14)

Số nhảy N trong lệnh là từ 00 đến 99.

JMP(04) luôn luôn đợc dùng kết hợp với JME(05) để tạo thành lệnh nhảy. để nhảy từ một điểm trong chơng trình thang đến một điểm khác. JPM(04) đợc định nghĩa là điểm mà tại đó lệnh nhảy đợc tạo. JME(05) đợc định nghĩa là điểm đích của lệnh nhảy. Khi điều kiện thực hiện ngõ vào cho JMP(04) là ON thì bớc nhảy khơng đợc tạo và chơng trình đợc thực hiện nh đã lập trình. Khi điều kiện thực hiện ngõ vào cho JMP(04) là OFF thì bớc nhảy đợc thi hành. Khi đó chơng trình tiếp tục thực hiện tại JME(05).

Khi số nhảy N của JMP(04) từ 01 đến 99 thì con trỏ lập tức chuyển đến JME(05) cùng với số nhảy tơng ứng. Tất cảc các lệnh ở giữa JMP(04) và JME(05) không đợc thực hiện, trạng thái của các Timer, Counter, Bit Out, Out not và tất cả trạng thái của bit điều khiển khác đều không thay đổi. Số nhảy này chỉ đụnh nghĩa cho một lần nhảy.

Khi số nhảy của JMP(04) là 00, Cpũe tìm đến JME(05) kế có số nhảy N=00. Để thực hiện, nó kiểm tra tồn bộ chơng trình tất cả những lệnh và bit điều khiển nằm ở giữa JMP(04) 00 và JME(05) 00 đợc giữ nguyên. số nhảy 00 có thể đợc sử dụng nhiều lần đối với JMP(04) mà chỉ cần một đích nhảy đến JME(05).

Ví dụ: Chơng trình thang nh sau:

Các lệnh đợc nhập vào theo PLC OMNRON

Địa chỉ Lệnh Dữ liệu 00000 LD 00000 00001 JMP(04) 01 00002 LD 00001 00003 Lệnh 1 00004 LD 00002 00005 Lệnh 2 00006 JME(05) 01 Giải thích: (adsbygoogle = window.adsbygoogle || []).push({});

Khi IR 00000 = ON thì chơng trình thực hiện từ lệnh 1 đến lệnh 2. khi IR00000 = OFF thì lệnh1 và lệnh 2 đợc bỏ qua. Chơng trình sẽ thực hiện các lệnh tiếp theo.

JMP(04) 01 Lệnh 1 Lệnh 2 JME(05) 01 00000 00001 00002

4.3.18 Lệnh chuyển dữ liệu MOV(21):

Ký hiệu trong chơng trình thang.

Trong đó:

S : là word nguồn. D: là word đích.

Khi điều kiện thực hiện ngõ vào là OFF, lệnh MOV(21) không thực hiện. Khi điều kiện ngõ vào là ON lệnh MOV(21) sẽ sao chép tồn bộ nội dung của S sang D.

Ví dụ:

Sử dụng lệnh MOV(21) sao chép nội dung của IR001 cho HR 05 khi IR00000 chuyển từ OFF sang ON.

Sơ đồ thang.

Chơng trình đợc viết nh sau:

Địa chỉ Lệnh Tốn tử

00000 LD 00000

00001 MOV(21) 01

HR05

4.3.19 Lệnh MVN(22) Move Not:

Kí hiệu trong chơng trình thang.

Trong đó:

MOV(21) S D

Word nguồn Word đích

Trạng thái bit khơng thay đổi

HR05 001 MOV(21) 00000 D S MVN(22)

4.3.20 Lệnh tính tốn BCD( Binary Code Decimal) – SET CARRY STC(40)

Kí hiệu trong chơng trình thang.

Khi tín hiệu của ngõ vào là OFF, lệnh STC(40) không thực hiện. STC(40) chỉ thực hiện khi ngõ vào là ON.

4.3.21 Lệnh tính tốn CLC – CLEAR CARRY (CLC(41) )

Kí hiệu trong chơng trình thang.

Khi tín hiệu của ngõ vào là OFF, lệnh CLC(41) không thực hiện. CLC(41) chỉ thực hiện khi ngõ vào là ON.

4.3.22 Lệnh ADD(30). (adsbygoogle = window.adsbygoogle || []).push({});

Kí hiệu trong chơng trình thang.

Trong đó:

Au: Augen word.(Word đã có) Ad: Addend word.(Word bị cộng) R : Result word.( Word kết quả)

Chỉ dùng vùng nhớ DM 0000 đến DM 1023. DM 6144 đến DM6655 khơng đợc dùng cho R.

Khi tín hiệu của ngõ vào là OFF, lệnh ADD(30) không thực hiện. ADD(30) chỉ thực hiện khi ngõ vào là ON. Khi đó ADD(30) sẽ cộng nội dung của Au và Ad rồi đặt kết quả trong R.

4.3.23 Lệnh SUB(31) Trừ BCD.

Kí hiệu dùng trong chơng trình thang: Trong đó:

Mi: Word bị trừ Su: Word trừ

R : Result word.( Word kết quả)

Chỉ dùng vùng nhớ DM 0000 đến DM 1023. DM 6144 đến DM6655 không đợc dùng cho R.

Khi tín hiệu của ngõ vào là OFF, lệnh SUB(31) không thực hiện. SUB(31) chỉ thực hiện khi ngõ vào là ON. Khi đó SUB(31) sẽ trừ nội dung của Mi cho Su rồi đặt kết quả trong R.

STC(40) CLC(41) Su Mi SUB(21) R ADD(30) Au Ad R

4.3.24 Lệnh MUL(32) Nhân BCD (BCD MULTIPLY).

Kí hiệu dùng trong chơng trình thang:

Md: Multiolicand (BCD) Mr: Multiplier (BCD) R : Result word.

Chỉ dùng vùng nhớ DM 0000 đến DM 1023. DM 6144 đến DM6655 không đợc dùng cho R.

Khi tín hiệu của ngõ vào là OFF, lệnh MUL(32) không thực hiện. MUL(32) chỉ thực hiện khi ngõ vào là ON. Khi đó MUL(32) sẽ nhân nội dung của Md cho Mr rồi đặt kết quả trong R và R+1:

Xét ví dụ có chơng trình thang nh trên:

Khi IR00001 mà ON thì nội dung của IR013 và DM00006 đợc nhân và kết quả đợc đặt trong HR07 và HR 08.

Dữ liệu và tính tốn nh sau:

4.3.25 Lệnh DIV(33) BCD DIVIDE (chia BCD)

Kí hiệu dùng trong chơng trình thang: Mr Md MUL(32) R Md Mr R R+1 MUL(32) 00001 DM0006 013 HR 07 Md: IR013 3 3 5 6 5 2 0 0 Mr: DM00005 R+1: HR08 8 R: HR07 3 9 0 0 0 0 0

Mr: Divisorword (BCD) R : Result word.

Chỉ dùng vùng nhớ DM 0000 đến DM 1023. DM 6144 đến DM6655 không đợc dùng cho R.

Khi tín hiệu của ngõ vào là OFF, lệnh DIV(33) không thực hiện. DIV(33) chỉ thực hiện khi ngõ vào là ON. Khi đó DIV(33) sẽ chia nội dung của Dd cho Dr rồi đặt kết quả trong R và R+1, thơng số đặt trong R và số d đặt trong R+1:

Ví du:

Xét sơ đồ thang sau:

Khi IR00000 ON, lệnh DIV(33) sẽ đợc thực thi

Nội dung của IR216 sẽ đợc chia cho nội dung của HR09 kết quả đợc đặt trong DM0017 và DM0018.

4.3.26 Lệnh so sánh CMP(20). (adsbygoogle = window.adsbygoogle || []).push({});

Kí hiệu dùng trong chơng trình thang:

Trong đó:

CP1: Word so sánh thứ nhất: CP2: Word so sánh thứ hai:

Lệnh CMP(20) dùng so sánh dữ liệu CP1 và CP2 và xuất hiện các kết quả ra các cờ GL, EQ, LE trong vùng SR( Special Registers).

EQ: ON nếu CP1 = CP2. LE: ON nếu CP1 < CP2. GL: ON nếu CP1 > CP2. Bảng các trạng thái của các cờ: 00000 DM0017 216 HR09 DIV(33) Dd: IR216 Dr: HR09 0 0 0 4 4 2 0 0 R:DM0017 1 0 5 0 0 0 Số chia Số bị chia Thuơng số Số du R+1: DM0018 0 0 CP2 CP1 CMP(20)

Cờ Địa chỉ CP1 < CP2 CP1 = CP2 CP1>CP2

GR 25505 OFF OFF ON

EQ 25506 OFF ON OFF

LE 25507 ON OFF OFF

4.3.27 Bộ đếm lặp lại CNTR(12).

Kí hiệu dùng trong chơng trình thang:

Trong đó: N là chỉ số CNTR(12).

SV: là giá trị đặt trong DM, HR, LR, SR…

CNTR là một bộ đếm theo hai chiều. Nó đợc dùng để đếm giữa giá trị đặt SV và 0 theo sự chuyển đổi một trong hai điều kiện đó là ngõ vào tăng II và ngõ vào giảm DI.

Giá tri hiện tại sẽ tăng nếu điều kiện đếm đợc đa vào ngõ vào II và sẽ giảm nếu điều kiện đếm đợc đua vào ngõ vào DI. Nếu điều kiện đếm đ- ợc đa cả vào hai ngõ II và DI thì trị số của CNTR sẽ khơng đổi.

Khi gí trị hiện tai PV giảm đến 00 thì PV sẽ đợc đặt về giá trị SV và cờ hoàn toàn đợc bật thành ON cho đến khi giá trị PV giảm trở lại. Khi giá trị PV tăng lên tới SV thì giá trị PV đợc đặt về 0 và cờ hoàn thành đợc bật sang ON cho đến khi giá trị PV tăng trở lại.

4.3.28 Lệnh High Speed Timer -TIMH (15)

Kí hiệu dùng trong chơng trình thang:

Trong đó: N là chỉ số TIMH(15).

SV: là giá trị đặt trong DM, HR, LR, SR…

Giá trị SV đặt trong TIM(15) chạy từ 00,00 giây đến 99,99 giây. Hoạt độnh của TIMH(15) giống nh lệnh TIM.

CNTR (12) N SV II DI R TIMH (15) N SV

Trong đó: P :là port riêng: 001, 002, 003.

C :là dữ liệu điều khiển 001, 002, 003. D :là Word đích đầu tiên SR, DM, HR…

Khi điều kiện thực hiện ngõ vào là ON, lệnh PRV (62) đọc dữ liệu đã định ở P và C rồi ghi nó vào D hay D +1.

Port riêng P xác định tốc độ xuất xung của Counter. Port (P) Chức năng

001 Chỉ định Counter tốc độ cao 0 hay xuất xung từ

một bit

002 Chỉ định Counter tốc độ cao 1 hay xuất xung từ

Port1 (adsbygoogle = window.adsbygoogle || []).push({});

003 Chỉ định Counter tốc độ cao 2 hay xuất xung từ port

2

C: Dữ liệu điều khiển xác định loại dữ liệu xử lý truy xuất

C Dữ liệu Word đích

001 Giá trị hiện tại PV của Counter tốc độ cao D & D +1

002 Trạng thái của Counter tốc độ cao hay xuất

xung D

003 Dãy kết quả so sánh D

4.3.30 Lệnh Root (72) – Squre Root ( Căn bậc hai).

Kí hiệu dùng trong chơng trình thang:

Trong đó: Sq: là word nguồn đầu; R: là word kết quả

DM6144 tới DM6655 không đợc dùng trong R.

Khi trạng thái của ngõ vào là OFF lệnh ROOT(72) không thực hiện, khi trạng thái của ngõ vào là ON lệnh ROOT(72) sẽ khai căn của Sq rồi cất kết quả trong R. Ví du: R Sq ROOT(72) 00001 DM0000 ROOT(72)

Ví dụ trên mơ tả sự khai căn của một số 8 số, kết quả của nó là một số 4 số và đợc làm trịn.

Do: 63250561 = 7953.0221 Nên kết quả đợc làm tròn là:

4.3.31 Lệnh END (01).

Kí hiệu dùng trong chơng trình thang:

Lệnh này đợc đặt ở cuối chơng trình, nếu khơng có lệnh này trong ch- ơng trình thì tồn bộ chơng trình sẽ khơng đợc thực hiện.

Sau khi PLC gặp lệnh này thì chơng trình lại đợc lặp lại từ đầu chứ khơng phải hết ( hết một chu trình).

4.4 Một số lệnh lập trình phổ biến khác của OMRON. 4.4.1 Bộ định thời TIMER: END(01) DM0000 6 3 2 5 0 5 6 1 DM0001 9 7 5 3

Khi bật khoá CH000.00 lên, Timer số 000 sẽ bắt đầu đếm thời gian, khi 10 giây trôi qua, tiếp điểm của Timer là TIM000 sẽ đợc bật lên ON và làm đầu ra CH010.00 cũng đợc bật lên ON. Timer cũng sẽ bị reset về giá trị đặt khi đầu vào 00000 tắt.

Bộ Timer này có thời gian đợc lu trong DM 0000. PLC sẽ lấy giá trị trong DM0000 làm giá trị cài đặt cho Timer. Giả sử nội dung của DM0000 là 150. Khi bật khoá CH000.00 lên, Timer số 000 sẽ bắt đầu đếm thời gian, khi đợc 15 giây (150x0.1=15) tiếp điểm của timer là TIM 000 đợc bật lên ON và làm đầu ra CH0100.00 cũng đợc bật lên ON.

4.4.2Bộ đếm COUNTER.

Lúc khởi đầu giá trị hiện hành của bộ đếm đợc bắt đầu tại SV. Bộ đếm sẽ giảm giá trị hiện hành của nó (CNT N) đi một đơn vị mỗi lần có sờn

lên ở xung đầu vào CP và cờ báo hoàn thành CNT N sẽ bật lên giá trị hiện hành của bộ đếm giảm về 0. Bộ đếm sẽ bị reset về giá trị đặt SV khi có sờn lên của đầu vào R.

Mỗi lần bật khoá CH000.00 giá trị của Counter giảm đi một . khi bật khố CH000.00 đủ 10 lần thì cờ báo CNT000 bật lên ON và do đó cũng bật đầu ra CH0101.00 lên ON. Bộ đếm sẽ bị reset khi bật switch CH000.01.

Mở rộng khả năng của bộ đếm TIMER.

Do thời gian đặt tối đa của timer là 0.278 giờ nên để tăng thời gian đếm của timer, ta có thể dùng kết hợp với Counter nh sau:

Trong ví dụ này ta sẽ lập trình PLC cho cơng đoạn đóng gói sản phẩm vào bao bì. Đây là cơng đoạn rất hay gặp trong các dây chuyền sản xuất. Trên hình ta thấy các sản phẩm hoàn thiện đợc băng chuyền chuyển tới các thiết bị đóng bao. Cứ 5 sản phẩm đóng vào một bao. Có một cảm biến quang điện làm nhiệm vụ phát hiện sản phẩm trên băng chuyền và gửi tín hiệu xung về bộ đếm trong PLC. Mỗi khi đếm đủ 5 sản phẩm, bộ đếm gửi tín hiệu ra cho cuộn hút solenoid làm việc. Thời gian cuộn hút làm việc là hai giây. trong thời gian cuộn hút làm việc, băng truyền ngừng chạy.

Trờng hợp này, ta có một đầu vào duy nhất là tín hiệu xung từ cảm biến, đặt là bit 00.2 đầu ra sẽ là tín hiệu gửi cuộn hút, đặt là 1001, và tín hiệu ngừng băng truyền đặt là 1000. (adsbygoogle = window.adsbygoogle || []).push({});

Bình thờng cuộn hút không làm việc, băng truyền chạy nhờ có tiếp điểm thờng đóng 1001 ở trạng thái OFF. Lúc này cảm biến sẽ gửi tín hiệu xung về PLC mỗi khi có sản phẩm đi qua và đầu vào lúc này đợc dùng làm đầu vào đếm của bộ đếm CNT 0. Khi có đủ 5 sản phẩm tiếp điểm CNT sẽ đóng, reset counter về giá trị ban đầu là 5, đồng thời gửi tín hiệu cho cuộn hút và timer làm việc trong mạch tự giữ. Lúc này băng truyền ngừng chạy do tiếp điểm 1001 ngắt mạch hoạt động của đầu ra 1000. Sau hai giây tiếp điểm TIM001 sẽ ngắt nguồn hoạt động của cuộn hút và băng truyền tiếp tục chạy, lặp lại chu trình.

Chú ý: Lệnh END ở cuối chơng trình chỉ đánh dấu việc kết thúc chu

trình làm việc hiện hành của PLC và bắt đầu chu trình mới từ lệnh đầu tiên chủa chơng trình. Nó khơng có ý nghĩa là chơng trình sẽ dừng. Ch- ơng trình chỉ dừng khi ta chuyển chế độ sang Program Mode hoặc có sự cố bên trong PLC.

4.5 Lập trình bằng phần mềm SYSWIN trên máy tính. 4.5.1 Phần mềm SYSWIN:

SYSWIN là một phần mềm lập trình cho PLC OMRON dới dạng Ledder Daigram thực thụ chạy trong WINDOW. Để cài đặt phần mềm này cần đảm bảo máy tính có cấu hình tối thiểu nh sau:

Windows 3.1, 3.11 ,Windows95, Windows98

 >486 DX50 CPU

 >8 M Byte Ram

 >10 MB Free HDD (Đĩa cứng trống)

4.5.2 Lập trình với SYSWIN

1) chọn folder nơi lu SYSWIN và khởi độnh chơng trình Ví dụ:

2) Từ menu File chọn New Project để tạo chơng trình mới PLC Type chọn CPM1

CPU chọn ALL Series chọn C

Editor chọn Ladder

Project Type chọn Program

Interface chọn Serial Communications Bridge chọn Option Direct

Moden chọn Option Local

Codding Option chọn SYSWIN Way

Ta lựa chọn các mục trên ở hộp hội thoại New Project Setup tiếp theo là

Click OK

3) Màn hình sẽ hiện ra một khung làm việc cho chơng trình dạng Ladder Daigram.

Dùng chuột di đến thanh công cụ ( Drawing Tool ) và nhấn vào biểu t-

ợng tiếp điểm (Contact) hoặc nhấn phím F2 để chọn lệnh này. Di chuột đến nơi cần đặt tiếp điểm trên sơ đồ và nhấn nút trái chuột.

Đánh vào địa chỉ 000.00 ở ô Address và nhấn OK trên hộp thoại trên. Màn hình sẽ hiện ra một network mới với tiếp điểm vừa nhập và ô chọn màu đen chuyển sang vị trí bên cạnh tiếp điểm này.

Làm tơng tự nh vậy với các tiếp điểm tiếp theo

Đánh vào ô Address địa chỉ 000.01 rồi nhấn OK.

Tiếp theo từ thanh công cụ chọn lệnh Output rồi di chuột đến vị trí cần đặt lệnh và nhấn nút trái chuột

Nhận lệnh OR bằng cách tạo ra một tiếp điểm nối song song với tiếp điểm đầu tiên trên network.

Trên thanh cơng cụ chọn tiếp điểm contact

Và đặt nó dới tiếp điểm đầu tiên là 000.00 (adsbygoogle = window.adsbygoogle || []).push({});

Gõ vào ô Address địa chỉ 000.02 và nhấn OK.

Tiếp theo nối tiếp điểm vừa tạo với tiếp điểm nằm trên bằng cách chọn công cụ Vertical Short rồi nhấn chuột vào vị trí nằm giữa hai dịng hoặc nhấn F5

Để xố tiếp điểm CH000.01, nhấn con trỏ chuột ở tiếp điểm này ( hoặc

Một phần của tài liệu Đồ án tốt nghiệp: Nghiên cứu, ứng dụng PLC trong điều khiển tự động máy xấn tôn (Trang 55)