Lập trình cho S7 và những PLC khác của hãng Siemens dựa trên 3 phương pháp cơ bản: - cách thức hình thang (Ladder ngắn gọn xúc tích - LAD). - cách thức khối hàm (Function Block Diagram - FBD). - phương thức liệt kê câu lệnh (Statement list - STL).
1. CÁC LOẠI NGÔN NGỮ LẬP TRÌNH PLCLập trình mang lại S7 và những PLC khác của hãng sản xuất Siemens dựa trên 3 phương thức cơ bản:- cách thức hình thang (Ladder logic - LAD).- phương thức khối hàm (Function Block Diagram - FBD).- cách thức liệt kê câu lệnh (Statement các mục - STL).Trong nội dung bài viết này công ty chúng tôi sẽ ra mắt các yếu tố cơ bạn dạng của ba phương thức và cách áp dụng chúng trong lập trình.Nếu lịch trình được viết theo ngôn ngữ LAD (hoặc FBD) thì hoàn toàn có thể chưyển sang ngôn ngữ STL giỏi FBD (hoặc LAD) tương ứng. Mà lại không phải bất cứ chương trình viết theo STL nào cũng chuyển sang ngôn từ LAD tốt FBD được. Cỗ tập lênh STL được trình diễn trong giáo án này đều sở hữu một công dụng như những tiếp điểm, cuộn dây, các hộp (trong LAD) hay IC số vào FBD.Những lệnh này phải kết hợp được trạng thái các tiếp điểm để đưa ra quyết định về quý giá trạng thái cổng đầu ra hoặc quý hiếm logic được cho phép hoặc không được cho phép thực tác dụng của một (hay nhiều) cuộn dây hoặc hộp. Trong xây dựng lôgic thường hay được dùng hai ngôn ngữ LAD và STL vì chưng nó gần gũi hơn so với chuyên ngành điện. Sau đây là những định nghĩa rất cần phải nắm khi hợp tác vào xây đắp một chương trình:Ngôn ngữ bảng lệnh là gì (STL)Ngôn ngữ liệt kê lệnh, ký hiệu là STL (Statement List). Đây là ngôn ngữ lập trình thông thường của dòng sản phẩm tính. Một lịch trình được ghép vị nhiều lệnh theo một thuật toán nhất định, mỗi lệnh chiếm một mặt hàng và hồ hết có kết cấu chung là: "tên lệnh" + "toán hạng". Một số lệnh quan trọng đặc biệt thì có thể chỉ có tên lệnh mà không yêu cầu toán hạng.
Statement list - STL
Ngôn ngữ sơ thứ thang là gì (LAD)Ngôn ngữ hình thang, cam kết hiệu là LAD (Ladder Logic) cùng với loại ngữ điệu này khôn xiết thích phù hợp với người quen thiết kế mạch điều khiển và tinh chỉnh logic. Chương trình được viết bên dưới dạng links giữa các công tắc:Ví dụ:
Ladder lô ghích - LAD
2. CHU TRÌNH LÀM VIỆC, LẬP TRÌNH VÀ CẤU TRÚC CHƯƠNG TRÌNHCác cách thức lập trình2.1 Lập trình con đường tínhPhần bộ nhớ lưu trữ của CPU dành riêng cho chương trình ứng dụng có tên gọi là xúc tích Block. Như vậy xúc tích block là tên chung nhằm gọi tất cả các khối bao hàm những khối chương trình tổ chức triển khai OB, khối chương trình FC, khối hàm FB.Trong các loại khối lịch trình đó thì chỉ tất cả khối độc nhất khối OB1 được tiến hành trực tiếp theo vòng quét. Nó được hệ điều hành gọi theo chu kỳ luân hồi lặp với khảng thời hạn không biện pháp đều nhau mà nhờ vào vào độ nhiều năm của chương trình. Các loại khối công tác khác không thâm nhập vào vòng quét.Với tổ chức triển khai chương trình bởi vậy thì phần chương trình trong khối OB1 có không thiếu thốn điều kiện của một công tác điều khiển thời gian thực và tổng thể chương trình ứng dụng có thể chỉ việc viết vào OB1 là đầy đủ như hình mẫu vẽ sau.Cách tổ chức chương trình với chỉ một khối OB1 duy nhất vì thế được call là lập trình con đường tính.OB1 tiến hành theo vòng quétOB10 Ngắt ở thời khắc định trướcOB82 Modulechuẩn đoán lỗiKhối OB1 được hệ thống gọi xoay vòng tiếp tục theo vòng quét.Các khối OB không giống không thâm nhập vào vòng quét được gọi là những biểu thị báo ngắt. S7-300 có tương đối nhiều tín hiệu báo ngắt như tín hiệu báo ngắt khi tất cả sự cầm cố nguồn nuôi, gồm sự gắng chập mạch ở những modul mở rộng, biểu đạt báo ngắt theo chu kỳ thời gian, cùng mỗi loại biểu thị báo ngắt bởi thế cũng chỉ có công dụng gọi một khối OB nhất định. Ví dụ bộc lộ báo ngắt sự nuốm nguồn nuôi chỉ call khối OB81, dấu hiệu báo ngắt truyền thông media chỉ điện thoại tư vấn khối OB87.Mỗi khi lộ diện tín hiệu báo ngắt khối hệ thống sẽ dừng quá trình đang thực hiện lại, ví dụ như tạm giới hạn việc thực hiện chương trình vào OB1, và chuyển sang thực hiện chương trình cách xử lý ngắt tong những khối OB tương ứng. Ví dụ lúc đang thực hiện chương trình trong khối OB1 mà xuất hiện thêm ngắt báo sự cố gắng truyền thông, hệ thống sẽ tạm dừng việc tiến hành chương trình trong OB1 lại để gọi chương trình vào khối truyền thông media OB87. Chỉ với sau khi đã thực hiện dứt chương trình trong khối OB87 thì khối hệ thống mới trở về thực hiện thường xuyên phần chương trình còn lại trong OB1.2.2 lập trình cấu trúcVới hình trạng lập trình có kết cấu thì không giống vì tổng thể chương trình điều khiển được chia bé dại thành các khối FC với FB mang 1 nhiệm vụ rõ ràng riêng cùng được quản lý chung vị những khối OB. Phong cách lập trình này rất cân xứng cho những việc phức tạp, nhiều trách nhiệm và lại rất thuận tiện cho việc sửa chữa sau này.OB1 FB FB FB FC SFB SFC DB DB DB DBKhối OB (Organization Block): Khối tổ chức và quản lý chương trình điều khiển. Có không ít loại khối OB cùng với những tính năng khác nhau ,chúng được khác nhau với nhau bằng một vài nguyên đi sau nhóm kí trường đoản cú OB.Ví dụ: OB10, OB85, ...Khối FC (Program Block): Khối chương trình với những công dụng riêng hệt như 1 chương trình con hoặc một hàm ( lịch trình con tất cả biến hình thức). Một chương trình vận dụng có thể có rất nhiều khối FC và những khối FC này được phân minh với nhau bằng một số trong những nguyên sau team kí trường đoản cú FC.Ví dụ: FC1,FC2….Khối FB (Function Block): Là các loại khối FC đặc biệt có công dụng trao đổi 1 lạng dữ liệu béo với những khối lịch trình khác .Các dữ liệu này phhải được tổ chức thành khối tài liệu riêng mang tên gọi là Data block.Một chương trình áp dụng có thể có khá nhiều khối FB và các khối Fb này được rõ ràng với nhau bằng một số trong những nguyên sau đội kí từ FB. Ví dụ như FB1,FB2…Khối DB (Data Block): Khối chứa những dữ liệu quan trọng để tiến hành chương trình. Những tham số của khối do người tiêu dùng tự để .Một chương trình ứng dụng có thể có khá nhiều khối DB và các khối DB này được riêng biệt với nhau bằng một số nguyên sau đội kí từ bỏ DB. Ví dụ: DB1,DB2,...Chương trình trong số khối được links với nhau bằng các lệnh điện thoại tư vấn khối, chuyển khối. Xem phần đa phần chương trình trong các khối như là các chương trình nhỏ thì S7_300 có thể chấp nhận được gọi chương trình bé lồng nhau ,tức là chương trình bé này hotline một chương trình nhỏ khác và xuất phát từ một chương trình nhỏ được call lại call tới một chương trình bé thứ 3,… Số các lệnh điện thoại tư vấn lồng nhau phụ thuộc vào từng chủng một số loại module CPU nhưng ta đã sử dụng. Ví dụ so với module CPU 314 thì số lệnh điện thoại tư vấn lồng nhau những nhất tất cả thể cho phép là 8.Nếu số lần điện thoại tư vấn khối lồng nhau nhưng mà vượt quá con số giới hạn được cho phép ,PLC đã tự gửi qua chế độ Stop và đặt cờ báo lỗi.2.3. Những khối OB quánh biệtTrong khi khối OB được triển khai đều đặn ở từng vòng quét vào giai đoạn tiến hành chương trình thì những khối OB không giống chỉ được triển khai khi mở ra tín hiệu báo ngắt tương ứng ,nói biện pháp khác chương trình viết cho các khối OB này chính là chương trình xử lí biểu lộ ngắt (event).Chúng bao gồm:OB10 ( Time of Day Interrupt):Chương trình vào khối đã được thực hiện khi cực hiếm của đồng hồ thời gian thực phía trong một khoảng thời hạn đã được quy định. OB10 có thể gọi một đợt ,nhiều lần phương pháp đều nhau từng phút, từng giơ,từng ngày ….Việc chính sách khoảng thời hạn hay số lần hotline OB10 được thực hiện nhờ chương trình khối hệ thống SFC28 hoặc vào bảng thông số của module CPU nhờ ứng dụng Step 7.OB20 ( Time Day Interrupt): chương trình trong khối đang được tiến hành sau một khoảng thời hạn trễ để trước kể từ thời điểm gọi chương trình khối hệ thống SFC32 nhằm đặt thời gian trễ.OB35 (Cyclic Interrupt): lịch trình trong OB35 đang được tiến hành cách đông đảo nhau 1 khoảng thời hạn cố định.Mặc định khoảng thời hạn này sẽ là 100ms,xong ta có thể biến hóa nó trong bảng tham số của module CPU ,nhờ ứng dụng Step7.OB40 (Hardware Interrupt) : chương trình trong OB sẽ được triển khai khi lộ diện 1 biểu hiện báo ngắt từ ngoại vi gửi vào module CPU thông qua các cổng vào ra số onboard đặc biệt,hoặc trải qua các module SM,CP,FM OB80 (Cycle Time Fault): lịch trình trong khối OB80 vẫn được thực hiện khi thời hạn vòng quét(Scan time) thừa quá khoảng thời gian cực đại đã được công cụ hoặc khi có một biểu lộ ngắt gọi một khối OB nào này mà khối OB này chưa ngừng ở lần điện thoại tư vấn trước.Mặc định thời hạn Scan time cực lớn là 150ms ,nhưng gồm thể chuyển đổi nó trải qua bảng thông số của module CPU nhờ ứng dụng Step 7.OB81 (Power Supply fault): CPU sẽ hotline chương trình vào khối OB81 lúc phát hiện tại thấy gồm lỗi về nguồn nuôi.OB82( Diagnostic Interrupt):Chương trình vào OB82 được hotline khi CPU phát hiện nay sự ráng từ các Modul vào raOB85( Not Load fault):Chương trình vào OB82 được gọi khi CPU phát hiện thấy chương trình vận dụng có sử dụng cơ chế ngắt nhưng lịch trình sử lí biểu thị ngắt lại không có trong khối OB tương ứng.OB87 ( Communication fault):Khối OB87 sẽ được gọi lúc CPU phát hiện nay thấy lỗi trong truyền thông media ví dụ như không có tín hiệu vấn đáp từ những đối tác.OB100 ( Start Up Information):Khối OB100 đã được tiến hành 1 lần lúc CPU đưa trạng thái Stop quý phái Run.OB121 ( Synchronous error):Khối OB121 sẽ tiến hành gọi lúc CPU phát hiện thấy lỗi xúc tích và ngắn gọn trong chương trình như thay đổi sai kiểu dữ liệu hoặc lỗi tróc nã nhập khối DB ,FC,FB không tồn tại trong bộ nhớ lưu trữ CPU.OB122 ( Synchronous error):Khối OB122 sẽ được gọi lúc CPU phát hiện tại thấy lỗi truy cập module trong chương trình,ví dụ chương trình có lệnh truy nã nhập module vào ra mở rộng nhưng lại không tìm thấy module này.SFB: System Function block
Bạn đang xem: Ngôn ngữ lập trình plc s7-200
1. CÁC LOẠI NGÔN NGỮ LẬP TRÌNH PLCLập trình mang lại S7 và những PLC khác của hãng sản xuất Siemens dựa trên 3 phương thức cơ bản:- cách thức hình thang (Ladder logic - LAD).- phương thức khối hàm (Function Block Diagram - FBD).- cách thức liệt kê câu lệnh (Statement các mục - STL).Trong nội dung bài viết này công ty chúng tôi sẽ ra mắt các yếu tố cơ bạn dạng của ba phương thức và cách áp dụng chúng trong lập trình.Nếu lịch trình được viết theo ngôn ngữ LAD (hoặc FBD) thì hoàn toàn có thể chưyển sang ngôn ngữ STL giỏi FBD (hoặc LAD) tương ứng. Mà lại không phải bất cứ chương trình viết theo STL nào cũng chuyển sang ngôn từ LAD tốt FBD được. Cỗ tập lênh STL được trình diễn trong giáo án này đều sở hữu một công dụng như những tiếp điểm, cuộn dây, các hộp (trong LAD) hay IC số vào FBD.Những lệnh này phải kết hợp được trạng thái các tiếp điểm để đưa ra quyết định về quý giá trạng thái cổng đầu ra hoặc quý hiếm logic được cho phép hoặc không được cho phép thực tác dụng của một (hay nhiều) cuộn dây hoặc hộp. Trong xây dựng lôgic thường hay được dùng hai ngôn ngữ LAD và STL vì chưng nó gần gũi hơn so với chuyên ngành điện. Sau đây là những định nghĩa rất cần phải nắm khi hợp tác vào xây đắp một chương trình:Ngôn ngữ bảng lệnh là gì (STL)Ngôn ngữ liệt kê lệnh, ký hiệu là STL (Statement List). Đây là ngôn ngữ lập trình thông thường của dòng sản phẩm tính. Một lịch trình được ghép vị nhiều lệnh theo một thuật toán nhất định, mỗi lệnh chiếm một mặt hàng và hồ hết có kết cấu chung là: "tên lệnh" + "toán hạng". Một số lệnh quan trọng đặc biệt thì có thể chỉ có tên lệnh mà không yêu cầu toán hạng.
Xem thêm: Lâm Đồng: Mưa Đá Dồn Dập Đổ Xuống Nhiều Địa Phương Ở Lâm Đồng Điện Tử
Statement list - STL
Ngôn ngữ sơ thứ thang là gì (LAD)Ngôn ngữ hình thang, cam kết hiệu là LAD (Ladder Logic) cùng với loại ngữ điệu này khôn xiết thích phù hợp với người quen thiết kế mạch điều khiển và tinh chỉnh logic. Chương trình được viết bên dưới dạng links giữa các công tắc:Ví dụ:
Ladder lô ghích - LAD
2. CHU TRÌNH LÀM VIỆC, LẬP TRÌNH VÀ CẤU TRÚC CHƯƠNG TRÌNHCác cách thức lập trình2.1 Lập trình con đường tínhPhần bộ nhớ lưu trữ của CPU dành riêng cho chương trình ứng dụng có tên gọi là xúc tích Block. Như vậy xúc tích block là tên chung nhằm gọi tất cả các khối bao hàm những khối chương trình tổ chức triển khai OB, khối chương trình FC, khối hàm FB.Trong các loại khối lịch trình đó thì chỉ tất cả khối độc nhất khối OB1 được tiến hành trực tiếp theo vòng quét. Nó được hệ điều hành gọi theo chu kỳ luân hồi lặp với khảng thời hạn không biện pháp đều nhau mà nhờ vào vào độ nhiều năm của chương trình. Các loại khối công tác khác không thâm nhập vào vòng quét.Với tổ chức triển khai chương trình bởi vậy thì phần chương trình trong khối OB1 có không thiếu thốn điều kiện của một công tác điều khiển thời gian thực và tổng thể chương trình ứng dụng có thể chỉ việc viết vào OB1 là đầy đủ như hình mẫu vẽ sau.Cách tổ chức chương trình với chỉ một khối OB1 duy nhất vì thế được call là lập trình con đường tính.OB1 tiến hành theo vòng quétOB10 Ngắt ở thời khắc định trướcOB82 Modulechuẩn đoán lỗiKhối OB1 được hệ thống gọi xoay vòng tiếp tục theo vòng quét.Các khối OB không giống không thâm nhập vào vòng quét được gọi là những biểu thị báo ngắt. S7-300 có tương đối nhiều tín hiệu báo ngắt như tín hiệu báo ngắt khi tất cả sự cầm cố nguồn nuôi, gồm sự gắng chập mạch ở những modul mở rộng, biểu đạt báo ngắt theo chu kỳ thời gian, cùng mỗi loại biểu thị báo ngắt bởi thế cũng chỉ có công dụng gọi một khối OB nhất định. Ví dụ bộc lộ báo ngắt sự nuốm nguồn nuôi chỉ call khối OB81, dấu hiệu báo ngắt truyền thông media chỉ điện thoại tư vấn khối OB87.Mỗi khi lộ diện tín hiệu báo ngắt khối hệ thống sẽ dừng quá trình đang thực hiện lại, ví dụ như tạm giới hạn việc thực hiện chương trình vào OB1, và chuyển sang thực hiện chương trình cách xử lý ngắt tong những khối OB tương ứng. Ví dụ lúc đang thực hiện chương trình trong khối OB1 mà xuất hiện thêm ngắt báo sự cố gắng truyền thông, hệ thống sẽ tạm dừng việc tiến hành chương trình trong OB1 lại để gọi chương trình vào khối truyền thông media OB87. Chỉ với sau khi đã thực hiện dứt chương trình trong khối OB87 thì khối hệ thống mới trở về thực hiện thường xuyên phần chương trình còn lại trong OB1.2.2 lập trình cấu trúcVới hình trạng lập trình có kết cấu thì không giống vì tổng thể chương trình điều khiển được chia bé dại thành các khối FC với FB mang 1 nhiệm vụ rõ ràng riêng cùng được quản lý chung vị những khối OB. Phong cách lập trình này rất cân xứng cho những việc phức tạp, nhiều trách nhiệm và lại rất thuận tiện cho việc sửa chữa sau này.OB1 FB FB FB FC SFB SFC DB DB DB DBKhối OB (Organization Block): Khối tổ chức và quản lý chương trình điều khiển. Có không ít loại khối OB cùng với những tính năng khác nhau ,chúng được khác nhau với nhau bằng một vài nguyên đi sau nhóm kí trường đoản cú OB.Ví dụ: OB10, OB85, ...Khối FC (Program Block): Khối chương trình với những công dụng riêng hệt như 1 chương trình con hoặc một hàm ( lịch trình con tất cả biến hình thức). Một chương trình vận dụng có thể có rất nhiều khối FC và những khối FC này được phân minh với nhau bằng một số trong những nguyên sau team kí trường đoản cú FC.Ví dụ: FC1,FC2….Khối FB (Function Block): Là các loại khối FC đặc biệt có công dụng trao đổi 1 lạng dữ liệu béo với những khối lịch trình khác .Các dữ liệu này phhải được tổ chức thành khối tài liệu riêng mang tên gọi là Data block.Một chương trình áp dụng có thể có khá nhiều khối FB và các khối Fb này được rõ ràng với nhau bằng một số trong những nguyên sau đội kí từ FB. Ví dụ như FB1,FB2…Khối DB (Data Block): Khối chứa những dữ liệu quan trọng để tiến hành chương trình. Những tham số của khối do người tiêu dùng tự để .Một chương trình ứng dụng có thể có khá nhiều khối DB và các khối DB này được riêng biệt với nhau bằng một số nguyên sau đội kí từ bỏ DB. Ví dụ: DB1,DB2,...Chương trình trong số khối được links với nhau bằng các lệnh điện thoại tư vấn khối, chuyển khối. Xem phần đa phần chương trình trong các khối như là các chương trình nhỏ thì S7_300 có thể chấp nhận được gọi chương trình bé lồng nhau ,tức là chương trình bé này hotline một chương trình nhỏ khác và xuất phát từ một chương trình nhỏ được call lại call tới một chương trình bé thứ 3,… Số các lệnh điện thoại tư vấn lồng nhau phụ thuộc vào từng chủng một số loại module CPU nhưng ta đã sử dụng. Ví dụ so với module CPU 314 thì số lệnh điện thoại tư vấn lồng nhau những nhất tất cả thể cho phép là 8.Nếu số lần điện thoại tư vấn khối lồng nhau nhưng mà vượt quá con số giới hạn được cho phép ,PLC đã tự gửi qua chế độ Stop và đặt cờ báo lỗi.2.3. Những khối OB quánh biệtTrong khi khối OB được triển khai đều đặn ở từng vòng quét vào giai đoạn tiến hành chương trình thì những khối OB không giống chỉ được triển khai khi mở ra tín hiệu báo ngắt tương ứng ,nói biện pháp khác chương trình viết cho các khối OB này chính là chương trình xử lí biểu lộ ngắt (event).Chúng bao gồm:OB10 ( Time of Day Interrupt):Chương trình vào khối đã được thực hiện khi cực hiếm của đồng hồ thời gian thực phía trong một khoảng thời hạn đã được quy định. OB10 có thể gọi một đợt ,nhiều lần phương pháp đều nhau từng phút, từng giơ,từng ngày ….Việc chính sách khoảng thời hạn hay số lần hotline OB10 được thực hiện nhờ chương trình khối hệ thống SFC28 hoặc vào bảng thông số của module CPU nhờ ứng dụng Step 7.OB20 ( Time Day Interrupt): chương trình trong khối đang được tiến hành sau một khoảng thời hạn trễ để trước kể từ thời điểm gọi chương trình khối hệ thống SFC32 nhằm đặt thời gian trễ.OB35 (Cyclic Interrupt): lịch trình trong OB35 đang được tiến hành cách đông đảo nhau 1 khoảng thời hạn cố định.Mặc định khoảng thời hạn này sẽ là 100ms,xong ta có thể biến hóa nó trong bảng tham số của module CPU ,nhờ ứng dụng Step7.OB40 (Hardware Interrupt) : chương trình trong OB sẽ được triển khai khi lộ diện 1 biểu hiện báo ngắt từ ngoại vi gửi vào module CPU thông qua các cổng vào ra số onboard đặc biệt,hoặc trải qua các module SM,CP,FM OB80 (Cycle Time Fault): lịch trình trong khối OB80 vẫn được thực hiện khi thời hạn vòng quét(Scan time) thừa quá khoảng thời gian cực đại đã được công cụ hoặc khi có một biểu lộ ngắt gọi một khối OB nào này mà khối OB này chưa ngừng ở lần điện thoại tư vấn trước.Mặc định thời hạn Scan time cực lớn là 150ms ,nhưng gồm thể chuyển đổi nó trải qua bảng thông số của module CPU nhờ ứng dụng Step 7.OB81 (Power Supply fault): CPU sẽ hotline chương trình vào khối OB81 lúc phát hiện tại thấy gồm lỗi về nguồn nuôi.OB82( Diagnostic Interrupt):Chương trình vào OB82 được hotline khi CPU phát hiện nay sự ráng từ các Modul vào raOB85( Not Load fault):Chương trình vào OB82 được gọi khi CPU phát hiện thấy chương trình vận dụng có sử dụng cơ chế ngắt nhưng lịch trình sử lí biểu thị ngắt lại không có trong khối OB tương ứng.OB87 ( Communication fault):Khối OB87 sẽ được gọi lúc CPU phát hiện nay thấy lỗi trong truyền thông media ví dụ như không có tín hiệu vấn đáp từ những đối tác.OB100 ( Start Up Information):Khối OB100 đã được tiến hành 1 lần lúc CPU đưa trạng thái Stop quý phái Run.OB121 ( Synchronous error):Khối OB121 sẽ tiến hành gọi lúc CPU phát hiện thấy lỗi xúc tích và ngắn gọn trong chương trình như thay đổi sai kiểu dữ liệu hoặc lỗi tróc nã nhập khối DB ,FC,FB không tồn tại trong bộ nhớ lưu trữ CPU.OB122 ( Synchronous error):Khối OB122 sẽ được gọi lúc CPU phát hiện tại thấy lỗi truy cập module trong chương trình,ví dụ chương trình có lệnh truy nã nhập module vào ra mở rộng nhưng lại không tìm thấy module này.SFB: System Function block