Bây giờ hãy xem điều khiển chính là cái gì ?.Điều khiển chính có thể được xem như 1 ‘công tắc dừng khẩn cấp’.Một công tắc dừng khẩn cấp là một cái nút đỏ lớn trên máy và sẽ ấn nó trong trường hợp khẩn cấp.Tiếp theo,bạn đang ở 1 trạm bơm ga ơ địa phương gần cái cửa ở phía ngoài để xem ví dụ của trường hợp khẩn cấp.
Quan trọng –Chúng ta không ngầm ý rằng câu lệnh này là một sự thay thế cho ‘dây cứng’ của công tức dừng khẩn cấp. Không có sự thay thế nào cho công tắc như vậy.Hơn nữa đó là 1 cách dễ dàng nhất để hiểu chúng.
Câu lệnh điều khiển chính được sử dụng cùng với reset điều khiển chính.Tuy nhiên cáI này có thể thay đổi do nhà sản xuất.Một vàI sử dụng cùng với MCR thay vì để nó cùng làm việc với các ký hiệu khác.Nó thừơng được viết tắt là MC/MCR (master cỏntol/master control reset )
Đây là 1 ví dụ về ký hiệu của bộđiều khiển chính Dưới đây là 1 ví dụ của reset điều khiển chính
Để làm việc này trở nên thú vị, nhiều nhà sản xuất đã làm chúng hoạt động khác nhau.Bây giờ hãy xem là chúng đựoc sử dụng trong giản đồ ngang như thế nào.Hãy xem ví dụ sau.
Đây là những PLC khác nhau sẽ chạy chương trình này:
câu lệnh mc và mcr không tồn tại. Do đó sẽ bỏ qua khối câu lệnh này và ngay lập tức đi tới thanh ngang sau câu lệnh mcr.
Ngược lại, nếu đầu vào 0000 là đúng, PLC sẽ rthực hiện thanh ngang 2 và 3 và cập nhật trạng thái đầu ra 0500 và 0501.Vì vậy, nếu đầu vào 0000 là đúng, chương trình sẽđi theo thanh ngang 2.Nếu đầu vào 0001 là đúng 0500 sẽđúng và do đó nó sẽ mở khi PLC cập nhật đầu ra.Nếu đầu vào 0002 là true (tắt) 0501 sẽ là true và do đó nó sẽ mở khi PLC cập nhật đầu ra.
MCR cho PLC biết ‘đó là điểm kết thúc của khối mc/mcr’
Trong PLC này, thời gian quét không được nới rộng khi khối mc/mcr không đựoc thực hiện do PLC gIả vờ mưc logic trong khối không tồn tại.Nói cách khác,những câu lệnh bên trong khối không đuợc PLC trong thấy và do đó nó không thực hiện chúng. Nhà sản xuất Y –Trong ví dụ này.các thanh ngang 2 và 3 luôn luôn dựoc thực hiện mà không quantâm tới trạng thái của đầu vào 0000.Nếu đàu vào 0000 không là true PLC sẽ thực hiện câu lệnh MC (MC trở thành true).Nó xé bắt tất cả các câu lệnh dầu vào trong khói tắt.Nếu đầu vào 0000 là true câu lệnh MC sẽđược làm thành false.
Sau dó nếu đầu vào 0000 là true, chương trình thực hiện theo thanh ngang 2.Nếu đầu vào 0001 là true 0500 sẽ true và do đó nó sẽ mở khi PLC cập nhật các đầu ra.Nếu dầu vào 0002 là true (tắt) 0501 sẽ true và do đó nó sẽ mở khi PLC cập nhật các đầu ra.MCR cho PLC biết “đó là kết thúc của khối mc/mcr”.Khi đầu vào 0000 là false, các đầu vào 0001 và 0002 bị tắt mà không cần quan tâm tới chúng đnag mở hay đóng.Do đó các đầu ra 0500 và 0501 sẽ false.
Điểm khác biệt giữa nhà sản xuát X và Y ở trên là trong mô hình Y thời gian quét sẽ giống nhau (hoặc gần như nhau) mà không quan tâm tới khối đóng hay mở.Điều này là do PLC nhìn thấy mỗi câu lệnh cho dù khối đóng hay mở.
Hầu hết các nhà sản xuất sẽ làm câu lệnh đệm ở phía trước (1 ở trong khối mc/mcr) giữ lại điều kiện trước của nớ
Nếu nó đúng trước,nó sẽ vẫn đúng Nếu nó sai trước,nó sẽ vẫn sai
Bộ định thời nên được sử dụng ở trong khối mc/mcr bởi vì một vài nhà sản xuất sẽ reset chúng về 0 khi khối false trong khi các nhà sản xuất khác sẽđể chúng giữ nguyên giá trị hiện tại.
Bộđếm vẫn giữ giá trịđã đếm được của chúng.
Khi khối mc/mcr tắt (đầu vào 0000 sẽ false trong thang nhưđã chỉ ra trong ví dụ trước) câu lệnh OUTB(OutBar hay OutNot) sẽ không đựoc mở.Nó bắt buộc phải đóng.
Câu lệnh OutBar
Tóm lại,hãy chú ý .Hầu hết các nhà sản xuất sử dụng mẫu câu lệnh của nhà sản xuất Y ở trên.Khi có nghi ngờ,hãy đọc hướng dẫn của nhà sản xuất.Tốt hơn hết hãy hỏi họ.
Trong rất nhiều ứng dụng cần lưu giữ trạng tháI của sự kiện đã xảy ra.Như chúng ta đx thấy trong chương trước, đây là 1 quá trình đơn giản.Nhưng chúng ta phải làm gì nếu chúng ta lưu giũ rất nhiều sự kiện đã xảy ra và dùng lại chúng sau đó.
Câu trả lời : chúng ta sẽ xem lại câu lệnh thanh ghi dịch
Chúng ta sử dụng thanh ghi hay một nhóm các thanh ghi để tạo ra một đoàn tàu chứa các bit để lưu trạng tháI tắt/mởđã xảy ra.Mõi sự thay đổi trạng thái mới sẽđựoc lưu ở bit đầu tiên và những những bit còn lại đựoc dịch chuyển xuống cuối đoàn tàu.
Thanh ghi dịch được gọi bằng rất nhiều tên. SFT (ShiFT),BSL (Bit Shift Left),SFR (Shift Forward Regisster) là những tên phổ biến.Những thanh ghi này sẽ dục chuyển các bit về phía trái.BSR (Bit Shift Right) và SFRN(Shift Forward Register Not) là những ví dụ về câu lệnh dich chuyển bit về phía phải.Chúng ta nên chú ý rằng không phảI tất cả các nhà sản xuất đều có thanh ghi dịch để dịch chuyển dữ liệu sang bên phảI nhưng hầu hết có thanh ghi dịch trái.
Một câu lệnh thanh ghi dịch cơ bản có ký hiệu giống như trên. Chú ý rằng ký hiệu cần 3 đầu vào và một vài dữ liệu ở bên trong ký hiệu.
Lý do cho mỗi đầu vào như sau:
• Dữ liệu - Dữ liệu đầu vào được gom lại thành các trạng thái true/false sẽ được chuyển về phía cuối dãy. Khi dữ liệu đầu vào là true thì bit đầu tiên trong thanh ghi sẽ là 1. Dữ liệu này chỉđựoc đưa vào thanh ghi ở sườn dương của xung đồng hồđầu vào.
• Đồng hồ - Đồng hồ đầu vào cho thanh ghi dịch biết ‘ làm việc của nó’.Ở sườn dương của đầu vào, thanh ghi dịch sẽ dịch chuyển dữ liệu tới 1 vị trí ở bên trong thanh ghi và đưa trạng thái của dữ liệu đầu vào vào bit đầu tiên. Mỗi sườn dương của dầu vào quá trình xử lý sẽđược lặp lại.
Reset - Đầu vào reset thực hiện đúng như cái tên của nó. Nó xóa tất cả các bit trong thanh ghi mà chúng ta sử dụng về 0.
Ký hiệu thanh ghi dịch chuyển bên trong 1000 là vị trí của bit đầu tiên của thanh ghi của chúng ta. Nếu chúng ta nghĩ thanh ghi dịch là 1 đoàn tàu thì bit đầu tiên là dàu máy. Ký hiệu 1003 là bit cuối cùng của thanh ghi. Đó là toa dành cho người bảo vệ tàu. Do đó chúng ta có thể nói rằng 1001 và 1002 là các toa ở giữa đàu máy và toa dành cho người bảo vệ tàu. Chúng là các bit trung gian. Thanh ghi dịch này có 4 bit (1000,1001,1002,1003)
Hãy xem một ứng dụng để tìm hiểu tại sao và như thế nào chúng ta có thể sử dụng thanh ghi dịch.
Hãy tưởng tượng một máy bán kem ốc quế.Chúng ta có 4 bước.Đầu tiên kiểm tra xem phần vỏ ngoài có bị vỡ hay không.Tiếp dó, đặt kem vào trong vỏ (mởđầu ra 500). Tiếp theo đặt đậu phộng (mởđầu ra 501).Và cuối cùng chúng ta rắc lên (mởđầu ra 502). Nếu vỏ bị vỡ ,chúng ta hiển nhiên không muốn đưa kem vào và cả những thứ khác.Do đó chúng ta phải theo dõi xem có vỏ bọc nào bị vỡ trong quá trình xử lý không để chúng ta có thể báo cho máy biết là không thêm các thứ vào chúng. Chúng ta sử dụng 1 cảm biến để quan sát đáy của vỏ( đầu vào 0000) .Nếu nó mở thì vỏ là tốt, nếu nó đóng thì vỏ bị vỡ.Một bọ mã hóa theo dõi vỏ di chuyển trên phuơng tiện vận chuyển (đầu vào 0001) . Một nút ấn trên máy sẽ xóa các thanh ghi ( đầu vào 0002).
Bây giờ hãy đi theo các thanh ghi dịch như trong quá trình vận hành.Ở dây thanh ghi liên tiếp 1000 (thanh ghi mà chúng ta đang dịch chuyển) sẽ trông như thế này lúc bắt đầu :
10xx Register
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 0 0 0 0 0 0 0 0
Một cái vỏ tốt tới từ phía trước của bộ cảm biến ( đầu vào 0000).Bộ cảm biến (dữ lieeuj vào ) mở. 1000 sẽ không mở cho đến khi có sườn dương của bộ mã hóa (dầu vào 0001).Cuối cùng bộ mã hóa tạo ra 1 xung và trạng thái của dữ l iệu vào (cảm biến vỏđầu vào 0000) được chuỷển tới bit 1000.Thanh ghi bây giờ sẽ trông như sau:
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 0 0 0 1 0 0 0 1
Khi hệ thống chuyên chở hoạt động, một cái vỏ khác lại tới trước cảm biến.Lần này nó là 1 cái vỏ vỡ và bộ cảm biến vẫn tắt. Bây giờ bộ mã hóa taọ ra một xung khác. Trạng thái cũ của bit 1000 được chuyển tới bit 1001. Trạng tháI cũ của bit 1001 được chuyển tới bit 1002. Trạng thái cũ của bit 1002 được chuyển tới bit 1003.Và trạng thái mới của dữ liệu vào (cảm biến vỏ) được chuyển tới bit 1000.Thanh ghi bây giò sẽ trông như sau:
10xx Register
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 0 0 1 0 0 0 1 0
Bởi vì thanh ghi cho thấy rằng 1001 bây giờ mở, cái thang cho biết rằng đầu ra 0500 sẽ mở và kem được dặt vào vở.
Khi hệ thống chuyên chở tiép tục hoạt động, một cái vỏ khác lại tới trước cảm biến.Lần này nó là 1 cáI vỏ tốt và bộ cảm biến mở.Bây giờ bộ mã hóa taọ ra một xung khác.Trạng thái cũ của bit 1000 được chuyển tới bit 1001. Trạng thái cũ của bit 1001 được chuyển tới bit 1002. Trạng thái cũ của bit 1002 được chuyển tới bit 1003.Và trạng thái mới của dữ liệu vào (cảm biến vỏ) được chuyển tới bit 1000.Thanh ghi bây giò sẽ trông như sau:
10xx Register
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 0 1 0 1 0 1 0 1
Bởi vì thanh ghi cho thấy rằng 1002 bây giờ mở, cái thang cho biết rằng đầu ra 0501 sẽ mở và đậu phộng được đặt vào vỏ. Vì 1001 bây giờđang giữ trạng thái của vỏ vỡ, 500 vẫn còn tắt trên thang trên và không có kem được đưa vào vỏ. Khi hệ thống chuyên chở tiếp tục hoạt động, một cái vỏ khác lại tới trước cảm biến. Lần này nó cũng là 1 cái vỏ tốt và bộ cảm biến mở. Bây giờ bộ mã hóa taọ ra một xung khác.Trạng thái cũ của bit 1000 được chuyển tới bit 1001. Trạng thái cũ của bit 1001 được chuyển tới bit 1002. Trạng thái cũ của bit 1002 được chuyển tới bit 1003. Và trạng thái mới của dữ liệu vào (cảm biến vỏ) được chuyển tới bit 1000. Thanh ghi bây giò sẽ trông như sau:
10xx Register
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 1 0 1 1 1 0 1 1
Bởi vì thanh ghi cho thấy rằng 1003 bây giờ mở, cáI thang cho biết rằng đầu ra 0502 sẽ mở và chất rắc lên được đặt vào vở. Vì 1002 bây giờđang giữ trạng tháI của vỏ vỡ, 501 vẫn còn tắt trên thang trên và không có đậu phộng được đưa vào vỏ. Bởi vì thanh ghi cho thấy rằng 1001 bây giờ mở và thang cho biết rằng đầu ra 0500 sẽ mở và kem đựoc đặt vào trong vỏ.
Khi hệ thống chuyên chở tiếp tục hoạt động, một cái vỏ khác lại tới trước cảm biến.Lần này nó là 1 cáI vỏ vỡ và bộ cảm biến tắt.Bây giờ bộ mã hóa taọ ra một xung khác.Trạng thái cũ của bit 1000 được chuyển tới bit 1001. Trạng thái cũ của bit 1001 được chuyển tới bit 1002. Trạng thái cũ của bit 1002 được chuyển tới bit 1003. Và trạng thái mới của dữ liệu vào (cảm biến vỏ) được chuyển tới bit 1000. Thanh ghi bây giờ sẽ trông như sau:
10xx Register
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 0 1 1 0 0 1 1 0
Chú ý rằng trạng thái của vỏđầu tiên đã biến mất.Thực ra thì vị trí của nó là 1004 nhưng nó không cần thiết với chúng ta trong ứng dụng với 16 quá trình xử lý ởđây.Đã đủ để nói rằng sau khi bit được dịch chuyển hết đường về bên trái nó sẽ biến mất và không bao giờ thấy lại nưã.Noí cách khác nó dã được di chuyển ra khỏi thanh ghi và được xóa ra khỏi bộ nhớ.Mặc dù nó không được vẽ ra,quá trình vận hành ở trên vẫn tiép tục với mỗi bit đựoc dịch chuyển theo sườn dương của tín hiệu mã hóa.
Thanh ghi dịch chuyển rất phổ biến trong hầu hết mọi hệ thống vận chuyển, gán nhãn hoặc đóng chai.Đôi khi nó cũng được dùng khi quá trình hoạt động phải bị trễ trong hàng chai di chuyển nhanh.Ví dụ, một cuộn dây không thể ngay lập tức đẩy 1 lon bia hỏng khi cảm biến cho rằng nó hỏng. Khi đó ,cuộn dây phản ứng lại thig cáI chai đã đI qua rồi.Vì vậy cuộn dây sẽđựơc đặt ở xa hơn trên băng chuỳên và thanh ghi dịch chuyển theo dõi lon bia đểđẩy ra sau dó khi thuận lợi.
Một thanh ghi dịch chuyển thường rất khó hiểu.Khi có nghi ngờ, hãy đọc lại đoạn trên và bạn sẽ hiểu nó ngay thôi