4.3 Lập trình bằng Ledder Diagram
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 toà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 Toá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).
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).
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
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 khố 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.
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
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 dùng bàn phím di ơ chọn đến tiếp điểm) sau đó nhấn phím DEL hoặc từ menu Edit chọn Delete.
Nếu muốn phục hồi lại lệnh vừa xoá, chọn Undo từ menu này.
Hiện ta đã nhập xong một network của chơng trình. Để thêm network mới vào ta nhấn vào nút Insert Network
Từ hộp thoại hiện ra, chọn vị trí nơi sẽ chèn Network. ở đây ta sẽ chèn Network mới vào phía dới network hiện hành nên ta sẽ chọn Below Curent Network và nhấn OK
Trên màn hình sẽ xuất hiện nh sau:
Giả sử Network mới này là lệnh END (01). Đặt vị trí con trỏ vào vị trí ơ đầu tiên của network, sau đó bấm phím F8 để chèn lệnh Function vào ơ tróng đó. Để chọn lệnh cần thiết, có thể đánh mã lệnh ( ở đây là 01 ) đánh tên lệnh hoặc lựa Function từ một danh sách có sẵn bằn cách nhấp
vào nút Select. Ngồi ra có thể tham khảo thêm về lệnh bằng cách nhấp vào nút Reference.
Gõ END vào ô Function rồi nhấn OK để kết thúc
Chơng trình hồn chỉnh ta vừa nhập có dạng nh hình sau:
4.5.3 Đặt tên kí hiệu mơ tả (SYMBOL) cho các địa chỉ.
Để đặt tên ký hiệu mô tả cho các địa chỉ, trớc tiên di ô chọn đến địa chỉ cần đặt tên, ô Adr ở cuối màn hình sẽ hiển thị địa chỉ hiện hành. Sau đó bấm vào ơ Sym và đánh vào một tên cho địa chỉ này. Phần mơ tả địa chỉ chỉ có thể đánh vào ơ Com. Lu tên vừa đặt bằng cách bấm nút Store
4.5.4 Nạp chơng trình vào PLC ( Download Program to PLC )
Nối máy tính PC với bộ PLC qua bộ chuyển đổi cáp RS232C. Đầu cắm của bộ chuyển đổi sẽ nối vào cổng Peripheral Port của PLC
Sau khi việc nối các thiết bị đẵ đợc máy tính nhận biết. Từ menu Oline, chọn Connect để kết nối với PLC. Sau khi máy tính đã kết nối đợc với PLC, đèn COMM trên PLC sẽ nhấp nháy và các mục khác trên menu Online sẽ trở thành màu đen( đợc phép chọn lựa)
Cũng từ menu Online chọn Download Program. Một hộp thoại sau đây sẽ hiện ra hỏi ta có xố bộ nhớ chơng trình trong PLC khơng (Clear
Program Memory) trớc khi nạp. Nên lựa tuỳ chọn này để tránh các vấn đề có thể xảy ra. Bấm OK để nạp chơng trình vào PLC
Khi việc nạp hoàn tất bấm nút OK ở hộp thoại sau để tiếp tục
Chú ý:Không thực hiện đợc việc Download vào PLC nếu PLC đang ở
chế độ RUN
4.5.5 Chạy chơng trình PLC (RUN)
Trớc hết ta cần chuyển PLC sang chế độ RUN hoặc Monitor Bằng nút PLC Mode.
Chú ý: Trong khi chơng trình đang hoạt động có thể theo dõi cách hoạt
động của chơng trình bằng cách bấm vào nút Monitor ( F11)
4.5.6 Bổ sung các lệnh Timer và Counter vào chơng trình.
Trớc hết ta chuyển chế độ của PLC sang Program Mode. Máy tính sẽ hỏi thao tác này làm thay đổi chế độ PLC, có tiếp tục hay khơng, ta chọn Yes
Bổ sung một network mới vào chơng trình bằng cách chọn Insert network
Trong network mới thêm tiếp điểm Open Contact có địa chỉ là 000.03
Bổ sung Timer vào bằng cách chọn TIM và đặt nó sau tiếp điểm trên. Trong hộp thoại trên Timer mở ra nhập 000 là số thứ tự của Timer, trong ô Value nhập vào giá trị #1000 (tức 100 giây) chú ý phải có dấu #.
Kết quả sau khi bổ sung lệnh Timer
Bổ sung tiếp một network nữa vào chơng trình bằng chọn Insert