Chương 1: Tổng quan về ngôn ngữ SFC 1.1 Các định nghĩa về ngôn ngữ SFC Theo Automating With PLCs SFC được định nghĩa “Sequential Function Charts (SFCs) are a graphical technique for writing concur-rent control programs”[1]. Sách Programming Manual (SFC) viết: “SFC, an abbreviation for "Sequential Function Chart", is a control specification description format in which a sequence of control operations is split into a series of steps to enable a clear expression of the program execution sequence and execution conditions” [2]. Tuy hai nguồn có cách diễn đạt khác nhau nhưng chung quy ta rút ra định nghĩa SFC viết tắt của Sequential Function Chart, là một phương pháp lập trình đặc biệt kiểu đồ họa trong đó chương trình sẽ được chia thành chuỗi các bước (step) và điều kiện để chuyển tiếp bước(transition condition). SFC thích hợp để lập trình cho hệ thống có nhiều hoạt động xảy ra đồng thời với nhau. 1.2 Giới thiệu chung về ngôn ngữ SFC SFC là một trong năm loại ngôn ngữ lập trình tiêu chuẩn được đề cập trong phiên bản IEC61131-3 được công bố năm 2003. Năm ngôn ngữ được chuẩn hóa là liệt kê lệnh( IL, Instruction List), sơ đồ tiếp điểm (LD, Ladder Diagram), sơ đồ khối chức năng (FBD, Function Block Diagram), văn bản có cấu trúc (ST, Structured Text) và biểu đồ hoạt động tuần tự (SFC, Sequential Function Chart). 1.3 Đặc điểm của ngôn ngữ SFC SFC đặc biệt phù hợp với các ứng dụng có thể được cấu trúc thành các bước xác định rõ ràng. Mạch logic trong một bước có thể được lập trình trong bất kỳ ngôn ngữ lập trình khác, ngoài ra SFC còn có một số đặc điểm cơ bản như sau: Trang 1 Dễ lập trình và sửa lỗi chương trình. Chúng ta có thể đưa các chương trình điều khiển nguyên một nhà máy, điều khiển các thiết bị thuộc các trạm khác và toàn bộ máy móc vào chuỗi các khối và bước của một chương trình SFC . Với cách lập trình với ngôn ngữ có dạng biểu đồ như SFC người lập trình có thể thấy rõ hoạt động của từng bước trong hệ thống nên sẽ dễ dàng hơn cho việc kế và sửa lỗi, nhất là những ứng dụng phức tạp như Hình 1.1 Hình 1.1. Ứng dụng ngôn ngữ SFC trong điều khiển phức tạp [nguồn: Programing Manual] Không cần đến mạch khóa chéo phức tạp. Mạch khóa chéo chỉ được sử dụng trong sự điều khiển ngõ ra cho mỗi bước. Bởi vì không một công tắc khóa chéo nào được tác động giữa các bước với nhau trong Trang 2 chương trình SFC. Khi mỗi bước của chương trình SFC được kích hoạt bởi điều kiện chuyển tiếp, nó sẽ xóa hoạt động của bước liền trước trừ một số trường hợp ta dùng đến các khối đặc biệt. Ví dụ về mạch khóa chéo được cho trong Hình 1.2. Hình 1.2. Mạch khóa chéo trong chương trình SFC [nguồn: Programing Manual] Trang 3 SFC có sự tương đồng với dạng lưu đồ giải thuật trong cách chuyển tứ bước này sang bước khác, ta có thể quan sát qua ví dụ trong Hình 1.3 Hình 1.3 Sự tương quan giữa SFC và Flowchart [nguồn: PLC Programmable Logic Controllers theory and implementation Second Edition] Sự thiết lập cho các khối và các bước có thể thay đổi rất dễ dàng cho một ứng dụng mới. Đối với các loại ngôn ngữ khác như Ladder hay Instruction List khi ta muốn thay đổi hay mở rộng thêm cho ứng dụng thì ta có thể phải viết lại chương trình điều khiển, điều này gây bất lợi nhất là những dây chuyền nhập khẩu hoàn toàn ở nước ngoài họ có thể mã hóa chương trình không cho phép chúng ta can thiệp. Tuy nhiên với SFC, ta có thể mở rộng ứng dụng dễ dàng hơn. Bằng cách lập Trang 4 trình theo khối (phần này đồ án không đề cập) thì khi thêm một ứng dụng ta có thể lập trình ứng dụng vào một khối riêng rồi đưa vào chương trình chính, thông qua các điều kiện chuyển tiếp chương trình sẽ hoạt động đúng theo ý đồ của người lập trình. Cụ thể: o Tổng cộng ta có thể tạo 320 khối trong một chương trình SFC o Tối đa 512 bước có thể tạo trong một khối o Có tới 2000 bước tuần tự có thể tạo cho toàn bộ các khối ngõ ra. o Một điều kiện chuyển tiếp khác có thể được tạo trong đuy nhất một khối ladder. Có thể tạo nhiều khối mở đầu trong một chương trình. Chúng ta có thể tạo một chương trình với nhiều bước mở đầu như ví dụ trong Hình 1.3. Khi có nhiều khối mở đầu được kích hoạt ( S0,S1,S2,S3) tại bất kỳ một bước mà có điều kiện chuyển tiếp được thỏa mãn (t4 đến t7) thì bước S8 sẽ được thực thi. Hình 1.4 Chương trình SFC với nhiều bước mở đầu [nguồn: Programing Manual] Trang 5 Chương 2: Cấu trúc ngôn ngữ SFC 2.1. Cấu trúc một chương trình SFC cơ bản Theo tiêu chuẩn IEC, một chương trình SFC bao gồm ba thành phần chính là: Các bước (steps) Các sự chuyển tiếp(transitions) Các tác động( actions) Hình 2.1. Cấu trúc một chương rình SFC cơ bản [nguồn: PLC Programmable Logic Controllers theory and implementation Second Edition] 2.2. Các bước Một step biểu diễn một trạng thái trong đó hoạt động của một khối chương trình với các tìn hiệu ngõ vào và ngõ ra được xác định theo các hoạt động liên kết của bước. Một bước có thể được kích hoạt hoặc không được kích hoạt. Trạng thái của các hoạt động trong chương trình thay đổi phụ thuộc vào trạng thái của các bước [3]. Mỗi bước có thể có hoặc không có tác động liên kết với nó. Một tác động liên kết với bước bao gồm dãy các lệnh để PLC thực hiện một chức năng nào đó trong khoảng thời gian bước tích cực. Một Action có thể được lập Trang 6 trình bằng một trong bốn ngôn ngữ lập trình còn lại của IEC61131-3 languages.[4] Trong SFC, có các loại bước cơ bản sẽ được liệt kê trong các phần dưới đây. 2.2.1. Initial steps Initial step là một bước mở đầu, có kí hiệu là một hình vuông nét đôi. Nó đại diện cho sự bắt đầu của một một khối. Trong một khối chúng ta có thể thiết kế tối đa 32 bước mở đầu. Nếu có nhiều hơn một khối mở đầu được kích hoạt thì chương trình sẽ được thực thi nếu có bất cứ một điều kiện chuyển tiếp sau bước mở đầu được thỏa mãn. Ta xét ví dụ trong Hình 2.2 sau: Hình 2.2. Thiết kế chương trình với nhiều khối mở đầu Trong hình trên, các bước mở đầu S0,S1,S2,S3 cùng được kích hoạt, nếu một trong các điều kiện chuyển tiếp t0,t1,t2,t3 được thỏa mãn thì bước S4 sẽ được thực thi. 2.2.2. Dummy step Dummy step là một bước mà tại đó không có chương trình xuất ra ngõ ra của PLC, do đó Dummy step có thể được sử dụng như một bước tạo trễ. PLC sẽ kiểm tra điều kiện chuyển tiếp phía sau bước Dummy step tương ứng trong khoảnng thời gian hoạt động của nó và chương trình sẽ xử lý bước tiếp theo khi mà điều kiện chuyển tiếp được thỏa mãn. Dummy step sẽ trở thành một step khi mà ta tạo cho nó một chương trình xuất dữ liệu. Trang 7 2.2.3. Coil Hold Step Một Coil HOLD step là một step mà tại đó cuộn dây được duy trì điện khi chương trình chuyển qua bước khác. Trong chương trình SFC bình thường không sử dụng Coil Hold Step, trạng thái ON của tiếp điểm cuộn dây sẽ tự động chuyển sang trạng thái OFF ngay sau khi diều kiện chuyển tiếp tới bước khác được thỏa mãn. Ta có thể thấy rõ hoạt động đó qua Hình 2.3. Hình 2.3. Hoạt động của một bước bình thường [nguồn: Programming Manual] Hình 2.3. Ở bước ‘n’ khi X1được tác động thì cuộn dây Y10 được cấp điện, khi chương trình chuyển qua bước ‘n+1’ thì cuộn dây Y10 mất điện và tiếp điểm cuộn dây Y10 tại bước ‘n+1’ không chuyển trạng thái (vẫn ở trạng thái off). Bằng cách thiết kế một bước ngõ ra theo cách sử dụng Coil HOLD step, tiếp điểm thường hở của cuộn dây sẽ được tác động lại khi chương trình đang xử lý bước kế tiếp.Ta phân tích Hình 2.4 và Hình 2.5 sau: Hình 2.4. Ở bước ‘n’ khi X1được tác động thì cuộn dây Y10 được cấp điện, tiếp điểm Y10 của cuộn dây ở bước n+1 đang thường hở. Trang 8 Hình2.4. Hoạt động của Coil Hold Step [nguồn: Programming Manual] Hình 2.5. Khi chương trình SFC chuyển qua bước ‘n+1’ tiếp điểm Y10 chuyển trạng thái sang ON dù X1 đã chuyển sang trạng thái OFF. Hình 2.5. Hoạt động của Coil Hold Step [nguồn: Programming Manual] Trang 9 Khi trạng thái ON của cuộn dây được duy trì trong bước kế tiếp, cuộn dây sẽ bị mất điện trong các trường hợp sau: Khi chương trình thực hiện bước End( ngoại trừ trường hợp SM327 đang ON) Khi lệnh điều khiển chương trình SFC(RST BLm) thực thi một lênh END cưỡng bức tại khối đang xử lý. Khi mà thiết bị tạo tín hiệu cho khối START/END của chương trình SFC bị reset. Khi mà bước reset có chức năng reset bước Coil Hold Step được kích hoạt. Khi mà thiết bị điều khiển chương trình SFC START/STOP (SM321) bị tắt. Khi cuộn dây trong bước Coil Hold step bị reset bởi các lệnh trong chương trình. Khi lệnh STOP được thực thi. 2.2.4. Operation Hold Step (without transition check) Operation Hold Step là bước mà tại đó hoạt động xuất tín hiệu ngõ ra của bước Operation Hold step vẫn tiếp tục sau khi chương trình đã chuyển qua bước kế tiếp. Tuy nhiên, chương trình sẽ không chuyển qua bước kế tiếp nếu điều kiện chuyển tiếp qua bước được thỏa mãn một lần nữa. Ta quan sát hoạt động của Operation Hold Step (without transition check) qua Hình 2.6 và Hình 2.7 dưới. Khi chương trình SFC không sử dụng Operation Hold Step (without transition check), trạng thái ON của tiếp điểm cuộn dây ( được kích hoạt bởi lệnh OUT ) sẽ tự động chuyển sang OFF trước khi chương trình SFC chuyển qua bước kế tiếp. Khi sử dụng Operation Hold Step (without transition check) thì trạng thái ngõ ra của bước này sẽ được giữ khi chương trình xử lý sang bước tiếp theo. Vì vậy khi tìn hiệu ngõ vào thay đổi thì trạng thái của tiếp cuộn dây cũng thay đổi theo. Trang 10 Hình 2.6 Hoạt động của Operation Hold Step [nguồn: Programming Manual] Như trong Hình 2.6 trên ta thấy khi chuyển từ bước ‘n’ sang ‘n+1’ thì trạng thái ngõ ra của bước ‘n’ là tiếp điểm cuộn dây Y10 không thay đổi, khi trạng thái của tín hiệu ngõ vào cấp cho Y10 là X1 chuyển từ ON sang OFF trong bước ‘n’ thì sau khi chuyển qua bước ‘n+1’ trạng thái của Y10 cũng thay đổi theo. Hình 2.7. Sau khi chương trình xử lý sang bước tiếp theo sẽ không có sự kiểm tra điều kiện chuyển tiếp từ bước Operation Hold Step (without transition check) sang bước kế tiếp nữa, vì vậy sẽ không có sự chuyển bước xảy ra khi điều kiện chuyển tiếp được thỏa mãn một lần nữa. Chương trình sẽ thực thi bước kế tiếp nếu điều kiện chuyển tiếp của bước được thỏa mãn. Trang 11 Hình 2.7. Quá trình chuyển tiếp [nguồn: Programming Manual] Bước Operation HOLD step (without transition check) sẽ bị mất tích cực khi một trong những trường hợp sau xảy ra: Khi bước END của khối được thực thi. Khi lệnh điều khiển chương trình SFC(RST BLm) thực thi một lênh END cưỡng bức tại khối Khi mà bước Operation HOLD step bị reset bởi các lệnh điều khiểnchương trình SFC( RST BLm\ RST Sn). ( ngoại trừ trường hợp SM327 đang ở trạng thái ON) Khi mà thiết bị tạo tín hiệu cho khối START/END của chương trình SFC bị reset. Khi mà bước reset bước Operation HOLD được kích hoạt Khi mà rơle (SM321) điều khiển chương trình SFC START/STOP bị đưa xuống mức OFF 2.2.5. Operation Hold Step (with transition check) Operation Hold Step là bước mà tại đó hoạt động xuất tín hiệu ngõ ra của bước Operation Hold step vẫn tiếp tục sau khi chương trình đã chuyển qua bước kế tiếp. Tuy nhiên, chương trình sẽ vẫn chuyển qua bước kế tiếp nếu điều kiện chuyển tiếp qua bước được thỏa mãn một lần nữa (được kích hoạt lại). Trang 12 Trong chương trình SFC bình thường thì trạng thái ON của tiếp điểm cuộn dây (được kích hoạt bởi lệnh OUT) sẽ tự động chuyển sang OFF trước khi chương trình SFC chuyển qua bước kế tiếp. Khi sử dụng Operation Hold Step (with transition check) thì trạng thái ngõ ra của bước này sẽ được giữ khi chương trình xử lý sang bước tiếp theo. Vì vậy khi tín hiệu ngõ vào thay đổi thì trạng thái của tiếp điểm cuộn dây cũng thay đổi theo. Ta có thể quan sát sự thay đổi của cuộn dây Y10 theo X1 qua Hình 2.8 dưới Hình 2.8. Hoạt động của Operation Hold Step [nguồn: Programming Manual] Như trong hình trên ta thấy khi chuyển từ bước ‘n’ sang ‘n+1’ thì trạng thái ngõ ra của bước ‘n’ là tiếp điểm cuộn dây Y10 không thay đổi, khi trạng thái của tín hiệu ngõ vào cấp cho Y10 là X1 chuyển từ ON sang OFF trong bước ‘n’ thì sau khi chuyển qua bước ‘n+1’ trạng thái của Y10 cũng thay đổi theo. Sau khi chương trình xử lý sang bước tiếp chương trình sẽ kiểm tra lại điều kiện chuyển tiếp từ bước Operation Hold Step (with transition check) , do đó khi điều kiện chuyển tiếp của bước được thỏa mãn lại thì chương trình sẽ quay lại bước vừa xử lý và thực thi nó. Nếu điều kiện không thỏa mãn thì chương trình mới thực hiện bước kế tiếp. Trang 13 Hình 2.9. Sự chuyển tiếp của Operation Hold Step (with transition check) [nguồn: Programming Manual] Bước Operation HOLD step (with transition check) sẽ bị mất kích hoạt khi một trong những trường hợp sau xảy ra: Khi chương trình thực hiện bước End( ngoại trừ trường hợp SM327 đang ON) Khi lệnh điều khiển chương trình SFC(RST BLm) thực thi một lênh END cưỡng bức tại khối đang xử lý. Khi mà thiết bị tạo tín hiệu cho khối START/END của chương trình SFC bị reset. Khi mà bước reset có chức năng reset bước Coil Hold Step được kích hoạt. Khi mà thiết bị điều khiển chương trình SFC START/STOP (SM321) bị tắt. Trang 14 2.2.6. Reset Step Reset Step là bước mà tại đó một bước được chọn sẽ bị xóa kích hoạt một cách cưỡng bức. Ngoài ra bước reset còn có thể dùng để reset các tín hiệu ngõ ra như trong các dạng ngôn ngữ khác. Hình 2.10. Hoạt động của bước Reset [nguồn: Programming Manual] Khi lập trình ở một số phần mềm ví dụ như GX-Deverloper nếu muốn reset một bước xác định ta để số thứ tự của bức muốn reset vào ô Reset, khi bước Reset được kích hoạt step 3 sẽ bị reset. 2.2.7. Block START Step (with END check) Block START Step (with END check) là bước mà tại đó khối được xác định bởi bước sẽ được bắt đầu, khi chương trình thực thi bước END của khối này thì chương trình sẽ kiểm tra điều kiện để chuyển qua bước khác. Khi bước Block START Step (with END check) được kích hoạt, chương trình sẽ cho phép khối ‘m’ được thực thi. Chương trình chính sẽ không thực thi bất cứ một hoạt động nào trong khi khối ‘m’ đang được xử lý. Khi chương trình xử lý trong khối ‘m’ gặp bước END thì chương trình sẽ chỉ kiểm tra điều kiện chuyển tiếp. Khi điều kiện chuyển tiếp được thỏa mãn thì chương trình sẽ xử lý sang bước tiếp theo. Trang 15 Hình 2.11. Hình dạng Block START Step(with END check) [nguồn: Programming Manual] Hinh 2.12 Hoạt động xử lý chương trình khi gặp bước Block START Step(with END check) [Nguồn: PLC Programmable Logic Controllers theory and implementation 2nd ed][4] Hình 2.12 cho ta thấy hoạt động của chương trình khi gặp Block START Step. Ta có thể thấy rõ là chương trình chính sẽ rẽ nhánh qua thực hiện chương trình trong Block ‘m’. Sau khi chương trình thực thi xong các Bước trong Block’m’ mới chuyển về chương trình chính và kiểm tra điều kiện để tiếp tục. Trang 16 2.2.8. Block START Step (without END check) Block START Step (without END check) là bước mà tại đó khối được xác định bởi bước sẽ được bắt đầu, trong lúc chương trình đang thực thi các bước trong khối thì điều kiện chuyển tiếp vẫn được kiểm tra. Khi được kích hoạt Block START Step (without END check) sẽ cho phép khối ‘m’ được hoạt động. Sau khi khối ‘m’ đã hoạt động, điều kiện chuyển tiếp từ bước m sang bước kế tiếp là xung tác động cạnh lên X0 sẽ được kiểm tra. Hình 2.13. Hình dạng Block START Step (without END check) [nguồn: Programming Manual] Nếu điều kiện chuyển tiếp được thỏa mãn thì chương trình sẽ chuyển qua bước kế tiếp mà không cần chờ cho tới khi khối ‘m’ kết thúc. 2.2.9. END Step END Step là bước mà tại đó tất cả sự hoạt động của khối bị dừng lại. Hoạt động của bước END như sau: Khi bước END được kích hoạt các hoạt đọng sau sẽ được xử lý để kết thúc hoạt động của khối: o Tất cả các bước trong khối bị mất kích hoạt o Cuộn dây được cấp điện bởi lệnh OUT tất cả bị mất điện Trang 17 2.3. Sự chuyển tiếp Quá trình chuyển tiếp là thành phần cơ bản của một khối, sau khi PLC thực hiện xong các lệnh trong phần tác động gắn với bước, PLC sẽ thực hiện một sự chuyển tiếp rồi mới thực thi bước kế tiếp. Một điều kiện chuyển tiếp là điều kiện để tiến hành thực hiện các bước tiếp theo sau khi điều kiện đó được thỏa mãn. Một chuyển tiếp có thể lấy từ các tín hiệu ngõ vào có sự thay đổi, kết quả của tác động bước kế trước hay là kết quả một phép so sánh (e.g., IFTemp_1≥100 trong Hình 2.1).[4] Một số loại chuyển tiếp được cho trong Bảng 2.1 Bảng2.1. Chức năng một số chuyển tiếp Loại Serial transition Selection transition (branch/coupling) Chức năng từng loại Khi điều kiện chuyển tiếp thỏa mãn, bước tiếp theo được thực hiện, và tương tự cho các bước sau đó. - Một nhánh ra hoặc vào với nhiều điều kiện chuyển tiếp. - Trong số nhiều điều kiện chuyển tiếp, bước tiếp theo sẽ được thực hiện nơi điều kiện chuyển tiếp thỏa mãn. - Thực hiện tiến hành nhiều bước từ một bước duy nhất. Parallel transition - Khi các bước tức thời trước khớp nối được thực thi, (branch/coupling) bước tiếp theo cũng sẽ được thực thi khi các điều kiện chuyển tiếp thông thường thỏa mãn. Jump transition Khi điều kiện chuyển tiếp thỏa mãn, sẽ tiến hành thực thi các bước quy định trong cùng một khối. Trang 18 2.3.1. Serial transition Serial transition là quá trình chuyển đổi nối tiếp, trong đó sẽ xử lý và tiến hành các bước ngay dưới bước hiện tại, khi các điều kiện chuyển tiếp thỏa mãn. Hình 2.14. Vị trí của Transition . [nguồn: Programming Manual] Quá trình chuyển đổi nối tiếp có tối đa 512 bước trong mỗi khối. Vì vậy cũng có 512 quá trình chuyển đổi nối tiếp được mô tả. Tuy nhiên , có một số hạn chế về số lượng các dòng như chỉ ra trong hình 2.15 dưới đây. phụ thuộc vào các hiện thị cột SFC. Trang 19 Khi chương trình SFC hiện 1 hoặc 2 cột thì: - Số bước(dòng) tối đa là 1536 - Số chuyển đổi nối tiếp tối đa là 512 Hình 2.15. Số lượng các bước và điều kiện chuyển tiếp trong một khối của chương trình SFC [nguồn: Programming Manual] Trang 20 Hình 2.15. cho ta thấy trong một chương trình SFC, sẽ có tối đa 32 hoạt động song song (32 cột) và khi trrong khối sẽ có số lượng các bước tính theo công thức trên. Bảng 2.2 liệt kê số dòng tương ứng tối đa với số cột của SFC Bảng 2.2: Số lượng các dòng và các cột trong một khối của một chương trình SFC Số cột hiện thị Số bước hiện thị tối đa tương ứng 1 hoặc 2 1536 8 384 16 192 22 138 28 108 32 96 2.3.2. Selection transition Selection transition là sự lựa chọn chuyển tiếp, trong đó xử lý song song các điều kiện chuyển tiếp. Điều kiện chuyển tiếp ở nhánh nào thỏa mãn thì bước tiếp theo của nhánh đó được thực hiện. Ta xét sự lựa chọn rẽ nhánh và lựa chọn ghép nối theo Bảng 2.3 sau: Trang 21 Bảng 2.3: Sự hoạt động của các điều kiện chuyển tiếp Từ bước “n” sẽ xử lý để thực thi bước “n+1” hoặc “n+2” thông qua hai điều kiện chuyển tiếp “b” hoặc “c” tương ứng. Nếu cả 2 điều kiện chuyển đổi được thỏa mãn đồng thời, Rẽ thì điều kiện bên nhánh trái sẽ được ưu tiên. Bước “n” sẽ ngừng hoạt động. Xử lý các bước cũng như các điều kiện được tiến hành tiếp tục trong từng cột cho đến khi gặp một khớp nối song song. Trang 22 Khi các điều kiện chuyển đổi “b” hoặc “c” được thỏa mãn Ghép thì các bước thực nối thi [A] hoặc [B] sẽ bị ngừng hoạt động. Bước “n+2” sẽ được thực thi. Sẽ có tối đa 32 bước có sẵn để lựa chọn chuyển đổi. Hình 2.16: Số lượng các bước có thể chọn lựa trong một khối [nguồn: Programming Manual] Khi hai hoặc nhiều điều kiện lựa chọn chuyển tiếp thỏa mãn, thì điều kiện tận cùng bên trái được ưu tiên. Ví dụ: Ở hình 2.16 Khi điều kiện chuyển tiếp “c”, “d”, “e” cùng thỏa mãn thì chương trình SFC sẽ ưu tiên chọn bước “n+2” thực thi trước tiên. Trang 23 Hình 2.17: Lựa chọn bước ưu tiên [nguồn: Programming Manual] Trong một quá trình lựa con chuyển đổi, sự lựa chọn ghép nối có thể được bỏ qua bởi một chuyển đổi nhảy, hoặc chuyển đổi kết thúc. Khi điều kiện chuyển tiếp “b” thỏa mãn thì bước “n+1” được thực thi, sau đó tiếp tục kiểm tra chuyển tiếp và thực thi các bước phía dưới, cho đến khi điều kiện chuyển tiếp “d” thỏa mãn thì thực thi chuyển tiếp nhảy đến bước “n”. Hình 2.18. Chuyển tiếp nhảy bước [nguồn: Programming Manual] Chú ý: Trong một quá trình chuyển đổi có chọn lọc, số lượng chi nhánh và số lượng của khớp nối có thể khác nhau. Tuy nhiên, một chi nhánh lựa chọn và khớp nối song song hoặc một chi nhánh song song và lựa chọn khớp nối không thể được kết hợp. Trang 24 2.3.3. Parallel transition Parallel transition là sự quá trình chuyển tiếp song song. Trong đó các bước liên kết song song được thực thi đồng thời khi điều kiện chuyển tiếp thỏa mãn. Bảng 2.4. Sự hoạt động của các điều kiện chuyển tiếp Từ bước “n” nếu điều kiện chuyển tiếp “b” thỏa mãn thì sẽ thực hiện đồng thời bước Rẽ nhánh “n+1” và bước “n+3” Điều kiện chuyển tiếp “c” thỏa mãn thì thực hiện bước “n+2”, còn “d” thỏa mãn sẽ thực hiện bước “n+4” Khi điều kiện chuyển tiếp “b”, “c” thỏa mãn thì bước “n”, “n+1” ngừng hoạt động và thực thi các Ghép nối bước chờ đợi. Bước chờ đợi được sử dụng để đồng bộ hóa song song. Khi điều kiện chuyển tiếp “d” được thỏa mãn ở các bước chờ đợi, Trang 25 chương trình sẽ tiến hành thực thi bước “n+2”. Bước chờ đợi là bước giã lập (dummy steps) với yêu cầu khôn có đầu ra hoạt động Có tối đa 32 bước để xử lý đồng thời các chuyển đổi song song. Hình 2.19: Số bước tối đa có thể lựa chọn [nguồn: Programming Manual] Nếu khối khác được bắt đầu bằng các hoạt động xử lý song song, khối nguồn bắt đầu khối và bắt đầu khối điểm đến sẽ được thực thi cùng một lúc. Trong ví dụ dưới bước “n+1” sẽ được thực hiện đồng thời với khối 1. Trang 26 Khi điều kiện chuyển tiếp “b” thỏa mãn sau khi thực hiện bước “n”, thì bước “n+1” và khối 1 sẽ được thực thi đồng thời. Sau đó khối 0 và khối 1 sẽ được xử lý đồng thời. Hình 2.20. Thực thi khối và bước [nguồn: Programming Manual] Khớp nối phải được sử dụng khi cần tới các các bước thực thi và điều kiện chuyển tiếp song song. Chương trình được tạo ra không thể không có khớp nối. Hình 2.21: Chuyển tiếp song song Theo quy định, một bước chờ đợi phải được tạo ra trước khi thực hiện khớp nối. Tuy nhiên, trong trường hợp như ví dụ dưới đây của các cột quá trình chuyển đổi song song bao gồm chỉ có 1 bước (chương trình mà không cần một điều kiện chuyển tiếp giữa các quá trình chuyển tiếp song song chi nhánh và khớp nối), một bước chờ đợi không cần thiết. Trang 27 Hình 2.22: Khớp nối song song [nguồn: Programming Manual] 2.3.4. Jump transition Jump transition là một chuyển tiếp nhảy, một chuyển tiếp được quy định trong cùng một khối, bước này được thực thi khi điều điều kiện chuyển tiếp thỏa mãn. Hình 2.23: Chuyển tiếp của bước nhảy [nguồn: Programming Manual] Ở hình 2.23. khi điều kiện chuyển tiếp “b” thỏa mãn thì bước “n” sẽ ngừng hoạt động, chương trình chuyển qua thực hiện bước “m”. Không có hạn chế về số lượng của quá trình chuyển đổi nhảy trong một khối duy nhất. Trong các định dạng chuyển tiếp song song, chỉ có thể nhảy theo hướng thẳng đứng ở từng chi nhánh. Trang 28 Chương 3: Lập trình bằng ngôn ngữ SFC với PLC của Mitsubish Một số dòng PLC của hãng Mitsubishi cho phép lập trình với ngôn ngữ SFC, tuy nhiên cũng có một số dòng không hỗ trợ. Khi lập trình ta có thể chuyển đổi sang ngôn ngữ khác mà PLC hỗ trợ. Các dòng PLC Mitsubishi cho phép lập trình với ngôn ngữ SFC [xem phụ lục 1] 3.1. Ngôn ngữ SFC với PLC của Mitsubishi Ngôn ngữ SFC là ngôn ngữ quốc tế đã được chuẩn hóa, do đó các nhà sản xuất PLC khi sử dụng SFC để lập trình cho PLC của họ đều phải theo chuẩn của ngôn ngữ và đối với hãng Mitsubishi cũng không ngọai lệ. Tuy nhiên khi ứng dụng một ngôn ngữ chuẩn vào thì nhà sản xuất vẫn có một số ít thay đổi. Đối với PLC Mitsubishi ngôn ngữ SFC có một số tùy chỉnh ở các bước thực thi. Một ví dụ cụ thể là khi lập trình bằng phần mềm GX – Developer, phần ngõ ra và điều kiện chuyển tiếp được lập trình riêng trong 1 cửa sổ khác. Còn đối với một số phần mềm khác như: phần mềm CoDeSys, phần mềm RSLogix 5000 thì phần xuất dữ liệu ngõ ra, điều kiện chuyển tiếp được lập trình liền kề với khối chức năng tuân thủ theo đúng ngôn ngữ SFC. [phụ lục 2] 3.2. Trình tự lập trình bằng ngôn ngữ SFC Trình tự lập trình bằng ngôn ngữ SFC có thể chia thành các bước các bước cơ bản sau Bước 1: Từ yêu cầu của hệ thống cần lập trình, ta tiến hành xác định số đầu vào và đầu ra. Mối liên hệ giữa các đầu vào và đầu ra này. Bước 2: Xác định số bước, số điều kiện chuyển tiếp, các hoạt động cùng lúc, hoạt động theo trình tự, liên tục hoặc gián đoạn… Bước 3: Tiến hành lập lưu đồ giải thuật, từ lưu đồ giải thuật ta tiến hành lập trình chi tiết trên phần mềm. Trang 29 3.3. Trình tự PLC thực hiện các bước trong chương trình SFC Ta xét ví dụ Hình 3.1 Hình 3.1. Cấu trúc một chương rình SFC cơ bản [nguồn: Programming Manual] Chương trình SFC sẽ thực hiện một chuỗi các công đoạn, bắt đầu từ bước đầu tiên, sau đó thực hiện bước tiếp theo khi điều kiện chuyển tiếp được thỏa mãn, và kết thúc với bước END. Cụ thể: Khi chương trình SFC được bắt đầu, chương trình sẽ chạy bước trên cùng đầu tiên( bước kiểm tra điều kiện khởi động) Chương trình cứ thực hiện bước đầu cho tới khi điều kiện 1 được thỏa mãn. Khi điều kiện 1 thỏa mãn, hoạt động của bước đầu sẽ bị dừng lại, và chương trình sẽ thực hiện bước tiếp theo. Hoạt động của chương trình SFC tiếp tục từ bước này qua bước khác theo cách như trên cho tới khi bước kết thúc END được thực hiện. Trang 30 3.4. Chuyển đổi ngôn ngữ SFC sang dạng ngôn ngữ khác Ngôn ngữ SFC có thể chuyển đổi sang các dạng ngôn ngữ khác, tuy nhiên sự chuyển đổi không phải chuyển đổi hoàn toàn. Trong ví dụ Hình 3.2 ta sẽ xét các bước chuyển đổi một chương trình viết bằng ngôn ngữ SFC sang ngôn ngữ Ladder. Ví dụ 3.1: Chương trình SFC điều khiển cho một máy dập Nguyên lý hoạt động của máy: Nhấn nút Start, nếu nút nhấn automatic được nhấn tiếp thì chương trình sẽ bật nguồn cho máy dập và đèn báo sáng. Khi cảm biến xác định vật phẩm, búa dập sẽ được đẩy xuống và chạm công tắc hành trình hạn dưới. Khi gặp công tắc hành trình hạn dưới, búa dập được nâng lên lại cho tới khi gặp công tắc hành trình hạn trên, và búa dập sẽ dừng hoạt động. Một nút nhấn dừng khẩn cấp được thiết kế có thể dừng chương trình khi búa dập đang hoạt động. Khi chương trình hoaạt động xong một chu trình, một nút reset được tác động trước nút automatic. Sau bước thứ 6 chương trình sẽ chờ cho vật phẩm được lấy ra rồi mới chuyển qua bước khác. Trang 31 Hình 3.2: Chương trình SFC điều khiển máy dập [nguồn: Automating With PLCs] Trang 32 Chương trình SFC có thể chuyển đổi trực tiếp qua dạng Ladder logic theo cách sau: Phần đầu chương trình Ladder sẽ bắt đầu với một bước để khởi động các trạng thái và các điều kiện. Một điều kiện bắt đầu sẽ quét toàn bộ các bước và điều kiện trong chương trình SFC. Trang 33 Phần tiếp chương trình ladder là kiểm tra điều kiện chuyển tiếp có thỏa mãn hay không. Nếu điều kiện chuyển tiếp được thỏa mãn thì bước hoặc điều kiện chuyển tiếp kế tiếp được kích hoạt và điều kiện chuyển tiếp ban đầu bị xóa. Trang 34 Sau khi mỗi bước được xét và chương trình logic chuyển qua bước khác, Việc quan trọng tiếp theo của việc lập trình là kiểm tra và thực hiện các thao tác xuất tín hiệu ra ngõ ra thực hiện các thao tác. Trang 35 Trang 36 Chương 4: Những ứng dụng ngôn ngữ lập trình SFC Ở đây ta sử dụng phần mềm GX-Developer để lập trình [phụ lục 3 ] 4.1. Chương trình SFC điều khiển hai đèn sáng theo giản đồ thời gian Hình 4.1 Hình 4.1 Giản đồ thời gian hoạt động của hai bóng đèn Yêu cầu: Sử dụng SFC lập trình cho hai đèn sáng theo giản đồ thời gian Hình 4.1. Trong giản đồ thời gian, Plight_1 sáng trong 1s trong khi Plight_2 đang tắt, sau đó Plight_1 trong 1s đồng thời lúc này thì Plight_2 sáng . một nút Start và một nút Reset được thiết kế như trong Hình 4.1. Khi nhấn nút Reeset thì cả hai đèn đều tắt. Mạch còn bao gồm một đèn báo nguồn (Light_EN) sẽ sáng sau khi nhấn Start và chỉ tắt khi nhấn nút Reset. Hình 4.2 Giản đồ thời gian hoạt động của các nút nhấn và đèn Trang 37 Bảng 4.1 các thiết bị ngõ vào ngõ ra trong ứng dụng 4.1 Địa chỉ thiết Tên thiết bị Hoạt động X0 ST: Start Nút khởi động X1 Reset Nút Reset T0 T1 timer T1 T2 Timer Y0 Plight_1 Điều khiển đèn 1 OUTPUT Y1 Plight_2 Điều khiển đèn 2 Plight_EN Điều khiển đèn báo nguồn Loại INPUT bị Y2 Trang 38 Plight_1=False 0 Plight_2 = False START 1 Reset NOT Reset Plight_1 = ON Reset 2 Light_EN(R) 3 Plight_2 = OFF Light_EN(S) TRUE T1 = 1s Plight_1 = OFF 4 Plight_1 = ON T2 = 1s Hình 4.3 Chương trình SFC điều khiển hai bóng đèn Chương trình lập trình bằng phần mềm GX-Deverloper(xem phụ lục 4) 4.2 Điều khiển băng tải Cho một hệ thống gồm có 2 thùng hàng, 1 cánh tay robot gắp sản phẩm, 3 băng truyền di chuyển sản phẩm. Thiết kế hệ thống theo yêu cầu sau: Thùng hàng 1 có sản phẩm, cảm biến X5 ở nhận biết có sản phẩm thì cánh tay robot gắp hàng đưa lên băng truyền 1. Cảm biến X0 xác định có sản phẩm, băng truyền 1 hoạt động, sản phẩm di chuyển và chuyển tiếp qua băng truyền 2. Trang 39 Cảm biến X1 xác định sản phẩm, băng truyền 1 ngừng họat động, băng truyền 2 hoạt động, sản phẩm di chuyển xuống băng truyền 3. Cảm biến X2 xác định sản phẩm, băng truyền 2 ngừng hoạt động, băng truyền 3 hoạt động đưa sản phẩm vào thùng hàng thứ 2. Kết thúc 1 chu trình làm việc, và bắt đầu 1 chu trình mới, hệ thống sẽ ngừng hoạt động khi thùng hàng 1 hết sản phẩm. Với cánh tay robot có địa chỉ Y7, cảm biến xác định cánh tay robot khi ở vị trí thùng hàng 1 là X5, băng truyền 1 trên cao là Y0, cảm biến đầu băng truyền trên cao là X0, băng truyền 2 là Y2, cảm biến đầu băng truyền 2 là X1, băng truyền 3 là Y4, cảm biến đầu băng truyền 3 là X2, cảm biến vật thể đã vào thùng hàng 2 là X3. Hình 4.4. Hệ thống băng tải [nguồn:phần mềm FXTRN-BEG-E] Trang 40 Bảng 4.2. Chi tiết ngõ vào và ra Loại Địa chỉ thiết bị Tên thiết bị Hoạt động Cảm biến Nhận biết sản phẩm X0 X1 Input X2 X3 X4 Y0 Băng truyền 1 Y2 Băng truyền 2 Y4 Băng truyền 3 Y7 Cánh tay robot Di chuyển sản phẩm Output Gắp sản phẩm Trang 41 START X5 = 1 Tay Robot N Y7 N Y0 N Y2 N Y4 X0 =1 Băng 1 X1 = 1 Băng 2 X2 = 1 Băng 3 X3 = 1 Hình 4.5. Biểu đồ hoạt động của chương trình Chương trình lập trình bằng phần mềm GX-Deverloper [ phụ lục 5] 4.3 Ứng dụng SFC lập trình cho hệ thống trộn nguyên liệu Quá trình hoạt động: Hệ thống trộn nguyên liệu có nhiệm vụ trộn hai khối A và B chứa các nguyên liệu rắn với một khối lượng chất lỏng tương đương bao gồm chất lỏng A và B . Một nút khởi động(ST) có thể lựa chọn chế độ hoạt động điều khiển bằng tay hoặc tự động để điều khiển quá trình đo lường và trộn nguyên liệu bắt đầu Trang 42 với sự hoạt động cùng lúc của hai nhóm thiết bị là băng tải vận chuyển và hoạt động cân khối lượng. Quá trình như sau: Loại chất lỏng A sẽ được cho chảy vào máng C với khối lượng là ‘a’, sau đó chất lỏng B cũng được cho vào một lượng có khối lượng là ‘b’, quá trình này được kiểm soát bởi cân WC. Hai khối chứa nguyên liệu rắn được băng tải đưa vào buồng trộn. Sau khi kết thúc hai quá trình đưa nguyên liệu rắn và van VC đã mở cho chất lỏng vào buồng trộn thì motor máy trộn sẽ làm việc, sau một thời gian trộn được đặt là ‘t1’, quá trình trộn kết thúc, motor MP có nhiệm vụ nghiêng buồng trộn để sản phẩm đi ra. Khi buồng trộn đã hết sản phẩm, motor MP sẽ đưa buồng trộn về vị trí xác định bởi S0, và motor MR hoạt động lại. Trang 43 Hình 4.1. Sơ đồ hệ thống trộn nguyên liệu Trang 44 Chương trình SFC điều khiển hoạt động của hệ thống trộn nguyên liệu N START DONE ST & S0 & WC <= Z Weigh A N VA BRICK 1 WC >= WA+Z Weigh B MT d right N DROP 1 VB WC >= WA+WB+ Z FILL S N d wrong VC BRICK 2 d right DROP 2 R MT WC <= Z & d wrong MIX S MR T_MIX >= t1 TIP N MP1 S1 S1 RAISE R S0 MR N MP0 S0 Hình 4.1. Chương trình SFC điều khiển quá trình trộn nguyên liệu Trang 45 Tài liệu tham khảo [1] Automating With PLCs, [2] Programming Manual (SFC), [3] IEC 61131-3 Programmable controllers - Programming languages, [4] Luis Bryan & Eric Bryan. PLC Programmable Logic Controllers theory and implementation Second Edition. Trang 46 MỤC LỤC Chương 1: Tổng quan về ngôn ngữ SFC......................................................................................1 1.1 Các định nghĩa về ngôn ngữ SFC .................................................................................. 1 1.2 Giới thiệu chung về ngôn ngữ SFC ............................................................................... 1 1.3 Đặc điểm của ngôn ngữ SFC ........................................................................................ 1 Chương 2: Cấu trúc ngôn ngữ SFC..............................................................................................6 2.1. Cấu trúc một chương trình SFC cơ bản ........................................................................ 6 2.2. Các bước ..................................................................................................................... 6 2.2.1. Initial steps ................................................................................................................7 2.2.2. Dummy step ..............................................................................................................7 2.2.4. Operation Hold Step (without transition check) 2.2.5. Operation Hold Step (with transition check) 2.2.7. Block START Step (with END check) 2.2.8. Block START Step (without END check) ..............................................10 ....................................................12 ...............................................................15 ..........................................................17 2.2.9. END Step ................................................................................................................17 2.3. Sự chuyển tiếp ........................................................................................................... 18 2.3.1. Serial transition ........................................................................................................19 2.3.2. Selection transition ..................................................................................................21 2.3.3. Parallel transition .....................................................................................................25 2.3.4. Jump transition ........................................................................................................28 Chương 3: Lập trình bằng ngôn ngữ SFC với PLC của Mitsubish .............................................29 3.1. Ngôn ngữ SFC với PLC của Mitsubishi ..................................................................... 29 3.2. Trình tự lập trình bằng ngôn ngữ SFC........................................................................ 29 3.3. Trình tự PLC thực hiện các bước trong chương trình SFC ......................................... 30 3.4. Chuyển đổi ngôn ngữ SFC sang dạng ngôn ngữ khác ................................................ 31 Chương 4: Những ứng dụng ngôn ngữ lập trình SFC .................................................................37 4.1. Chương trình SFC điều khiển hai đèn sáng theo giản đồ thời gian Hình 4.1 ............... 37 4.2 Điều khiển băng tải .................................................................................................... 39 4.3 Ứng dụng SFC lập trình cho hệ thống trộn nguyên liệu ............................................... 42 Tài liệu tham khảo.....................................................................................................................46