Giáo trình Lập trình với SPS S7-300

pdf 94 trang ngocly 2310
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Lập trình với SPS S7-300", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfgiao_trinh_lap_trinh_voi_sps_s7_300.pdf

Nội dung text: Giáo trình Lập trình với SPS S7-300

  1. Ch−ơng1.Hệ thống điều khiển. 1.1.Khái niệm hệ thống điều khiển: Trong công nghiệp yêu cầu tự động hoá ngày càng tăng, đòi hỏi kỹ thuật điều khiển phải đáp ứng đ−ợc những yêu cầu đó. Để giải quyết đ−ợc nhiệm vụ điều khiển ng−ời ta có thể thực hiện bằng hai cách: thực hiện bằng Rơle, khởi động từ hoặc thực hiện bằng ch−ơng trình nhớ. Hệ điều khiển bằng Rơle và hệ điều khiển bằng lập trình có nhớ khác nhau ở phần xử lý: thay vì dùng Rơle, tiếp điểm và dây nối trong ph−ơng pháp lập trình có nhớ chúng đ−ợc thay bằng cách mạch điện tử. Nh− vậy thiết bị PLC làm nhiệm vụ thay thế phần mạch điện điều khiển trong khâu xử lý số liệu. Nhiệm vụ của sơ đồ mạch điều khiển sẽ đ−ợc xác định bằng một số hữu hạn các b−ớc thực hiện xác định gọi là "ch−ơng trình". Ch−ơng trình này mô tả các b−ớc thực hiện gọi là tiến trình điều khiển, tiến trình này đ−ợc l−u vào bộ nhớ nên đ−ợc gọi là "điều khiển lập trình có nhớ". Trên cơ sở khác nhau của khâu xử lý số liệu ta có thể biểu diễn hai hệ điều khiển nh− sau: Các b−ớc thiết lập sơ đồ điều khiển bằng Rơle: Xác định nhiệm vụ điều khiển Sơ đồ mạch điện Chọn phần tử mạch điện Dây nối liên kết các phần tử Kiểm tra chức năng Hình 1-1:l−u đồ điều khiển dùng Rơle Lập trình với SPS S7-300 7
  2. Các b−ớc thiết lập sơ đồ điều khiển bằng PLC: Xác định nhiệm vụ điều khiển Thiết kế thuật giải Sọan thảo ch−ơng trình Kiểm tra chức năng Hình 1-2: L−u đồ điều khiển bằng PLC Khi thay đổi nhiệm vụ điều khiển ng−ời ta cần thay đổi mạch điều khiển bằng cách lắp lại mạch, thay đổi phần tử mới đối với hệ thống điều khiển bằng Rơle điện. Trong khi đó khi thay đổi nhiệm vụ điều khiển ta chỉ cần thay đổi ch−ơng trình soạn thảo đối với hệ điều khiển bằng lập trình có nhớ. Sự khác nhau giữa hệ điều khiển bằng Rơle điện và lập trình có nhớ có thể minh hoạ bằng một ví dụ sau: Điều khiển hệ thống 3 máy bơm n−ớc qua 3 khởi động từ K1, K2, K3. Trình tự điều khiển nh− sau: Các máy bơm hoạt động tuần tự nghĩa là K1 đóng tr−ớc tiếp đến là K2 rồi cuối cùng là K3 đóng. Để thực hiện nhiệm vụ theo yêu cầu trên mạch điều khiển ta thiết kế nh− sau: Trong đó các nút ấn S1, S2, S3, S4 là các phần tử nhập tín hiệu. Các tiếp điểm K1, K2, K3 và các mối liên kết là các phần xử lý. Các khởi động từ K1, K2, K3 là kết quả xử lý. 8 Lập trình với SPS S7-300
  3. S1 S2 K1 S3 K2 S4 K3 K1 K2 K1 K2 K3 Hình 1-3:Sơ đồ điều khiển Nếu ta thay bằng thiết bị điều khiển PLC ta có thể mô tả nh− sau: -Tín hiệu vào: S1, S2, S3, S4 vẫn giữ nguyên. -Tín hiệu ra: K1, K2, K3 là các khởi động từ vẫn giữ nguyên. -Phần tử xử lý:đ−ợc thay thế bằng PLC. S1 Nhập số liệu S2 S3 S4 Xử lý K1 K2 K3 K1 K2 Kết quả K1 K2 K3 Hình 1-4 Khi thực hiện bằng ch−ơng trình điều khiển có nhớ PLC ta chỉ cần thực hiện nối mạch theo sơ đồ sau: Lập trình với SPS S7-300 9
  4. Nhập số liệu S1 S2 S3 S4 24V Xử lý PLC N Kết quả K1 K2 K3 Hình 1-5:Sơ đồ nối dây thực hiện bằng PLC Nếu bây giờ nhiệm vụ điều khiển thay đổi ví dụ nh− các bơm 1,2,3 hoạt động theo nguyên tắc là chỉ một trong số các bơm đ−ợc hoạt động độc lập. Nh− vậy đối với mạch điều khiển dùng Rơle ta phải tiến hành lắp giáp lại toàn bộ mạch điều khiển, trong khi đó đối với mạch điều khiển dùng PLC thì ta lại chỉ cần soạn thảo lại ch−ơng trình rồi nạp lại vào CPU thì ta sẽ có ngay một sơ đồ điều khiển theo yêu cầu nhiệm vụ mới mà không cần phải nối lại dây trên mạch điều khiển. Nh− vậy một cách tổng quát có thể nói hệ thống điều khiển PLC là tập hợp các thiết bị và linh kiện điện tử. Để đảm bảo tính ổn định, chính xác và an toàn trong quá trình sản xuất, các thiết bị này bao gồm nhiều chủng loại, hình dạng khác nhau với công suất từ rất nhỏ đến rất lớn. Do tốc độ phát triển quá nhanh của công nghệ và để đáp ứng đ−ợc các yêu cầu điều khiển phức tạp nên hệ thống điều khiển phải có hệ thống tự động hoá cao. Yêu cầu này có thể thực hiện đ−ợc bằng hệ lập trình có nhớ PLC kết hợp với máy tính, ngoài ra còn cần có các thiết bị ngoại vi khác nh−: Bảng điều khiển, động cơ, cảm biến, tiếp điểm, công tắc tơ, Khả năng truyền dữ liệu trong hệ thống rất rộng thích hợp cho hệ thống xử lý và cũng rất linh động trong các hệ thống phân phối . Mỗi một thành phần trong hệ thống điều khiển có một vai trò quan trọng nh− đ−ợc trình bày trong hình vẽ sau. 10 Lập trình với SPS S7-300
  5. Nguồn nuôi Từ tiếp Giao tiếp ngõ Khối xử lý Giao điểm vào trung tâm tiếp đến cuộn cảm dây, mô ngõ biến Bộ nhớ tơ, ra Hình 1-6: Mô hình hệ thống điều khiển PLC Hệ thống PLC sẽ không cảm nhận đ−ợc thế giới bên ngoài nếu không có các cảm biến, và cũng không thể điều khiển đ−ợc hệ thống sản xuất nếu không có các động cơ, xy lanh hay các thiết bị ngoại vi khác nếu cần thiết có thể sử dụng các máy tính chủ tại các vị trí đặc biệt của dây chuyền sản xuất . 1.1.1.Hệ thống điều khiển PLC điển hình : Trong hệ thống điều khiển PLC các phần tử nhập tín hiệu nh− : chuyển mạch, nút ấn, cảm biến, đ−ợc nối với đầu vào của thiết bị PLC. Các phần tử chấp hành nh− : đèn báo, rơ le, công tắc tơ, đ−ợc nối đến lối ra của PLC tại các đầu nối. Ch−ơng trình điều khiển PLC đ−ợc soạn thảo d−ới các dạng cơ bản (sẽ đ−ợc trình bày ở phần sau) sẽ đ−ợc nạp vào bộ nhớ bên trong PLC, sau đó tự động thực hiện tuần tự theo một chuỗi lệnh điều khiển đ−ợc xác định tr−ớc . Hệ còn cho phép công nhân vận hành thao tác bằng tay các tiếp điểm, nút dừng khẩn cấp để đảm bảo tính an toàn trong các tr−ờng hợp xảy ra sự cố. 1.1.2.Vai trò của PLC: PLC đ−ợc xem nh− trái tim trong một hệ thống điều khiển tự động đơn lẻ với ch−ơng trình điều khiển đ−ợc chứa trong bộ nhớ của PLC, PC th−ờng xuyên kiểm tra trạng thái của hệ thống thông qua các tín hiệu hồi tiếp từ thiết bị nhập để từ đó có thể đ−a ra những tín hiệu điều khiển t−ơng ứng đến các thiết bị xuất. Lập trình với SPS S7-300
  6. PLC có thể đ−ợc sử dụng cho những yêu cầu điều khiển đơn giản và đ−ợc lập đi lập lại theo chu kỳ, hoặc liên kết với máy tính chủ khác hoặc máy tính chủ thông qua một kiểu hệ thống mạng truyền thông để thực hiện các quá trình xử lý phức tạp. Tín hiệu vào. Mức độ thông minh của một hệ thống điều khiển phụ thuộc chủ yếu vào khả năng của PLC để đọc đ−ợc các dữ liệu khác nhau từ các cảm biến cũng nh− bằng các thiết bị nhập bằnh tay . Tiêu biểu cho các thiết bị nhập bằng tay nh− : Nút ấn, bàn phím và chuyển mạch. Mặt khác, để đo, kiểm tra chuyển động, áp suất, l−u l−ợng chất lỏng PLC phải nhận các tín hiệu từ các cảm biến. Ví dụ : Tiếp điểm hành trình, cảm biến quang điện tín hiệu đ−a vào PLC có thể là tín hiệu số (Digital) hoặc tín hiệu t−ơng tự (Analog), các tín hiệu này đ−ợc giao tiếp với PLC thông qua các Modul nhận tín hiệu vào khác nhau khác nhau DI (vào số) hoặc AI (vào t−ơng tự) Đối t−ợng điều khiển . Một hệ thống điều khiển sẽ không có ý nghĩa thực tế nếu không giao tiếp đ−ợc với thiết bị xuất, các thiết bị xuất thông dụng nh−: Môtơ, van, Rơle, đèn báo, chuông điện, cũng giống nh− thiết bị nhập, các thiết bi xuất đ−ợc nối đến các ngõ ra của Modul ra (Output). Các Modul ra này có thể là DO (Ra số) hoặc AO (ra t−ơng tự). 1.1.3.Cấu tạo PLC. Thiết bị điều khiển lập trình PLC bao gồm khối xử lý trung tâm (CPU) trong đó có chứa ch−ơng trình điều khiển và các Modul giao tiếp vào/ra có nhiệm vụ liên kết trực tiếp đến các thiết bị vào/ra, sơ đồ khối cấu tạo PLC đ−ợc vẽ nh− hình 1-6. Khối xử lý trung tâm : là một vi xử lý điều khiển tất cả các hoạt động của PLC nh−: Thực hiện ch−ơng trình, xử lý vào/ra và truyền thông với các thiết bị bên ngoài. Bộ nhớ: có nhiều các bộ nhớ khác nhau dùng để chứa ch−ơng trình hệ thống là một phần mềm điều khiển các hoạt động của hệ thống, sơ đồ LAD, trị số của 12 Lập trình với SPS S7-300
  7. Timer, Counter đ−ợc chứa trong vùng nhớ ứng dụng, tùy theo yêu cầu của ng−ời dùng có thể chọn các bộ nhớ khác nhau: • Bộ nhớ ROM: là loại bộ nhớ không thay đổi đ−ợc, bộ nhớ này chỉ nạp đ−ợc một lần nên ít đ−ợc sử dụng phổ biến nh− các loại bộ nhớ khác . • Bộ nhớ RAM: là loại bộ nhớ có thể thay đổi đ−ợc và dùng để chứa các ch−ơng trình ứng dụng cũng nh− dữ liệu, dử liệu chứa trong Ram sẽ bị mất khi mất điện. Tuy nhiên, điều này có thể khắc phục bằng cách dùng Pin. • Bộ nhớ EPROM: Giống nh− ROM, nguồn nuôi cho EPROM không cần dùng Pin, tuy nhiên nội dung chứa trong nó có thể xoá bằng cách chiếu tia cực tím vào một cửa sổ nhỏ trên EPROM và sau đó nạp lại nội dung bằng máy nạp. • Bộ nhớ EEPROM: kết hợp hai −u điểm của RAM và EPROM, loại này có thể xóa và nạp bằng tín hiệu điện. Tuy nhiên số lần nạp cũng có giới hạn. 1.1.4.Ưu nh−ợc điểm của hệ thống : Trong giai đoạn đầu của thời kỳ phát triển công nghiệp vào khoảng năm 1960 và 1970, yêu cầu tự động của hệ điều khiển đ−ợc thực hiện bằng các Rơle điện từ nối nối với nhau bằng dây dẫn điện trong bảng điều khiển, trong nhiều tr−ờng hợp bảng điều khiển có kích th−ớc quá lớn đến nỗi không thể gắn toàn bộ lên trên t−ờng và các dây nối cũng không hoàn toàn tốt vì thế rất th−ờng xảy ra trục trặc trong hệ thống. Một điểm quan trong nữa là do thời gian làm việc của các Rơle có giới hạn nên khi cần thay thế cần phải ngừng toàn bộ hệ thống và dây nối cũng phải thay mới cho phù hợp, bảng điều khiển chỉ dùng cho một yêu cầu riêng biệt không thể thay đổi tức thời chức năng khác mà phải lắp giáp lại toàn bộ, và trong tr−ờng hợp bảo trì cũng nh− sửa chữa cần đòi hỏi thợ chuyên môn có tay nghề cao. Tóm lại hệ điều khiển Rơle hoàn toàn không linh động. *Tóm tắt nh−ợc điểm của hệ thống điều khiển dùng Rơle: - Tốn kém rất nhiều dây dẫn . - Thay thế rất phức tạp. - Cần công nhân sửa chữa tay nghề cao. - Công suất tiêu thụ lớn . - Thời gian sửa chữa lâu. - Khó cập nhật sơ đồ nên gây khó khăn cho công tác bảo trì cũng nh− thay thế. Lập trình với SPS S7-300
  8. *Ưu điểm của hệ điều khiển PLC: Sự ra đời của hệ điều khiển PLC đã làm thay đổi hẳn hệ thống điều khiển cũng nh− các quan niệm thiết kế về chúng, hệ điều khiển dùng PLC có nhiều −u điểm nh− sau: - Giảm 80% Số l−ợng dây nối. - Công suất tiêu thụ của PLC rất thấp . - Có chức năng tự chuẩn đoán do đó giúp cho công tác sửa chữa đ−ợc nhanh chóng và dễ dàng. - Chức năng điều khiển thay đổi dễ dàng bằng thiết bị lập trình (máy tính, màn hình) mà không cần thay đổi phần cứng nếu không có yêu cầu thêm bớt các thiết bị xuất nhập. - Số l−ợng Rơle và Timer ít hơn nhiều so với hệ điều khiển cổ điển. - Số l−ợng tiếp điểm trong ch−ơng trình sử dụng không hạn chế. - Thời gian hoàn thành một chu trình điều khiển rất nhanh (vài mS) dẫn đến tăng cao tốc độ sản xuất . - Chi phí lắp đặt thấp . - Độ tin cậy cao. - Ch−ơng trình điều khiển có thể in ra giấy chỉ trong vài phút giúp thuận tiện cho vấn đề bảo trì và sửa chữa hệ thống. 1.1.5.ứng dụng của hệ thống điều khiển PLC: Từ các −u điểm nêu trên, hiện nay PLC đã đ−ợc ứng dụng trong rất nhiều lĩnh vực khác nhau trong công nghiệp nh−: - Hệ thống nâng vận chuyển. - Dây chuyền đóng gói. - Các ROBOT lắp giáp sản phẩm . - Điều khiển bơm. - Dây chuyền xử lý hoá học. - Công nghệ sản xuất giấy . - Dây chuyền sản xuất thuỷ tinh. - Sản xuất xi măng. - Công nghệ chế biến thực phẩm. - Dây chuyền chế tạo linh kiện bán dẫn. - Dây chuyền lắp giáp Tivi. - Điều khiển hệ thống đèn giao thông. 14 Lập trình với SPS S7-300
  9. - Quản lý tự động bãi đậu xe. - Hệ thống báo động. - Dây truyền may công nghiệp. - Điều khiển thang máy. - Dây chuyền sản xuất xe Ôtô. - Sản xuất vi mạch. - Kiểm tra quá trình sản xuất . 1.2 Hệ thống điều khiển PLC S7-300. 1.2.1.Cấu trúc phần cứng của hệ thống PLC S7-300. Thông th−ờng, để tăng tính mềm dẻo trong ứng dụng thực tế mà ở đó phần lớn các đối t−ợng điều khiển có số tín hiệu đầu vào, đầu ra cũng nh− chủng loại tín hiệu vào/ra khác nhau mà các bộ điều khiển PLC đ−ợc thiết kế không bị cứng hoá về cấu hình. Chúng đ−ợc chia nhỏ thành các modul. Số các Modul đ−ợc sử dụng nhiều hay ít tuỳ theo từng yêu cầu công nghệ, song tối thiểu bao giờ cũng phải có một Modul chính là các modul CPU, các modul còn lại là các modul truyền nhận tín hiệu đối với đối t−ợng điều khiển, các modul chức năng chuyên dụng nh− PID, điều khiển động cơ, Chúng đ−ợc gọi chung là Modul mở rộng. Tất cả các modul đ−ợc gá trên những thanh ray (RACK). Modul CPU: Là modul có chứa bộ vi xử lý, hệ điều hành, bộ nhớ, các bộ thời gian, bộ đếm, cổng truyền thông (chuẩn tryền RS485) và có thể còn có một vài cổng vào ra số (Digital). Các cổng vào ra có trên modul CPU đ−ợc gọi là cổng vào ra onboard. Trong PLC S7-300 có nhiều loại modul CPU khác nhau. Nói chung chúng đ−ợc đặt tên theo bộ vi xử lý có trong nó nh−: CPU312, modul CPU 314, Modul CPU 315, Những modul cùng sử dụng một loại bộ vi xử lý, nh−ng khác nhau về cổng vào/ra onboard cũng nh− các khối làm việc đặc biết đ−ợc tích hợp sẵn trong th− viện của hệ điều hành phục vụ việc sử dụng các cổng vào/ra onboard này sẽ đ−ợc phân biệt với nhau trong tên gọi bằng cách thêm cụm chữ cái IFM (Intergated Function Module) ví dụ CPU 312IM, modul CPU 314 IFM. Ngoài ra có các loại modul CPU với hai cổng truyền thông, trong đó cổng truyền thông thứ hai có chức năng chính là việc phục vụ nối mạng phân tán. Tất nhiên đ−ợc cài sẵn trong hệ điều hành các loại Modul CPU đựơc phân biệt với các CPU khác bằng thêm cụm từ DP trong tên gọi. Ví dụ Modul CPU 315-DP. Lập trình với SPS S7-300
  10. Modul mở rộng: các modul mở rộng đ−ợc chia làm 5 loại chính: 1/ PS(Power supply): modul nguồn nuôi. Có 3 loại 2A ,5A và 10A. Hình 1-7:Sơ đồ bố trí một trạm PLC( S7-300). 2/ SM: Modul mở rộng cổng rín hiệu vào ra , bao gồm: a) DI(Digital input): Modul mở rộng cổng vào số. Số các cổng vào của modul này có thể là 8, 16, 32 tuỳ thuộc vào từng loại modul. b) DO(Digital output) Modul mở rộng cổng ra số. Số các cổng ra của modul này có thể là 8, 16, 32 tuỳ thuộc vào từng loại modul. c) DI/DO: (Digital input/ Digital output): modul mở rổng các cổng vào/ra số số các cổng vào/ra có thể là 8 vào/8 ra hoặc 16 vào/16 ra tuỳ thuộc vào từng loại modul. d) AI(Analog Input): Modul mở rổng các cổng vào t−ơng tự. Về bản chất chúng chính là những bộ chuyển đổi t−ơng tự-số (AD), tức là mỗi tín hiệu t−ơng tự đ−ợc chuyển thành một tín hiệu số (nguyên ) có độ dài 12 bít, số các cổng vào có thể là 2, 4 hoặc 8 tuỳ thuộc vào từng loại Modul. e) AO(Analog ouput): Modul mở rộng các cổng ra tín hiệu t−ơng tự. Chúng chính là các bộ chuyển đổi số - t−ơng tự (DA). Số các cổng ra t−ơng tự có thể là 2 hoặc 4 tuỳ thuộc từng loại modul. f) AI/AO (Analog input/Analog output): Modul mở rộng các cổng vào ra t−ơng tự. Số các cổng có thể là 4 vào/2 ra hoặc 4 vào/4 ra tuỳ thuộc vào tùng loại modul. 16 Lập trình với SPS S7-300
  11. 3/ IM (Interface module): Modul ghép nối. Đây là loại modul chuyên dụng có nhiệm vụ nối từng nhóm các modul mở rộng lại với nhau thành một khối và đ−ợc quản lý chung bới một modul CPU. Thông th−ờng các modul mở rộng đ−ợc gá liền với nhau trên một thanh đỡ gọi là Rack. Trên mỗi một Rack chỉ có thể gá đ−ợc nhiều nhất 8 modul mở rộng (không kể modul CPU, Modul nguồn nuôi). Một modul PU S7-300 có thể làm việc trực tiếp đ−ợc với nhiều nhất 4 RACKS và các Racks này phải đ−ợc nối với nhau bằng modul IM. 4/ FM (Function modul): modul có chức năng điều khiển riêng , ví dụ Modul chức năng điều khiển động cơ b−ớc , modul điều khiển động cơ Servo, modul PID, modul điều khiển vòng kín. 5/ CP (communication modul): Modul phục vụ truyền thông trong mạng giữa các PLC với nhau hoặc giữa PLC với máy tính. 1.2.2.Kiểu dữ liệu và phân chia bộ nhớ: 1-Phân loại: Một ch−ơng ttrình trong S7-300 có thể sử dụng các kiểu dữ liệu sau: 1/ BOOL: với dung l−ợng là 1 bit và có giá trị là 0 hoặc 1 (đúng hoặc sai). Đây là kiểu dữ liệu biến có hai giá trị. 2/ BYTE: gồm 8 bits, th−ờng đ−ợc dùng để biểu diễn một số nguyên d−ơng trong khoảng từ 0 đến 255 hoặc mã ASCII của một ý tự. Ví dụ: B#16#14 nghĩa là số nguyên 14 viết theo hệ đếm cơ số 16 có độ dài 1 byte. 3/ WORD: gồm 2 byte, để biểu diễn số nguyên d−ơng từ 0 đến 65535 (216 - 1). 4/DWORD: Là từ kép có giá trị là: 0 đến 232-1. 5/ INT: cũng có dung l−ợng là 2 bytes, dùng để biểu diễn một số nguyên trong khoảng -32768 đến 32767 hay ( 2-15 215-1). 6/ DINT: gồm 4 bytes, dùng để biểu diễn số nguyên từ -2147483648 đến 2147483647 hay: (2-31 231-1). 7/ REAL: gồm 4 bytes, dùng để biểu diễn một số thực dấu phảy động có giá trị là: -3,4E38 3,4E38. Ví dụ: 1.234567e+13 8/ S5t (hay S5Time): khoảng thời gian, đ−ợc tính theo giờ/phút/giây: (-2-31+ 231-1 ms). Lập trình với SPS S7-300
  12. Ví dụ: S5t#2h_3m_0s_5ms. Đây là lệnh tạo khoảng thời gian la 2 tiếng ba phút và 5 mili giây. 9/TOD: Biểu diễn giá trị tức thời tính theo Giờ/phút/giây. Ví dụ: TOD#5:30:00 là lệnh khai báo giá trị thời gian trong ngày là 5 giờ 30 phút. 10/ DATE: Biểu diễn thời gian tính theo năm / ngày / tháng. Ví dụ: DATE#2003-6-12 Là lệnh khai báo ngày12 tháng 6 năm 2003. 11/ CHAR: biểu diễn một hoặc nhiều ký tự (nhiều nhất là 4 ký tự) (ASCII - code). Ví dụ: ABCD 2-Sử dụng và khai báo các dạng tín hiệu: Trong quá trình thực hiện cấu trúc của tín hiệu số đ−ợc biểu diễn d−ới dạng: 1/ Bit : (ví dụ I0.0) dùng để biểu diễn số nhị phân (có 2 giá trị 1 hoặc 0). 1 2/ Byte : (ví dụ MB0) Một Byte gồm có 8 bits. Ví dụ giá trị của 8 cổng vào (IB0) hoặc 8 cổng ra (QB1), đ−ợc gọi là một byte: 0 0 1 1 0 1 0 1 3/ Word: (ví dụ MW0= MB0 + MB1) Một Word gồm có 2 Byte nh− vậy một Word có độ dài 16 bits. 0 0 1 0 1 1 1 0 0 0 1 0 1 1 1 0 Byte 0 Byte 1 4/ Doppelword: (ví dụ MD0 = MW0 + MW2): có độ dài 2 từ hoặc 4 Byte tức là 32 bits. 18 Lập trình với SPS S7-300
  13. 1.2.3.Cấu trúc bộ nhớ của CPU của S7-300: Đ−ợc chia ra làm 3 vùng chính: 1) Vùng chứa ch−ơng trình ứng dụng: vùng nhớ ch−ơng trình đ−ợc chia làm 3 miền: a/ OB: Miền chứa ch−ơng trình tổ chức (các ch−ơng trình này sẽ đ−ợc giới thiệu ở mục 1.2.5). b/ FC: (Funktion): miền chứa ch−ơng trình con đ−ợc tổ chức thành hàm có biến hình thức để trao đổi dữ liệu với ch−ơng trình đã gọi nó. c/ FB: (Funktion Block): Miền chứa ch−ơng trình con, đ−ợc tổ chức thành hàm và có khả năng trao đổi dữ liệu với bất cứ một khối ch−ơng trình nào khác. Các dữ liệu này phải đ−ợc xây dựng thành một khối dữ liệu riêng (gọi là DB-Data block). 2) Vùng chứa các tham số của hệ điều hành và ch−ơng trình ứng dụng, đ−ợc phân chia thành 7 miền khác nhau, bao gồm: a. I (Procees image input): miền bộ đệm các dữ liệu cổng vào số. Tr−ớc khi thực hiện ch−ơng trình, PLC sẽ đọc giá trị logic của tất cả các đầu vào và cất giữ chúng trong vùng nhớ I. Thông th−ờng ch−ơng trình ứng dụng không đọc trực tiếp trạng thái logic của cổng vào số mà chỉ lấy dữ liệu của cổng vào từ bộ đệm I. b. Q (Process image output): miền bộ đệm các cổng ra số. Kết thúc giai đoạn thực hiện ch−ơng trình sẽ chuyển giá trị logic của bộ đệm tới các cổng ra số. Thông th−ờng không trực tiếp gán giá trị tới tận cổng ra mà chỉ chuyển chúng vào bộ đệm Q. c. M: Miền các biến cờ. Ch−ơng trình ứng dụng sử dụng vùng nhớ này để l−u giữ các tham số cần thiết và có thể truy cập nó theo bit (M), byte (MB), từ (MW) hay từ kép (MD). d. T: Miền nhớ phục vụ bộ thời gian (TIME) bao gồm việc l−u giữ giá trị thời gian đặt tr−ớc (PV-preset value), giá trị đếm thời gian tức thời (CV- Curren value) cũng nh− các giá trị logic đầu ra của bộ thời gian. e. C: Miền nhớ phục vụ bộ đếm (counter) bao gồm việc l−u giữ giá trị đặt tr−ớc (PV), và giá trị đếm tức thời (CV) và giá trị logic đầu ra của bộ đếm. f. PI: Miền địa chỉ cổng vào của các modul t−ơng tự. Các giá trị t−ơng tự tại cổng vào của modul t−ơng tự sẽ đ−ợc đọc và chuyển tự động theo những địa chỉ. Ch−ơng trình ứng dụng có thể truy nhập miền nhớ PI theo từng byte (PIB), từng từ (PIW) hoặc theo từ kép (PID). Lập trình với SPS S7-300
  14. g. PQ: miền địa chỉ cổng ra cho các modul t−ơng tự. Các gía trị theo những địa chỉ này đ−ợc modul t−ơng tự chuyển tới các cổng ra t−ơng tự. Ch−ơng trình ứng dụng có thể truy cập miền nhớ PQ theo từng byte (PQB), từng từ (PQW) hay từng từ kép (PQD) 3) Vùng chứa các khối dữ liệu: đ−ợc chia làm hai loại: a. DB (Data block): miền chứa các dữ liệu đ−ợc tổ chức thành khối. Kích th−ớc cũng nh− số l−ợng do ng−ời sử dụng qui định, phù hợp với từng bài toán điều khiển. Ch−ơng trình có thể truy cập miền này theo từng bit (DBX), byte (DBB), từ (DBW) hoặc từ kép (DBD). b. L (Local data block) : miền giữ liệu địa ph−ơng, đ−ợc các khối ch−ơng trình OB, FB, FC tổ chức và sử dụng cho các biến nháp tức thời và trao đổi giữ liệu của biến hình thức của ch−ơng trình với những khối ch−ơng trình đã gọi nó. Nội dung của một số dữ liệu trong miền nhớ này sẽ bị xoá khi kết thúc ch−ơng trình t−ơng ứng trong OB, FB, FC. Miền này có thể truy cập từ ch−ơng trình theo bit (L), byte (LB), từ (LW) hay từ kép (LD). 1.2.4.Vòng quét của ch−ơng trình: SPS (PLC) thực hiện các công việc (bao gồm cả ch−ơng trình điều khiển) theo chu trình lặp. Mỗi vòng lặp đ−ợc gọi là một vòng quét (scancycle). Mỗi vòng quét đ−ợc bắt đàu bằng việc chuyển dữ liệu từ các cổng vào số tới vùng bộ đệm ảo I, tiếp theo là giai đoạn thực hiện ch−ơng trình. Trong từng vòng quét , ch−ơng trình đ−ợc thực hiện từ lệnh đầu tiên đến lệnh kết thúc của khối OB1. Sau giai đoạn thực hiện ch−ơng trình là giai đoạn chuyển các nội dung của bộ đệm ảo Q tới các cổng ra số. Vòng quét đ−ợc kết thúc bằng giai đoạn xử lý các yêu cầu truyền thông (nếu có) và kiểm tra trạng thái của CPU. Mỗi vòng quét có thể mô tả nh− sau: Truyền thông và Truyền dữ liệu từ kiểm tra nội bộ cổng vào tới I Vòng quét Chyển dữ liệu Thực hiện từ Q tới cổn g ch−ơng trình Hình1-8: Quá trình hoạt động của một vòng quét. Chú ý : Bộ đệm I và Q không liên quan tới các cổng vào/ra t−ơng tự nên các lệnh truy nhập cổng t−ơng tự đ−ợc thực hiện trực tiếp với cổng vật lý chứ không thông qua bộ đệm. 20 Lập trình với SPS S7-300
  15. Thời gian cần thiết để cho PLC thực hiện đ−ợc một vòng quét đ−ợc gọi là thời gian vòng quét (Scan time). Thời gian vòng quét không cố định, tức là không phải vòng quét nào cũng đ−ợc thực hiện trong một khoảng thời gian nh− nhau. Có vòng quét đ−ợc thực hiện lâu, có vòng quét đ−ợc thực hiện nhanh tuỳ thuộc vào số lệnh trong ch−ơng trình đ−ợc thực hiện, vào khối l−ợng dữ liệu truyền thông. Trong vòng quét đó . Nh− vậy giữa việc đọc dữ liệu từ đối t−ợng để xử lý, tính toán và việc gửi tín hiệu điều khiển đến đối t−ợng có một khoảng thời gian trễ đúng bằng thời gian vòng quét. Nói cách khác, thời gian vòng quét quyết định tính thời gian thực của ch−ơng trình điều khiển trong PLC. Thời gian vòng quét càng ngắn, tính thời gian thực của ch−ơng trình càng cao. Nếu sử dụng các khối ch−ơng trình đặc biệt có chế độ ngắt, ví dụ khối OB40, OB80, Ch−ơng trình của các khối đó sẽ đ−ợc thực hiện trong vòng quét khi xuất hiện tín hiệu báo ngắt cùng chủng loại. Các khối ch−ơng trình này có thể thực hiện tại mọi vòng quét chứ không phải bị gò ép là phải ở trong giai đoạn thực hiện ch−ơng trình. Chẳng hạn một tín hiệu báo ngẵt xuất hiện khi PLC đang ở giai đoạn truyền thông và kiểm tra nội bộ, PLC sẽ tạm dừng công việc truyền thông, kiểm tra, để thực hiện ngắt nh− vậy, thời gian vòng quét sẽ càng lớn khi càng có nhiều tín hiệu ngắt xuất hiện trong vòng quét. Do đó để nâng cao tính thời gian thực cho ch−ơng trình điều khiển, tuyệt đối không nên viết ch−ơng trình xử lý ngắt quá dài hoặc quá lạm dụng việc sử dụng chế độ ngắt trong ch−ơng trình điều khiển. Tại thời điểm thực hiện lệnh vào/ra, thông th−ờng lệnh không làm việc trực tiếp với cổng vào/ra mà chỉ thông qua bộ nhớ đệm của cổng trong vùng nhớ tham số. Việc truyền thông giữa bộ đêm ảo với ngoại vi trong giai đoạn 1 và 3 do hệ điều hành CPU quản lý. ở một số modul CPU, khi gặp lệnh vào/ra ngay lập tức hệ thống sẽ cho dừng mọi công việc khác, ngay cả ch−ơng trình xử lý ngắt, để thực hiện với cổng vào/ra. 1.2.5. Những khối OB đặc biệt: Khối OB1 có chức năng quản lý chính trong toàn bộ ch−ơng trình, có nghĩa là nó sẽ thực hiện một cách đều đặn ở từng vòng quét trong khi thực hiện ch−ơng trình. Ngoài ra Step7 còn có rất nhiều các khối OB đặc biệt khác và mỗi khối OB đó có một nhiệm vụ khác nhau, ví dụ các khối OB chứa các ch−ơng Lập trình với SPS S7-300
  16. trình ngắt của các ch−ơng trình báo lỗi , Tuỳ thuộc vào từng loại CPU khác nhau mà có các khối OB khác nhau. Ví dụ các khối OB đặc biệt. 1. OB10: (Time of Day Interrupt): Ch−ơng trình trong khối OB10 sẽ đ−ợc thực hiện khi giá trị của đồng hồ thời gian thực nằm trong một khoảng thời gian đã qui định. OB10 có thể đ−ợc gọi một lần, nhiều lần cách đều nhau từng phút, từng giờ, từng ngày, Việc qui định thời gian hay số lần gọi OB10 đ−ợc thực hiện bằng ch−ơng trình hệ thống SFC28 hoặc trong bảng tham số modul CPU nhờ phần mềm Step7. 2. OB20: (Time Delay Interrupt): ch−ơng trình trong khối OB20 sẽ đ−ợc thực hiện sau một khoảng thời gian trễ đặt tr−ớc kể từ khi gọi ch−ơng trình hệ thống SFC32 để đăt thời gian trễ. 3. OB35: (Cyclic Interrupt): Ch−ơng trình OB35 sẽ đ−ợc thực hiện cách đều nhau một khoảng thời gian cố định. Mặc định khoảng thời gian này là 100ms, xong ta có thể thay đổi trong bảng đặt tham số cho CPU nhờ phần mềm Step7. 4. OB40 ( Hardware Interrupt): Ch−ơng trình trong khối OB40 sẽ đ−ợc thực hiện khi xuất hiện một tín hiệu báo ngắt từ ngoại vi đ−a vào CPU thông qua các cổng vào/ra số onboard đặc biệt, hoặc thông qua các modul SM, CP, FM. 5. OB80: (cycle Time Fault): Ch−ơng trình sẽ đ−ợc thực hiện khi thời gian vòng quét (scan time) v−ợt qua khoảng thời gian cực đại đã qui định hoặc khi có một tín hiệu ngắt gọi một khối OB nào đó mà khối OB này ch−a kết thúc ở lần gọi tr−ớc. Mặc định, scan time cực đại là 150ms, nh−ng có thể thay đổi tham số nhờ phần mềm Step7. 6. OB81( Power Supply Fault): nếu có lỗi về phần nguồn cung cấp thì sẽ gọi ch−ơng trình trong khối OB81. 7. OB82: (Diagnostic Interrupt) ch−ơng trình trong khối này sẽ đ−ợc gọi khi CPU phát hiện có lỗi từ các modul vào/ra mở rộng. Với điều kiện các modul vào/ra này phải có chức năng tự kiểm tra mình. 8. OB85 (Not Load Fault): CPU sẽ gọi khối OB85 khi phát hiện ch−ơng trình ứng dụng có sử dụng chế độ ngắt nh−ng ch−ơng trình xử lý tín hiệu ngắt lại không có trong khối OB t−ơng ứng. 9. OB87 (Communication Fault): Ch−ơng trình trong khối này sẽ đ−ợc gọi khi CPU phát hiện thấy lỗi trong truyền thông. 10. OB100 (Start Up Information): Khối này sẽ đ−ợc thực hiện một lần khi CPU chuyển trạng thái từ STOP sang trạng thái RUN. 22 Lập trình với SPS S7-300
  17. 11. OB121: (Synchronouns error): Khối này sẽ đ−ợc gọi khi CPU phát hiện thấy lỗi logic trong ch−ơng trình nh− đổi sai kiểu dữ liệu hoặc lỗi truy nhập khối DB, FC, FB không có trong bộ nhớ của CPU. 12. OB122 (Synchronouns error): Khối này sẽ đ−ợc thực hiện khi CPU phát hiện thấy lỗi truy nhập Modul trong ch−ơng trình, ví dụ trong ch−ơng trình có lệnh truy nhập modul mở rộng nh−ng lại không có modul này. Để thực hiện thay đổi các chức năng của các khối OB trong CPU ta chỉ cần kích đúp chuột trái vào vị tí CPU trong bảng cấu hình cứng của Project khi đó trên màn hình sẽ xuất hiện một cửa sổ nh− sau: Hình 1-9 Chú ý không phải tất cả các CPU đều có các khối OBs nh− đã giới thiệu. Số l−ợng và chủng loại khối OB tuỳ thuộc vào từng loại CPU. Lập trình với SPS S7-300
  18. Ch−ơng 2: Kỹ thuật lập trình: 2.1.Giới thiệuchung: 2.1.1.Lập trình tuyến tính và lập trình có cấu trúc: Phần bộ nhớ của CPU dành cho ch−ơng trình ứng dụng có tên gọi là logic Block. Nh− vậy logic block là tên chung để gọi tất cả các khối bao gồm những khối ch−ơng trình tổ chức OB, khối ch−ơng trình FC, khối hàm FB. Trong các loại khối ch−ơng trình đó thì chỉ có khối duy nhất khối OB1 đ−ợc thực hiện trực tiếp theo vòng quét. Nó đ−ợc hệ điều hành gọi theo chu kỳ lặp với khảng thời gian không cách đều nhau mà phụ thuộc vào độ dài của ch−ơng trình. Các loại khối ch−ơng trình khác không tham gia vào vòng quét. Với tổ chức ch−ơng trình nh− vậy thì phần ch−ơng trình trong khối OB1 có đầy đủ điều kiện của một ch−ơng trình điều khiển thời gian thực và toàn bộ ch−ơng trình ứng dụng có thể chỉ cần viết trong OB1 là đủ nh− hình vẽ sau. Cách tổ chức ch−ơng trình với chỉ một khối OB1 duy nhất nh− vậy đ−ợc gọi là lập trình tuyến tính. OB10 Nghắt ở thời điểm định tr−ớc OB1 thực hiện theo vòng quét OB82 Modul chuẩn đoán lỗi Hình 2-1: Sơ đồ khối kiểu lập trình tuyến tính Khối OB1 đ−ợc hệ thống gọi xoay vòng liên tục theo vòng quét. Các khối OB khác không tham gia vào vòng quét đ−ợc gọi bằng những tín hiệu báo ngắt. S7-300 có nhiều tín hiệu báo ngắt nh− tín hiệu báo ngắt khi có sự cố nguồn nuôi, có sự cố chập mạch ở các modul mở rộng, tín hiệu báo ngắt theo chu kỳ thời gian, và mỗi loại tín hiệu báo ngắt nh− vậy cũng chỉ có khả năng gọi 24 Lập trình với SPS S7-300
  19. một khối OB nhất định. Ví dụ tín hiệu báo ngắt sự cố nguồn nuôi chỉ gọi khối OB81, tín hiệu báo ngắt truyền thông chỉ gọi khối OB87. Mỗi khi xuất hiện tín hiệu báo ngắt hệ thống sẽ dừng công việc đang thực hiện lại, chẳng hạn nh− tạm dừng việc thực hiện ch−ơng trình trong OB1, và chuyển sang thực hiện ch−ơng trình xử lý ngắt tong các khối OB t−ơng ứng. Ví dụ khi đang thực hiện ch−ơng trình trong khối OB1 mà xuất hiện ngắt báo sự cố truyền thông, hệ thống sẽ tạm dừng việc thực hiện ch−ơng trình trong OB1 lại để gọi ch−ơng trình trong khối truyền thông OB87. Chỉ sau khi đã thực hiện xong ch−ơng trình trong khối OB87 thì hệ thống mới quay trở về hực hiện tiếp tục phần ch−ơng trình còn lại trong OB1. Với kiểu lập trình có cấu trúc thì khác vì toàn bộ ch−ơng trình điều khiển đ−ợc chia nhỏ thành các khối FC và FB mang một nhiệm vụ cụ thể riêng và đ−ợc quản lý chung bởi những khối OB. Kiểu lập trình này rất phù hợp cho những bài toán phức tạp, nhiều nhiệm vụ và lại rất thuận lợi cho việc sửa chữa sau này. DB DB FB FC SFB OB DB DB FB FB SFC Hình 2-2: Sơ đồ kiểu lập trình có cấu trúc. OB: Organization Block FB: Function Block FC: Function SFB: System Function block SFC: System function SDB: System Data Block DB: Data block Chú ý: Bao giờ FB cũng sử dụng chung với DB. Lập trình với SPS S7-300
  20. 2.1.2.Qui trình thiết kế ch−ơng trình điều khiển dùng PLC: Qui trình thiết kế hệ thống điều khiển dùng PLC bao gồm các b−ớc sau: 1.Xác định qui trình điều khiển: Điều đầu tiên cần biết là đối t−ợng điều khiển của hệ thống, mục đích cính của PLC là phải điều khiển đ−ợc các thiết bị ngoại vi. Các chuyển động của đối t−ợng điều khiển đ−ợc kiểm tra th−ờng xuyên bởi các thiết bị vào, các thiết bị nạy gửi tín hiệu đến PLC và tiếp theo đó PLC sẽ đ−a tín hiêu điều khiển đến các thiết bị để điều khiển chuyển động của đối t−ợng. Để đơn giản, qui trình điều khiển có thể mô tả theo l−u đồ (hình vẽ 2-3). 2.xác định tín hiệu vào ra: B−ớc thứ hai là phải xác định vị trí kết nối giữa các thiết bị vào ra với PLC. Thiết bị vào có thể là tiếp điểm, cảm biến, Thiết bị ra có thể là Rơle điện từ, Motor, đèn, Mỗi vị trí kết nối đ−ợc đánh số t−ơng tự ứng với PLC sử dụng. 3.Soạn thảo ch−ơng trình: Ch−ơng trình điều khiển đ−ợc soạn thảo d−ới dạng l−u đồ hình thang nh− đã trình bày ở b−ớc 1. 4.Nạp ch−ơng trình vào bộ nhớ: Cấp nguồn cho PLC, cài đặt cấu hình khối giao tiếp I/O nếu cần (Phụ thuộc vao từng loại PLC). Sau đó nạp ch−ơng trình soạn thảo trên màn hình vào bộ nhớ của PLC. Sau khi hoàn tất nên kiểm tra lỗi bằng chức năng tự chuẩn đoán và nếu có thể thì chạy ch−ơng trình mô phỏng hoạt động của hệ thống (Ví dụ ch−ơng trình S7-SIM, S7- VISU, ). 5.Chạy ch−ơng trình: Tr−ớc khi khởi động hệ thống cần phải chắc chắn dây nối từ PLC đến các thiết bị ngoại vi là đúng, trong quá trình chạy kiểm tra có thể cần thiết phải thực hiện các b−ớc tinh chỉnh hệ thống nhằm đảm bảo an toàn khi đ−a vào hoạt động thực tế. 26 Lập trình với SPS S7-300
  21. Qui trình thiết kế hệ thống điều khiển bằng PLC: Xác định yêu cầu Kết nối các thiết của hệ thống bị I/O vào PLC Vẽ l−u đồ điều Kiểm tra dây nối khiển Liệt kê các thiết Chạy thử ch−ơng bị I/Ot−ơng ứng trình với các đầu I/O của PLC Soạn thảo Kiểm tra ch−ơng trình Nạp ch−ơng trình Chạy tôt? vào PLC NO YES Sửa chữa ch−ơng Nạp vào EPROM trình Chạy mô phỏng và tìm lỗi Tạo tài liệu ch−ơng trình NO YES Chấm dứt Chạy tôt? Hình 2-3: Qui trình thiết kế một hệ thống điều khiển tự động. Lập trình với SPS S7-300
  22. 2.2.Các ngôn ngữ lập trình: Đối với PLC S7-300 có thể sử dụng 6 ngôn ngữ để lập trình. 1/ Ngôn ngữ lập trình LAD: Với loại ngôn ngữ này rất thích hợp với ng−ời quen thiết kế mạch điều khiển logic ch−ơng trình đ−ợc viết d−ới dạng liên kết giữa các công tắc: ví dụ: Hình 2-4: ví dụ kiểu lập trình LAD. 28 Lập trình với SPS S7-300
  23. 2/ Ngôn ngữ lập trình FBD : Loại ngôn ngữ này thích hợp cho những ng−ời quen sử dụng và thiết kế mạch điều khiển số. Ch−ơng trình đ−ợc viết d−ới dạng liên kết của các hàm logic kỹ thuật số: Ví dụ: Hình 2-5: Ví dụ kiểu lập trình FBD. 3/ Ngôn ngữ lập trình STL Đây là ngôn ngữ lập trình thông th−ờng của máy tính. Một ch−ơng trình đ−ợc ghép bởi nhiều lệnh theo một thuật toán nhất định, mỗi lệnh chiếm một hàng và đều có cấu trúc chung là : "tên lệnh" + "toán hạng". Ví dụ: Hình 2-6: Ví dụ kiểu lập trình STL. Lập trình với SPS S7-300
  24. 4/ Ngôn ngữ lập trình SCL (Structured Control Language): Kiểu viết ch−ơng trình này sử dụng ngôn ngữ PASCAL. Rất phù hợp cho những ng−ời đã viết các ch−ơng trình bằng ngôn ngữ máy tính. ví dụ: 5/ Ngôn ngữ lập trình : S7-Graph. Ví dụ: Hình2-7: Sơ đồ khối lập trình kiểu S7-Graph. 30 Lập trình với SPS S7-300
  25. 6/ Ngôn ngữ lập trình : S7-HiGraph. Đây là một loại ngôn ngữ viết ch−ơng trình rất phù hợp cho các bài toán làm việc có tính tuần tự. Tại mỗi thời điểm chỉ có một b−ớc đ−ợc thực hiện. Với kiểu lập trình này ng−ời lập trình phải sử dụng ph−ơng pháp lập trình có cấu trúc. Ví dụ: Hình 2-8 : Sơ đồ lập trình bằng ngôn ngữ S7-HiGraph. Trong cuốn tài liệu này sẽ giới thiệu 4 loại ngôn ngữ dùng để lập trình (FBD, STL, LAD và S7GRAPH) trong phần bài tập mẫu. Lập trình với SPS S7-300
  26. Ch−ơng 3: Cài đặt phần mềm S7-300 và chọn chế độ làm việc 3.1. Giới thiệu chung: Muốn xây dựng một ch−ơng trình điều khiển sử dụng phần mềm Step7 cần thực hiện các thủ tục nh− sau: - Khai báo cấu hình cứng cho một trạm PLC thuộc họ Simatic S7-300/400. - Xây dựng cấu hình mạng gồm nhiều trạm PLC S7-300/400 cũng nh− thủ tục truyền thông giữa chúng. - Soạn thảo và cài đặt ch−ơng trình điều khiển cho 1 hoặc nhiều trạm. - Giám sát việc thực hiện ch−ơng trình điều khiển trong một trạm PLC và gỡ rối ch−ơng trình. Ngoài ra Step 7 còn có cả một th− viện đầy đủ với các hàm chuẩn hữu ích, phần trợ giúp Online rất mạnh có khả năng trả lời mọi câu hỏi của ng−ời sử dụng về cách sử dụng Step 7, về cú pháp lệnh trong lập trình, về xây dựng cấu hình cứng của một trạm cũng nh− của một mạng gồm nhiều trạm PLC. 3.2. Cài đặt Step7: 3.2.1.Tổng quát về Step 7 Tại việt nam hiện có rất nhiều phiên bản của bộ phần mềm gốc của Step7. Đang đ−ợc sử dụng nhiều nhất là phiên bản (version) 4.2, 5.0 và 5.1. Trong khi phiên bản 4.2 khá phù hợp cho những PC có cấu hình trung bình (CPU 80586, 90MB còn trống trong ổ cứng, màn hình VGA) nh−ng lại đòi hỏi tuyệt đối có bản quyền. Trong khi phiên bản 5.0 và 5.1 mặc dù đòi hỏi máy tính có cấu hình mạnh nh−ng lại không đòi hỏi bản quyền một cách tuyệt đối, nghĩa là phiên bản này vẫn làm việc ở một mức hạn chế khi không có bản quyền. Phần lớn các đĩa gốc của Step7 đều có khả năng tự cài đặt ch−ơng trình (autorun). Bởi vậy chỉ cần cho đĩa vào ổ CD và thực hiện theo đúng chỉ dẫn hiện trên màn hình. Ta có thể chủ động thực hiện việc cài đặt bằng cách gọi ch−ơng trình Setup.exe có trên đĩa. Công việc cài đặt, về cơ bản không khác nhiều so với việc cài đặt các phần mềm ứng dụng khác, tức là cũng bắt đầu bằng việc chọn ngôn ngữ cài đặt ( mặc định là tiếng Anh), chọn th− mục đặt trên ổ cứng (mặc định là C:\simens), kiểm tra dung tích còn lại trên ổ cứng, chọn ngôn ngữ sẽ đ−ợc sử dụng trong quá trình làm việc với Step7 sau này. 32 Lập trình với SPS S7-300
  27. Một số vấn đề cần giải thích rõ thêm khi cài đặt phần mềm Step7:(cuốn tài liệu này h−ớng dẫn các bạn cài đặt bằng ngôn ngữ tiếng Anh) nh−ng về cơ bản cài đặt bằng tiếng Đức cũng không có nhiều điều khác biệt. 3.2.2 Khai báo m∙ hiệu sản phẩm: mã hiệu sản phẩm luôn đi kèm với sản phẩm và đ−ợc in ngay trên đĩa chứa bộ cài Step7. Khi trên màn hình xuất hiện cửa sổ yêu cầu cho biết mã hiệu sản phẩm, ta phải điền đầy đủ vào tất cả các th− mục của cửa sổ đó, kể cả địa chỉ ng−ời sử dụng sau đó ấn continue để tiếp tục. Hình 3-1: Khai báo mã hiệu của sản phẩm 3.2.3.Chuyển bản quyền: Bản quyền Step7 nằm trên một đĩa mềm riêng (th−ờng có mầu vàng hoặc mầu đỏ). Trong quá trình cài đặt, trên màn hình sẽ xuất hiện yêu cầu chuyển bản quyền sang ổ đích (mặc định là c:\ ) có dạng nh− sau: Ta có thể chuyển bản quyền sang ổ đĩa C:\ ngay trong khi cài đặt Step7 bằng cách cho đĩa bản quyền vào ổ đĩa A: rồi ấn phím Authorize. Ta cũng có thể bỏ qua và sẽ chuyển bản quyền sau vào lúc khác bằng cách ấn phím Skip. Trong tr−ờng hợp bỏ qua thì sau này, lúc chuyển bản quyền, ta phải sử dụng ch−ơng trình truyền bản quyền có tên là AuthorsW.EXE cũng có trên đĩa bản quyền (Ver.4.2) hoặc có cùng trong đĩa CD với phần mềm gốc Step7 (ver5.1). Lập trình với SPS S7-300
  28. Hình 3-2: Chuyển bản quyền Chú ý đĩa mềm chứa bản quyền (Author disk) đã đ−ợc bảo vệ cấm sao chép. Cho dù bản quyền đã đ−ợc chuyển từ đĩa mềm sang ổ cứng và trên đĩa mềm không còn bản quyền, nh−ng nó vẫn là một đĩa đặc biệt có chỗ chứa bản quyền. Bản quyền khi sao chép sang ổ đĩa cứng sẽ nằm trong th− mục Ax nf zz. Nếu th− mục này bị hỏng, ta sẽ mất bản quyền. Bởi vậy mỗi khi muốn cài đặt lại hệ thống hay dọn dẹp lại ổ đĩa cứng thì tr−ớc đó ta phải thực hiện rút bản quyền khỏi ổ đĩa C: và chuyển ng−ợc về ổ đĩa mềm Author cũng bằng ch−ơng trình AuthorsW.EXE. 3.2.4.Khai báo thiết bị đốt EPROM: Ch−ơng trình step7 có khả năng đốt ch−ơng trình ứng dụng lên thẻ EPROM cho PLC. Nếu máy tính PC của ta có thiết bị đốt EPROM thì cần phải thông báo cho Step7 biết khi trên màn hình xuất hiện cửa sổ: 34 Lập trình với SPS S7-300
  29. Không có thiết bị đốt EPROM Có thiết bị đốt EPROM của PG Thiết bị đốt EPROM ở bên ngoài Hình 3-3: Khai báo thiết bị đốt EPROM 3.2.5. Chọn giao diện cho PLC: Ch−ơng trình Step7 đ−ợc cài đặt trên PC (máy tính cá nhân) hoặc PG (lập trình bằng tay) để hỗ trợ việc soạn thảo cấu hình cứng cũng nh− ch−ơng trình cho PLC, tức là sau đó toàn bộ những gì đã soạn thảo sẽ đ−ợc dịch sang PLC. Không những thế, Step7 còn có khả năng quan sát việc thực hiện ch−ơng trình của PLC. Muốn nh− vậy ta cần phải có bộ giao diện ghép nối giữa PC với PLC để truyền thông tin, dữ liệu. Step7 có thể ghép nối với PLC bằng nhiều bộ ph−ơng thức ghép nối khác nhau nh− qua Card MPI, qua bộ chyển đổi PC/PPI, qua thẻ PROFIBUS (CP) nh−ng chúng phải đ−ợc khai báo sử dụng. Ngay sau khi Step7 đ−ợc cài đặt xong, trên màn hình xuật hiện cửa sổ thông báo cho ta chọn các bộ giao diện sẽ đ−ợc sử dụng. Cửa sổ này có dạng sau (hìnhvẽ 3-4): Muốn chọn bộ giao diện nào, ta đánh dấu bộ giao diện đó ở phía trái rồi ấn phím Install Những bộ giao diện đã đ−ợc chọn sẽ đ−ợc ghi vào ô bên phải. Sau khi chọn xong các bộ giao diện sử dụng, ta còn phải đặt tham số làm việc cho những bộ giao diện đó bao gồm tốc độ truyền , cổng ghép nối với máy tính. Chẳng hạn khi đã chọn bộ giao diện MPI -ISA Card ta phải đăt tham số làm việc cho nó thông qua cửa sổ màn hình. Lập trình với SPS S7-300
  30. Hình3-4: Khai báo dạng kết nối PC với CPU 3.3.Đặt tham số làm việc: Sau khi cài đặt xong Step7, trên màn hình (Destop) sẽ xuất hiện biểu t−ợng icon của nó. Đồng thời trong Menu của Window cũng có th− mục Simatic với tất cả các tên của những thành phần liên quan, từ các phần mềm trợ giúp đến các phần mềm cài đặt cấu hình, chế độ làm việc của Step7. Khi vừa đ−ợc cài đặt, step7 có cấu hình mặc định về chế độ làm việc của Simatic, chẳng hạn cú pháp các lệnh lại đ−ợc viết theo tiếng Đức ví dụ nh− AND thì viết thành UND, muốn chuyển thành dạng thông dụng quốc tế ta phải cài đặt lại cấu hình cho Step7. Tất nhiên, bên cạnh việc chọn ngôn ngữ cho cú pháp lệnh ta còn có thể sửa đổi nhiều chức năng khác của Step 7 nh− nơi sẽ chứa ch−ơng trình trên đĩa cứng, những thanh ghi sẽ đ−ợc hiển thị nội dung khi gỡ rối ch−ơng trình, song các việc đó không ảnh h−ởng quyết định tới việc sử dụng Step7 theo thói quen của ta nh− ngôn ngữ cú pháp lệnh. 3.4.Soạn thảo một Project. Khái niệm Project không đơn thuần chỉ là ch−ơng trình ứng dụng mà rộng hơn bao gồm tất cả những gì liên quan đến việc thiết kế phần mềm ứng dụng để điều khiển, giám sát một hay nhiều trạm PLC. Theo khái niệm nh− vậy, trong một Project sẽ có: 1. Bảng cấu hình cứng về tất cả các module của từng trạm PLC. 36 Lập trình với SPS S7-300
  31. 2. Bảng tham số xác định chề độ làm việc cho từng module của mỗi trạm PLC. 3. Các Logic block chứa ch−ơng trình ứng dụng của từng trạm PLC. 4. Cấu hình ghép nối và truyền thông giữa cac trạm PLC. 5. Các cửa sổ giao diện phục vụ việc giám sát toàn bộ mạng hoặc giám sát từng trạm PLC của mạng. ở đây, trong khuôn khổ phần mềm Step7 tôi chỉ giới thiệu việc soạn thảo một Project gốm các phần 1,2,3. Những phần còn lại bạn đọc có thể tham khảo trong cuốn tài liệu khác của cùng tác giả. 3.4.1.Khai báo và mở một Project mới. Để khai báo một Project, từ màn hình chính của Step 7 ta chọn File-> New hoặc kích chuột tại biểu t−ợng "New Project/ Library". Khai báo một Project mới Mở một Project đã có Hình 3-5: Mở một Project mới Khi đó trên màn hình sẽ xuất hiện hộp hội thoại nh− hình 3-6. Gõ tên Project rồi ấn phím OK và nh− vậy ta đã khai báo song một Project mới. Ngoài ra ta còn có thể chọn nơi Project sẽ đ−ợc cất lên đĩa. Mặc định, nơi cất sẽ là th− mục đã đ−ợc quy định khi cài đặt Step 7, ở đây là th− mục F:\S7_ projects. Lập trình với SPS S7-300
  32. Nơi viết tên một Project mới Nơi Project mới sẽ đ−ợc cất trên đĩa Hình 3-6: Đặt tên cho một Project mới Trong tr−ờng hợp muốn mở một Project đã có, ta chọn File -> Open hoặc kích chuột tại biểu t−ợng "Open Project/ Library" từ cửa sổ chính của Step7 rồi chọn tên Project muốn mở từ hộp hội thoại có dạng nh− hình 3-7. Cuối cùng ấn phím OK để kết thúc. Tên của một Project đã có sẵn Hình 3-7: Mở một Project đã có. 38 Lập trình với SPS S7-300
  33. 3.4.2. Xây dựng cấu hình cứng cho trạm PLC. Sau khi khai báo xong một Project mới, trên màn hình sẽ xuất hiện Project đó nh−ng ở dạng rỗng (ch−a có gì trong project), điều này ta nhận biết đ−ợc qua biểu t−ợng th− mục bên cạnh tên Project giống nh− một th− mục rỗng của Window. Biểu t−ợng một th− mục rỗng Hình 3-8: Biểu t−ợng một Project mới. Công việc tiếp theo ta có thể làm là xây dựng cấu hình cứng cho một trạm PLC. Điều này không bắt buộc, ta có thể không cần khai báo cầu hình cứng cho trạm mà đi ngay vào phần ch−ơng trình ứng dụng. Song kinh nghiệm cho thấy công việc này nên làm vì khi có cấu hình trong project, lúc bật nguồn PLC, hệ điều hành của S7-300 bao giờ cũng đi kiểm tra các module hiện có trong trạm, so sánh với cấu hình mà ta xây dựng và nếu phát hiện thấy sự không đồng nhất sẽ phát ngay tín hiệu báo ngắt lỗi hoặc thiếu module chứ không cần phải đợi tới khi thực hiện ch−ơng trình ứng dụng. Tr−ớc hết ta khai báo cấu hình cứng cho một trạm PLC với simatic S7-300 bằng cách vào: Insert -> Station ->Simatic 300- Station: Lập trình với SPS S7-300
  34. Khai báo một trạm PLC S7- 300 Hình 3-9: Khai báo cấu hình cứng cho trạm PLC Trong tr−ờng hợp không muốn khai báo cấu hình cứng mà đi ngay vào ch−ơng trình ứng dụng ta có thể chọn thẳng. Động tác này sẽ hữu ích cho những tr−ờng hợp một trạm PLC có nhiều phiên bản ứng dụng khác nhau. Sau khi đã khai báo một trạm (chèn một Station), th− mục Project chuyển sang dạng không rỗng với th− mục con trong nó tên mặc định là Simatic300(1) chứa tệp thông tin về cấu hình cứng của trạm. Tệp chứa thông tin về cấu hình cứng cửa trạm Hình 3-10:Màn hình khai báo cấu hình cứng cho tạm PLC 40 Lập trình với SPS S7-300
  35. Để vào màn hình khai báo cấu hình cứng, ta nháy chuột tại biểu t−ợng Hardware. Trong hộp thoại hiện ra ta khai báo thanh Ray (Rack) và các module có trên thanh Ray đó. Ví dụ: Bảng danh mục các modul để lựa chọn Hình 3-11: Th− viện để lấy các Modul Step7 giúp việc khai báo cấu hình cứng đ−ợc đơn giản nhờ bảng danh mục các module của nó. Muốn đ−a module nào vào bảng cấu hình ta chỉ cần đánh dấu vị trí nơi module sẽ đ−ợc đ−a vào rồi nháy kép chuột trái tại tên của module đó trong bảng danh mục cac module kèm theo. 3.4.3. Đặt tham số quy định chế độ làm việc cho module. Với bảng cấu hình cứng phần mềm Step7 cũng xác định luôn cho ta địa chỉ từng module. Chẳng hạn Step7 có hỗ trợ việc tích cực ngắt theo thời điểm cho module CPU để module này phát một tín hiệu ngắt gọi khối OB10 một lần vào đúng ngày 16/02/2003 lúc 10 giờ 30. Để làm đ−ợc điều này ta nháy đúp chuột tại tên của module CPU ở vị trí 2 rồi chọn ô Time-Of-Day Interrupt, trên màn hình sẽ xuất hiện hộp hội thoại nh− hình 3-12. Điền thời điểm, tần suất phát tín hiệu ngắt rồi đánh dấu tích cực chế độ ngắt vào các ô t−ơng ứng trong hộp hội thoại. Cuối cùng ấn phím OK. Lập trình với SPS S7-300
  36. Thời điểm phát tín hiệu ngắt tín hiệu ngắt đ−ợc phát một lần Tích cực tín hiệu ngắt Hình 3-12: Đặt tham số cho Modul CPU Cũng trong hộp hội thoại ta thấy module CPU314 chỉ cho phép sử dụng OB10 trong số các module OB10 - OB17 với mức −u tiên là để chứa ch−ơng trình xử lý tín hiệu ngắt theo thời điểm. Các chế độ làm việc khác của module CPU cũng đ−ợc quy định nhờ Step7. Ví dụ để sửa đổi thời gian vòng quét cực đại cho phép từ giá trị mặc định 150ms thành 100 ms, ta chọn Cycle/Clock memory trong hộp hội thoại rồi sửa nội dung ô Scan time thành 100. Hoàn toàn t−ơng tự ta cũng có thể sử dụng Step7 để quy định chế độ làm việc cho các module mở rộng khác, nh− xác định chế độ làm việc với dạng tín hiệu điện áp, vởi dải ± 5V cho module AI: 42 Lập trình với SPS S7-300
  37. Hình 3-13: Đặt chế độ cho Modul Analog 3.4.4. Soạn thảo ch−ơng trình cho các khối logic. Sau khi khai báo cấu hình cứng cho một trạm PLC và quay trở về cửa sổ chính của Step7 ta thấy trong th− mục Simatic 300(1) bây giờ có thêm các th− mục con và tất nhiên ta có thể đổi tên các th− mục đó. Tất cả các khối Logic (OB, FC, FB, DB) chứa ch−ơng trình ứng dụng sẽ nằm trong th− mục Block. Mặc định trong th− mục này đã có sẵn khối OB1. 1.Soạn thảo ch−ơng trình cho khối OB1: Ta nháy chuột tại biểu t−ợng OB1 bên nửa cửa sổ bên phải. Trên màn hình sẽ xuất hiện cửa sổ của chế độ soạn thảo ch−ơng trình nh− hình 3-14. Chức năng ch−ơng trình soạn thảo của Step7 về cơ bản cũng giống nh− các ch−ơng trình soạn thảo khác, tức là cũng có các phím nóng để gõ nhanh, có chế độ cắt và dán, có chế độ kiểm tra lỗi cú pháp lệnh. Lập trình với SPS S7-300
  38. Phần Local block của khối OB1 Phần chú thích của ch−ơng trình Phần soạn thảo ch−ơng trình Hình 3-14: Soạn thảo ch−ơng trình trong OB1 Để khai báo va soạn thảo ch−ơng trình cho các khối OB khác hoặc cho các khối FC, FB hoặc DB, ta có thể tạo một khối mới ngay trực tiếp từ ch−ơng trình soạn thảo bằng cách kích chuột phải vào phần trống nh− hình vẽ sau: Hình 3-15: Mở một khối logic khác. 44 Lập trình với SPS S7-300
  39. Hoặc cũng có thể chèn thêm khối mới đó tr−ớc từ cửa sổ chính của Step7 bằng phím Insert -> S7 Block rồi sau đó mới vào soạn thảo ch−ơng trình cho khối mới đ−ợc chèn thêm nh− dã làm với OB1. Trong màn hình soạn thảo ch−ơng trình cho các khối Logic, ta có thể thay đổi không riêng phần ch−ơng trình mà cả phần local block của khối đó bao gồm tên hình thức, kiểu dữ liệu, giá trị ban đầu, Chú ý rằng không đ−ợc thay đổi 20 bytes đầu trong local block của các khối OB. Các b−ớc soạn thảo một khối logic cho ch−ơng trình ứng dụng đ−ợc tóm tắt nh− sau: • Tạo khối logic hoặc từ cửa sổ màn hình chính của Step7 bằng cách chọn Einfuegen (Insert) trên thanh công cụ rồi vào S7 Block dể chọn loại khối logic mong muốn ( OB, FB, FC ) hoặc vào ch−ơng trình soạn thảo rồi từ đó kích biểu t−ợng New. • Thiết kế local block cho khối logic vừa tạo. Với tất cả các khối để hoàn thành công việc thiết kế Local Block ta cần phải chú ý việc khai báo theo bảng sau: Loại biến ý nghĩa chức năng Khối thực hiện IN Nhận các tín hiệu từ đầu vào đọc FB, FC OUT Xuất các tín hiệu ra xuất FB, FC IN_OUT Nhận và gửi các tín hiệu đọc, xuất FB, FC STAT Nội dung của biến hình thức, đọc, xuất FB có khả năng l−u giữ lại khi kết thúc ch−ơng trình trong FB TEMP Biến tạm thời, nội dung sẽ bị đọc , xuất FB, FC, OB mất đi khi kết thúc ch−ơng trình trong FB, FC hoặc OB • Soạn thảo ch−ơng trình: ch−ơng trình có thể đ−ợc soạn thảo theo rất nhiều ngôn ngữ khác nhau ví dụ: FBD, LAD, STL xem trong mục 2.2. Lập trình với SPS S7-300
  40. 2.Soạn thảo một ch−ơng trình trong khối logic FC1: Ta thực hiện các b−ớc nh− sau: a/ Tạo khối: Hình 3-16: Tạo một khối logic mới Sau khi chọn th− mục nh− hình vẽ trên trên màn hình sẽ hiện ra một cửa sổ sau: Hình 3-17: Đặt tên và chọn chế độ làm việc cho khối logic mới. 46 Lập trình với SPS S7-300
  41. Trong hộp hội thoại cho phép ta chọn tên của FC ví dụ FC2. Trong thực tế Step7 luôn mặc định thứ tự của các FC và ta chỉ cần OK nếu ta chấp nhận tên nh− đã mặc định, ngoài ra ta còn có thể chọn chế độ viết ch−ơng trình trong khối hàm FC2 d−ới dạng FBD, LAD hay STL. Cuối cùng ta nhấn nút OK. Trên màn hình sẽ xuất hiện cửa sổ chính của Step7 nh− sau: Nháy đúp phím trái của chuột để vào ch−ơng trình soạn thảo trong FC2 Hình 3-18: Gọi màn hình soạn thảo. Để soạn thảo ch−ơng trình trong FC2 ta chỉ cần nhấy đúp chuột trái vào biểu t−ợng của FC2 và lập tức sẽ hiện ra cửa sổ soạn thảo ch−ơng trình cho FC2: Hình 3-19: Màn hình soạn thảo của khối Logic FC2. Lập trình với SPS S7-300
  42. b/ Xây dựng Local block: Trong cửa sổ màn hình soạn thảo ta xây dựng local block cho khối FC2 nh− sau: Hình 3-20: Nhập dữ liệu vào khối Lokal block của khối FC c/ Soạn thảo ch−ơng trình: Toàn bộ ch−ơng trình có thể viết trong khối logic FC2 nh− sau: Hình 3-21: Soạn thảo ch−ơng trình trong khối logic FC1. 48 Lập trình với SPS S7-300
  43. 3.Soạn thảo ch−ơng trình cho khối FB. a/Tạo khối FB: Ta có thể tạo khối FB bằng cách từ cửa sổ màn hình chính của Step7 ta dùng chuột phải và chọn các đối t−ợng nh− hình sau: Hình 3-22: Tạo khối FB Sau khi chọn th− mục Funktionsblock trên màn hình xuất hiện một cửa sổ: Trong cửa sổ đó ta cần phải đặt tên cho khối FB mà ta mới chọn ví dụ FB1 (thông th−ờng S7 tự gán cho một tên theo thứ tự mà ng−ời lập trình đã chọn khi đó nếu đồng ý ta chỉ cần nhấn nút OK). Ngoài ra ta còn có thể đặt tên cho khối FB; ví dụ: test_1, chọn cách viết ch−ơng trình AWL, KOP, FUP hay S7- GRAPH, Sau khi đã điền đủ các thông tin vào cửa sổ màn hình ta nhấn nút OK. Muốn soạn thảo ch−ơng trình trong khối FB ta chỉ cần nhấn đúp chuột trái vào biểu t−ợng FB trên màn hình chính. Sau khi thực hiện xong b−ớc này ta sẽ có cửa sổ soạn thảo ch−ơng trình cho khối FB1 và công việc tiếp theo cũng đ−ợc thực hiện giống nh− ta đã thực hiện đối với khối FC ở trên , đó là các b−ớc nh− xây dựng Local block, soạn thảo ch−ơng trình. Lập trình với SPS S7-300
  44. Hình 3-23: Chọn ngôn ngữ viết ch−ơng trìnhtrong khối FB1 b/Thủ tục gọi khối FB: Vì khối FB bao giờ cũng làm việc với khối dữ liệu DB dùng để l−u giữ nội dung các biến kiểu STAT của Local block. Vì vậy để thực hiện việc gọi khối FB ta phải đặt tên cho khối dữ liệu DB t−ơng ứng. Lệnh gọi khối hàm FB nh− sau: Hình 3-24:Gọi khối FB1 50 Lập trình với SPS S7-300
  45. Tuỳ theo nhu cầu sử dụng mà ta sử dụng một , hai hay nhiều khối DB ta phải đặt tên cho khối DB mà ta vừa chọn ví dụ DB1, DB2, Sau khi đã chọn xong b−ớc trên ta có thể soạn thảo ch−ơng trình cho khối DB1 và DB2 nh− sau: Hình 3-25:Màn hình soạn thảo trong khối FBs. 3.4.5.Sử dụng biến hình thức: Step7 cung cấp một khả năng sử dụng tên hình thức trong lập trình thay vì các ký hiệu địa chỉ , chữ số khối FB, FC, khó nhớ. Các tên hình thức đ−ợc thay bởi một địa chỉ hay một tên khối tuỳ ý theo ng−ời lập trình tự đặt. Để làm đ−ợc điều này, ng−ời lập trình cần phải khai báo tr−ớc trong một bảng có tên là Symbols. Kích chuột vào th− mục mẹ của Block, ở đây là th− mục với tên mặc định là S7 Program(1), sau đó nháy phím chuột trái tại biểu t−ợng Symbole nh− hình vẽ ta sẽ có màn hình soạn thảo bằng các tên hình thức sau: Lập trình với SPS S7-300
  46. Hình3-26: Sử dụng biến hình thức. Hình 3-27: Ghi các ký hiệu biến hình thức vào bảng Symbol. Sau khi điền đày đủ tên hình thức, địa chỉ ô nhớ mà nó thay thế ( hầu hết kiểu dữ liệu đều đ−ợc S7 tự xác định căn cứ vào địa chỉ ô nhớ) và cất vào Project, ta sẽ quay trở lại màn hình chính của S7. Mở một khối ch−ơng trình, ví dụ OB1 và chọn biểu t−ợng dùng biến hình thức ta sẽ chuyển sang dạng soạn thảo với những biến hình thức nh− đẫ đặt sẵn trong bảng Symbole. 52 Lập trình với SPS S7-300
  47. ví dụ : Hình 3-28: Màn hình soạn thảo với các tên biến hình thức. Muốn quay trở về để sử dụng lại các ký hiệu địa chỉ tuyệt đối ta nhấn lại nút đã chọn ban đầu là biểu t−ợng này nằm trên thanh công cụ . 3.5.Nạp ch−ơng trình và giám sát viêc thực hiện ch−ơng trình. 3.5.1. Nạp ch−ơng trình soạn thảo từ PC xuống CPU: Ch−ơng trình sau khi đã soạn thảo cần đ−ợc truyền xuống CPU. Để làm đ−ợc điều này, ta nhấn chuột trái vào biểu t−ợng này trên thanh công cụ và trả lời đầy đủ các câu hỏi. Chú ý khi nạp ch−ơng trình cần phải đặt CPU ở trạng thái Stop hoặc đặt CPU ở trạng thái RUN-P. 3.5.2.Xoá ch−ơng trình đ∙ có trong CPU: Để thực hiện việc nạp ch−ơng trình mới từ PC xuống CPU ta cần thực hiện công việc xoá ch−ơng trình đã có sẵn trong CPU. Điều này ta thực hiện các b−ớc nh− sau: - Đ−a trạng thái của CPU về STOP : Từ màn hình chính của Step7 ta chọn lệnh: Lập trình với SPS S7-300
  48. Hình 3-29 3.5.3.Quan sát việc thực hiên ch−ơng trình: Sau khi đã nạp ch−ơng trình soạn thảo xuống CPU lúc này ch−ơng trình đã đ−ợc ghi vào bộ nhớ của CPU. Khi đó ta có thể tách rời PC và CPU của S7 mà ch−ơng trình vẫn hoạt động bình th−ờng. Để thực hiện việc quan sát quá trình hoạt động của ch−ơng trình và CPU ta sử dụng chức năng giám sát ch−ơng trình bằng cách nhấn vào biểu t−ợng này trên thanh công cụ. Sau khi chọn chức năng giám sát ch−ơng trình này thì trên màn hình sẽ xuất hiện một cửa sổ sau: Tuỳ theo kiểu viết ch−ơng trình mà ta nhận đ−ợc sự khác nhau về kiểu hiển thị trên màn hình (D−ới đây sử dụng kiểu viết ch−ơng trình FBD). 54 Lập trình với SPS S7-300
  49. Hình 3-30: Quan sát quá trình hoạt động. Ngoài ra ta còn có thể quan sát đ−ợc nội dung của ô nhớ. Những ô nhớ muốn quan sát cần phải khai báo trong bảng Variable. Hình 3-31: Quan sát nội dung của ô nhớ. Sau khi khai báo tất cả các biến cần quan sát ta kích vào phím quan sát trên màn hình xuật hiện cửa sổ nh− hình trên. Tuỳ theo yêu cầu mà ta kích vào phím quan sát t−ơng ứng trên màn hình sẽ hiển thị nội dung của ô nhớ tại thời điểm hiện tại hay liên tục quan sát theo từng thời điểm. Lập trình với SPS S7-300
  50. Ch−ơng 4. Các hμm cơ bản: 4.1.Nhóm hàm Logic tiếp điểm: 1/ Hàm AND : Toán hạng là kiểu dữ liệu BOOL hay địa chỉ bit I,Q, M, T, C, D, L FBD LAD STL Hình 4-1: Cách khai báo hàm AND Tín hiệu ra Q4.0 sẽ bằng 1 khi đồng thời tín hiệu I0.0=1 và I0.1=1. Dữ liệu vào và ra : Vào: I0.0, I0.1: BOOL Ra : Q4.0 : BOOL 2/ Hàm OR : Toán hạng là kiểu dữ liệu BOOL hay địa chỉ bit I,Q, M, T, C, D, L. FBD LAD STL Hình 4-2: Khai báo hàm OR Tín hiệu ra sẽ bằng 1 khi ít nhất có một tín hiệu vào bằng 1. Dữ liệu vào và ra: Vào : I0.0, I0.1: BOOL Ra : Q4.0: BOOL 56 Lập trình với SPS S7-300
  51. 3/ Hàm NOT: FBD LAD STL Hình 4-3: Khai báo hàm thực hiện chức năng phủ định. Tín hiệu ra sẽ là nghich đảo của tín hiệu vào. Dữ liệu vào và ra: Vào : I0.0 : BOOL Ra : Q4.0 : BOOL 4/ Hàm XOR: Toán hạng là kiểu dữ liệu BOOL hay địa chỉ bit I, Q, M, T, C, D, L. FBD LAD STL Hình 4-4: Khối thực hiện chức năng XOR. Tín hiệu ra Q4.0= 1 khi I0.0 khác I0.2 Dữ liệu vào và ra: Vào: I0.0, I0.1 : BOOL Ra : Q4.0 : BOOL Lập trình với SPS S7-300
  52. 5/ Lệnh xoá RESET: Toán hạng là địa chỉ bit I, Q, M, T, C, D, L. FBD LAD STL Hình 4-5: Khối thực hiện chức năng RESET Tín hiệu ra Q4.0 = 0 (Q4.0 sẽ đ−ợc xoá ) khi I0.0 =1 . Dữ liệu vào và ra: Vào: I0.0 : BOOL Ra : Q4.0 : BOOL 6/ Lệnh SET: Toán hạng là địa chỉ bit I, Q, M, T, C, D, L. FBD LAD STL Hình 4-6: Khối thực hiện chức năng SET. Tín hiệu ra Q4.0 = 1 (Q4.0 sẽ đ−ợc thiết lập ) khi I0.0 =1. Dữ liệu vào và ra: Vào I0.0 : BOOL Ra Q4.0 : BOOL 58 Lập trình với SPS S7-300
  53. 7/Bộ nhớ RS: Toán hạng là địa chỉ bit I, Q, M, D, L. FBD LAD STL Hình 4-7: Khối thực hiện chức năng RS. Khi I0.0 = 1 và I0.1 =0 Merker M0.0 bị Reset và đầu ra Q4.0 là "0". Nếu I0.0 = 0 và I0.1 = 1 thì Set cho M0.0 và đầu ra Q4.0 là "1". Khi cả hai đầu vào Set va Reset cùng đồng thời =1 thì M0.0 và Q4.0 có giá trị là "1". Dữ liệu vào và ra: Vào I0.0, I0.1 : BOOL Ra Q4.0 : BOOL 8/ Bộ nhớ SR: Toán hạng là địa chỉ bit I, Q, M, D, L FBD LAD STL Hình 4-8: Khối thực hiện chức năng SR Khi I0.0 = 1 và I0.1 =0 thì Set cho Merker M0.0 và đầu ra Q4.0 là "1". Nếu I0.0 = 0 và I0.0 = 1 thì M0.0 bị Reset và đầu ra Q4.0 là "0". Khi cả hai đầu vào Set va Reset cùng đồng thời =1 thì M0.0 và Q4.0 có giá trị là "0". Dữ liệu vào và ra: Vào I0.0, I0.1 : BOOL Ra Q4.0 : BOOL Chú ý: Trong kỹ thuật số trạng thái của trigơ RS sẽ bị cấm khi R=1 và S=1. Nên ở đây có hai loại bộ nhớ RS và SR là loại Trigơ −u tiên R hay −u tiên S Lập trình với SPS S7-300
  54. 4.2. Nhóm hàm so sánh: 4.2.1.Nhóm hàm so sánh số nguyên 16 bit: FBD LAD STL Hình 4-9: Khối thực hiện chức năng so sánh bằng nhau Có các dạng so sánh hai số nguyên 16 bits nh− sau : • Hàm so sánh bằng nhau giữa hai số nguyên 16 bits: == • Hàm so sánh khác nhau giữa hai số nguyên 16 bits: • Hàm so sánh nhỏ hơn giữa hai số nguyên 16 bits: = • Hàm so sánh nhỏ hơn hoặc bằng nhau giữa hai số nguyên 16 bits: <= Trong ví dụ trên đầu ra Q4.0 sẽ là "1" khi MW0 = MW1. 4.2.2. Nhóm hàm so sánh hai số nguyên 32 bits: FBD LAD STL Hình 4-10: Khối thực hiện chức năng so sánh Trong ví dụ trên đầu ra Q4.0 sẽ là "1" khi MD0 = MD4. 60 Lập trình với SPS S7-300
  55. • Hàm so sánh bằng nhau giữa hai số nguyên 32 bits: == • Hàm so sánh khác nhau giữa hai số nguyên 32 bits: • Hàm so sánh nhỏ hơn giữa hai số nguyên 32 bits: = • Hàm so sánh nhỏ hơn hoặc bằng nhau giữa hai số nguyên 32 bits: • Hàm so sánh lớn hơn giữa hai số thực 32 bits: > • Hàm so sánh nhỏ hơn giữa hai số thực 32 bits: = • Hàm so sánh nhỏ hơn hoặc bằng nhau giữa hai số thực 32bits: <= Lập trình với SPS S7-300
  56. 4.3.Các hàm toán học: 4.3.1. Nhóm hàm làm việc với số nguyên 16 bits: 1/ Cộng hai số nguyên 16 bits: FBD LAD STL Hình 3-12: Khối thực hiện chức năng cộng hai số nguyên 16 bits. Dữ liệu vào và ra: EN: BOOL IN1: INT IN2: INT OUT: INT ENO: BOOL Khi tín hiệu vào I0.0 = 1 đầu ra Q4.0 = 1 và hàm sẽ thực hiện cộng hai số nguyên 16 bits MW0 với MW2. Kết quả đ−ợc cất vào MW10. Trong tr−ờng hợp tín hiệu vào I0.0 = 0 đầu ra Q4.0 = 0 và hàm sẽ không thực hiện chức năng. 2/ Trừ hai số nguyên 16 bits: FBD LAD STL Hình 4-13: Khối thực hiện chức năng trừ hai số nguyên 16 bits Dữ liệu vào và ra: 62 Lập trình với SPS S7-300
  57. EN : BOOL IN1: INT IN2: INT OUT: INT ENO: BOOL Khi tín hiệu vào I0.0 = 1 đầu ra Q4.0 = 1 và hàm sẽ thực hiện trừ hai số nguyên 16 bits MW0 với MW2. Kết quả đ−ợc cất vào MW10. Trong tr−ờng hợp tín hiệu vào I0.0 = 0 đầu ra Q4.0 = 0 và hàm sẽ không thực hiện chức năng. 3/ Nhân hai số nguyên 16 bits: FBD LAD STL Hình 4-14: Khối thực hiện chức năng nhân hai số 16 bits. Dữ liệu vào và ra: EN: BOOL IN1: INT IN2: INT OUT: IN ENO: BOOL Khi tín hiệu vào I0.0 = 1 đầu ra Q4.0 = 1 và hàm sẽ thực hiện nhân hai số nguyên 16 bits MW0 với MW2. Kết quả đ−ợc cất vào MW10. Trong tr−ờng hợp tín hiệu vào I0.0 = 0 đầu ra Q4.0 = 0 và hàm sẽ không thực hiện chức năng. 4/ Chia hai số nguyên 16 bits: FBD LAD STL Lập trình với SPS S7-300
  58. Hình 4-15: Khối thực hiện chức năng chia hai số nguyên 16 bits Khi tín hiệu vào I0.0 = 1 đầu ra Q4.0 = 1 và hàm sẽ thực hiện chia hai số nguyên 16 bits MW0 với MW2. Kết quả đ−ợc cất vào MW10. Trong tr−ờng hợp tín hiệu vào I0.0 = 0 đầu ra Q4.0 = 0 và hàm sẽ không thực hiện chức năng. 4.3.2.Nhóm hàm làm việc với số nguyên 32 bits: 1/ Cộng hai số nguyên 32 bits: Dữ liệu vào và ra: EN: BOOL IN1: DINT IN2: DINT OUT: DINT ENO: BOOL FBD LAD STL Hình 4-16: Khối thực hiện chức năng cộng hai số nguyên 32 bits Khi tín hiệu vào I0.0 = 1 đầu ra Q4.0 = 1 và hàm sẽ thực hiện công hai số nguyên 32 bits MD0 với MD4. Kết quả đ−ợc cất vào MD10. Trong tr−ờng hợp tín hiệu vào I0.0 = 0 đầu ra Q4.0 = 0 và hàm sẽ không thực hiện chức năng. 2/ Trừ hai số nguyên 32 bits: 64 Lập trình với SPS S7-300
  59. Khi tín hiệu vào I0.0 = 1 đầu ra Q4.0 = 1 và hàm sẽ thực hiện trừ hai số nguyên 32 bits MD0 với MD4. Kết quả đ−ợc cất vào MD10. Trong tr−ờng hợp tín hiệu vào I0.0 = 0 đầu ra Q4.0 = 0 và hàm sẽ không thực hiện chức năng. FBD LAD STL Hình 4-17: Khối thực hiện chức năng trừ hai số nguyên 32 bits Dữ liệu vào và ra: EN: BOOL IN1: DINT IN2: DIN OUT: DINT ENO: BOOL 3/ Nhân hai số nguyên 32 bits: Khi tín hiệu vào I0.0 = 1 đầu ra Q4.0 = 1 và hàm sẽ thực hiện nhân hai số nguyên 32 bits MD0 với MD4. Kết quả đ−ợc cất vào MD10. Trong tr−ờng hợp tín hiệu vào I0.0 = 0 đầu ra Q4.0 = 0 và hàm sẽ không thực hiện chức năng. FBD LAD STL Hình 4-18: Khối thực hiện chức năng nhân hai số nguyên 32 bit Dữ liệu vào và ra: EN: BOOL IN1: DINT IN2: DINT OUT: DINT ENO: BOOL 4/ Chia hai số nguyên 32 bits : Lập trình với SPS S7-300
  60. Khi tín hiệu vào I0.0 = 1 đầu ra Q4.0 = 1 và hàm sẽ thực hiện chia hai số nguyên 32 bits MD0 với MD4. Kết quả đ−ợc cất vào MD10. Trong tr−ờng hợp tín hiệu vào I0.0 = 0 đầu ra Q4.0 = 0 và hàm sẽ không thực hiện chức năng. Dữ liệu vào và ra: EN: BOOL IN1: DINT IN2: DINT OUT: DINT ENO: BOOL FBD LAD STL Hình 4-19: Khối thực hiện chức năng chia hai số nguyên 32 bits 4.3.3.Nhóm hàm làm việc với số thực: 1/ Cộng hai số thực: Khi tín hiệu vào I0.0 = 1 đầu ra Q4.0 = 1 và hàm sẽ thực hiện cộng hai số thực MD0 + MD4. Kết quả đ−ợc cất vào MD10. Trong tr−ờng hợp tín hiệu vào I0.0 = 0 đầu ra Q4.0 = 0 và hàm sẽ không thực hiện chức năng. FBD LAD STL Hình 4-20: Khối thực hiện chức năng cộng hai số thực Dữ liệu vào và ra: EN: BOOL IN1: REAL IN2: REAL OUT: REAL ENO: BOOL 66 Lập trình với SPS S7-300
  61. 2/ Hàm trừ hai số thực: Khi tín hiệu vào I0.0 = 1 đầu ra Q4.0 = 1 và hàm sẽ thực hiện trừ hai số thực MD0 - MD4. Kết quả đ−ợc cất vào MD10. Trong tr−ờng hợp tín hiệu vào I0.0 = 0 đầu ra Q4.0 = 0 và hàm sẽ không thực hiện chức năng. FBD LAD STL Hình 4-21: Khối thực hiện chức năng trừ hai số thực. Dữ liệu vào và ra: EN: BOOL IN1: REAL IN2: REAL OUT: REAL ENO: BOOL 3/ Nhân hai số thực: Khi tín hiệu vào I0.0 = 1 đầu ra Q4.0 = 1 và hàm sẽ thực hiện nhân hai số thực MD0 . MD4. Kết quả đ−ợc cất vào MD10. FBD LAD STL Hình 4-22: Khối thực hiện chức năng nhân hai số thực. Trong tr−ờng hợp tín hiệu vào I0.0 = 0 đầu ra Q4.0 = 0 và hàm sẽ không thực hiện chức năng. Dữ liệu vào và ra: Lập trình với SPS S7-300
  62. EN: BOOL IN1: REAL IN2: REAL OUT: REAL ENO: BOOL 4/ Chia hai số thực: Khi tín hiệu vào I0.0 = 1 đầu ra Q4.0 = 1 và hàm sẽ thực hiện chia hai số thực MD0 : MD4. Kết quả đ−ợc cất vào MD10. Trong tr−ờng hợp tín hiệu vào I0.0 = 0 đầu ra Q4.0 = 0 và hàm sẽ không thực hiện chức năng. FBD LAD STL Hình 4-23: Khối thực hiện chức năng nhân hai số thực Dữ liệu vào và ra: EN: BOOL IN1: REAL IN2: REAL OUT: REAL ENO: BOOL 5/ Hàm lấy giá trị tuyệt đối : ABS 68 Lập trình với SPS S7-300
  63. Khi tín hiệu vào I0.0 = 1 đầu ra Q4.0 = 1 và hàm sẽ thực hiên chức năng lấy gía trị tuyệt đối của MD8 rồi cất vào MD12 Khi tín hiệu vao I0.0 = 0 đầu ra Q4.0 = 0 và hàm sẽ không thực hiện chức năng. FBD LAD STL Hình 4-24: Khối thực hiện chức năng lấy giá trị thuyệt đối. Dữ liệu vào và ra: EN: BOOL IN: REAL OUT: REAL ENO: BOOL Ví dụ: MD8= -6,234 x 10-3 thi sau khi thực hiên chức năng ABS giá trị MD12 = 6,234 x 10-3. 6/ Hàm SIN, COS, TAN, ASIN, ACOS, ATAN: Khi tín hiệu vào I0.0 = 1 đầu ra Q4.0 = 1 và hàm sẽ thực hiên chức năng tinh SIN, COS, TAN, ASIN, ACOS, ATAN của MD0 rồi cất vào MD10. Khi tín hiệu vào I0.0 = 0 đầu ra Q4.0 = 0 và hàm sẽ không thực hiện chức năng. FBD LAD STL Hình 4-25: Khối thực hiện chức năng tính hàm Sin. Dữ liệu vào và ra: EN: BOOL IN: REAL OUT: REAL ENO: BOOL Lập trình với SPS S7-300
  64. 4.4.Nhóm hàm đổi kiểu dữ liệu : Trong ngôn ngữ lập trình của S7-300 có một số kiểu dữ liệu khác nhau nh−: - Số nguyên 16 bits (Interger) - Số nguyên 32 bits (DI) - Số nguyên dạng BCD. - Số thực REAL - và một số dạng dữ liệu khác . Khi làm việc với nhiều dạng dữ liệu khác nhau cho ta vấn đề cần phải chuyển đổi chúng. Ví dụ khi đọc tín hiệu từ cổng vào t−ơng tự ta nhận đ−ợc số liệu dạng nguyên 16 bits mang giá trị tín hiệu t−ơng tự chứ không phải bản thân giá trị đó, bởi vậy để xử lý tíêp thì cần thiết phải chuyển đổi số nguyên đó thành đúng giá trị thực, dấu phảy động của tín hiệu t−ơng tự ở cổng. Ta có một số hàm chuyển đổi các dạng dữ liệu nh− sau: 4.4.1.Hàm chuyển số BCD thành số số nguyên 16 bits: FBD LAD STL Hình 4-26: Chuyển đổi số BCD sang dạng số nguyên 16 bits. Dữ liệu vào và ra: EN: BOOL IN: WORD OUT: INT ENO: BOOL Khi tín hiệu vào I0.0 = 1 đầu ra Q4.0 = 1 và hàm thực hiên chức năng chuyển số BCD (MW10) sang số nguyên rồi cất vào MW12. Khi tin hiệu vào I0.0 = 0 đầu ra Q4.0 = 0 và hàm không thực hiên chức năng chuyển đổi. 70 Lập trình với SPS S7-300
  65. 4.4.2. Hàm chuyển đổi số nguyên 16 bits sang dạng BCD. FBD LAD STL Hình 4-27: Chuyển đổi số nguyên sang số BCD. Dữ liệu vào và ra: EN: BOOL IN: INT OUT: BCD ENO: BOOL Khi tín hiệu vào I0.0 = 1 đầu ra Q4.0 = 1 và hàm thực hiên chức năng chuyển số nguyên 16 bits (MW10) sang số BCD rồi cất vào MW12. Khi tin hiệu vào I0.0 = 0 đầu ra Q4.0 = 0 và hàm không thực hiên chức năng chuyển đổi. 4.4.3. Hàm chuyển đổi số nguyên 16 bits sang số nguyên 32 bits: FBD LAD STL Hình 4-28: Chuyển đổi số nguyên 16 bits sang số nhuyên 32 bits. Dữ liệu vào và ra: EN: BOOL IN: INT OUT: DINT ENO: BOOL Lập trình với SPS S7-300
  66. Khi tín hiệu vào I0.0 = 1 đầu ra Q4.0 = 1 và hàm thực hiên chức năng chuyển số nguyên 16 bits (MW10) sang số nguyên 32 bits rồi cất vào MW12. Khi tín hiệu vào I0.0 = 0 đầu ra Q4.0 = 0 và hàm không thực hiên chức năng chuyển đổi. 4.4.4.Chuyển đổi số BCD sang số nguyên 32 bits: Khi tín hiệu vào I0.0 = 1 đầu ra Q4.0 = 1 và hàm thực hiên chức năng chuyển số BCD (MW10) sang số nguyên 32 bits rồi cất vào MW12. Khi tín hiệu vào I0.0 = 0 đầu ra Q4.0 = 0 và hàm không thực hiện chức năng chuyển đổi. FBD LAD STL Hình 4-29: Chuyển số BCD sang số nguyên 32 bits -Kiểu dữ liệu vào/ra: EN: BOOL IN: DWORD OUT: DINT ENO: BOOL. 4.4.5.Hàm đảo giá trị các bits . 1/Với số nguyên có độ dài 16 bits: -Nguyên lý hoạt động: Hàm sẽ thực hiện chức năng chuyển đổi giá trị các bits trong MW8 rồi cất vào MW10 khi tín hiệu I0.0 =1. Đồng thời giá trị Q4.0 = 1. Khi I0.0 = 0, giá trị Q4.0 = 0 -Kiểu dữ liệu vào/ra: EN: BOOL IN: INT OUT: INT ENO: BOOL FBD LAD STL 72 Lập trình với SPS S7-300
  67. Hình 4-30: Hàm thực hiện chức năng đảo giá trị các bits -Ví dụ: Tr−ớc khi thực hiện Sau khi thực hiện 2/ Với số nguyên có độ dài 32 bits. FBD LAD STL Hình 4-31: Hàm thực hiện chức năng đảo giá trị các bits. -Nguyên lý hoạt động: Hàm sẽ thực hiện chức năng chuyển đổi giá trị các bits trong MD8 rồi cất vào MD12 khi tín hiệu I0.0 =1. Đồng thời giá trị Q4.0 = 1 . Khi I0.0 = 0, giá trị Q4.0 = 0 -Kiểu dữ liệu vào/ra: EN: BOOL IN: DINT OUT: DINT ENO: BOOL - Ví dụ: Tr−ớc khi thực hiện: MD8 = F0FF FFF0 Sau khi thực hiện : MD12 = 0F00 000F 4.4.6.Các hàm đổi dấu : Lập trình với SPS S7-300
  68. Hàm sẽ thực hiện chức năng đổi dấu dữ liệu vào . Các hàm đổi dấu nh− đổi dấu số thực độ dài 16bits ( I ), 32 bits ( DI ) hay số nguyên ( R ). FBD LAD STL Hình 4-32: Dạng dữ liệu vào: NEG_I NEG_DI NEG_R EN BOOL BOOL BOOL IN INT DI REAL OUT INT DI REAL ENO BOOL BOOL BOOL Ví dụ: Tr−ớc khi thực hiện MW8 = +10, sau khi thực hiện MW10 = -10. 4.4.7.Các hàm thực hiện chức năng làm tròn (đổi kiểu dữ liệu): 74 Lập trình với SPS S7-300
  69. FBD LAD STL Hình 4-33: -Hàm ROUND : (chuyển số thực thành số nguyên gần nhất) thực hiện làm tròn nh− sau: nếu phần lẻ 0,5 thì làm tròn lên. Ví dụ: 1,2 -> 1 ; 1,6 -> 2. -1,2 -> -1 ; -1,6 -> -2. -Hàm TRUNC: (lấy phần nguyên cắt bỏ phần lẻ) thực hiện làm tròn xuống giá trị tròn nhỏ ví dụ: dữ liệu vào từ 1,1 đến 1,9 -> 1. Lập trình với SPS S7-300
  70. -Hàm CEIL: thực hiện làm tròn lên. ví dụ: dữ liệu vào từ 1,1 đến 1,9 -> 2. -Hàm FLOOR: thực hiện làm tròn xuống. ví dụ: +1,7 -> 1 ; - 1,7 -> -2 4.5.Bộ thời gian: 4.5.1 Nguyên lý làm việc chung của bộ Timer. 76 Lập trình với SPS S7-300
  71. Bộ thời gian Timer là bộ tạo thời gian trễ T mong muốn giữa tín hiệu logic đầu vào X(t) và đầu ra Y(t) Hình 4-34: Sơ đồ khối bộ thời U(t) Y(t) gian. Timer T-bit PV CV S7-300 có 5 bộ thời gian Timer khác nhau. Tất cả 5 loại Timer này cùng bắt đầu tạo thời gian trễ tín hiệu kể từ thời điểm có s−ờn lên của tín hiệu đầu vào , tức là khi có tín hiệu đầu vào U(t) chuyển trạng thái từ logic "0" lên logic"1", đ−ợc gọi là thời điểm Timer đ−ợc kích. Thời gian trễ T mong muốn đ−ợc khai báo với Timer bằng giá trị 16 bits bao gồm hai thành phần : - Độ phân giải với đơn vị là mS. Timer của S7 có 4 loại phân giải khác nhau là 10ms, 100ms, 1s và 10s. - Một số nguyên BCD trong khoảng từ 0 đến 999 đ−ợc gọi là PV ( Preset Value- giá trị đặt tr−ớc). Nh− vậy thời gian trễ T mong muốn sẽ đ−ợc tính nh− sau : T= Độ phân giải x PV. Ngay tại thời điểm kích Timer, giá trị PV đ−ợc chuyển vào thanh ghi 16 bits của Timer T-Word ( gọi là thanh ghi CV- Curren value- giá trị tức thời). Timer sẽ ghi nhớ khoảng thời gian trôi qua kể từ khi kích bằng cách giảm dần một cách t−ơng ứng nội dung thanh ghi CV. Nếu nội dung thanh ghi CV trở về bằng 0 thì Timer đã đạt đ−ợc thời gian mong muốn T và điều này đ−ợc báo ra ngoài bằng cách thay đổi trạng thái tín hiệu đầu ra Y(t). Việc thông báo ra ngoài bằng cách đổi trạng thái tín hiệu dầu ra Y(t) nh− thế nào còn phụ thuộc vào loại Timer đ−ợc sử dụng. Bên cạnh s−ờn lên của tín hiệu đầu vào U(t), Timer còn có thể kích bằng s−ờn lên của tín hiệu kích chủ động có tên là tín hiệu ENABLE nếu nh− tại thời điểm có s−ờn lên của tín hiệu ENABLE, tín hiệu đầu vào U(t) có gic là "1". Lập trình với SPS S7-300
  72. Từng loại Timer đ−ợc đánh số từ 0 đến 255 (tuỳ thuộc vào từng loại CPU). Một Timer đ−ợc đặt tên là Tx, trong đó x là số hiệu của Timer ( 0<=x<=255). Ký hiệu Tx cũng đồng thời là tín hiệu hình thức của thanh ghi CV (T-Word) và đầu ra T-bits của Timer đó . Tuy chúng có cùng địa chỉ hình thức , nh−ng T- Word và T-bits vẫn đ−ợc phân biệt với nhau nhờ kiểu lệnh sử dụng toán hạng Tx. Khi dùng làm việc với từ Tx đ−ợc hiểu là T-Word còn khi làm việc với điểm thi Tx đ−ợc hiểu là T-bit. Để xóa tức thời trạng thái của T-word và T-bit ng−ời ta sử dụng một tín hiệu reset Timer . Tại thời điểm s−ờn lên của tín hiệu này giá trị T-Word và T-bit đồng thời có giá trị bằng 0 tức là thanh ghi tức thời CV đ−ợc đặt về 0 và tín hiệu đầu ra cũng có trạng thái Logic là "0". Trong thời gian tín hiệu Reset có giá trị logic là "1" Timer sẽ không làm việc. 4.5.2. Khai báo sử dụng: Các tín hiệu điều khiển cho một bộ Timer phải đ−ợc khai báo bao gồm các b−ớc sau: - Khai báo tín hiệu ENABLE nếu muốn sử dụng tín hiệu chủ động kích. - Khai báo tín hiệu đầu vào U(t). - Khai báo thời gian trễ mong muốn TW. - Khai báo loại Timer đ−ợc sử dụng (SP, SE, SD, SS, SF). - Khai báo tín hiệu xoá Timer nếu muốn sử dụng chế độ Reset chủ động. Trong các b−ớc trên thì b−ớc 1 và 5 có thể bỏ qua . - Dạng dữ liệu vào / ra của bộ Timer: S : BOOL BI (DUAL): WORD TW: S5TIME BCD (DEZ) : WORD R : BOOL Q : BOOL 1. Bộ thời gian SP: -Sơ đồ khối: 78 Lập trình với SPS S7-300
  73. FBD LAD STL Hình 4-35: Bộ thời gian SP. -Nguyên lý làm việc: Tại thời điểm s−ờn lên của tín hiệu vào SET thời gian sẽ đựơc tính đồng thời giá trị Logic ở đầu ra là "1". Khi thời gian đặt kết thúc giá trị đầu ra cũng trở về 0. Tín hiệu vào S Tín hiệu vào R Thời gian đặt Đầu ra Đầu ra đảo Hình 4-36: Giản đồ thời gian của bộ tạo trễ kiểu SP. Khi có tín hiệu RESET (R) thời gian tính lập tức trở về 0 và tín hiệu đầu ra cũng giá trị là "0". -Tr−ờng hợp không sử dụng các tín hiệu đầu vào SET(S), RESET ( R), BI và BCD ta sử dụng khối Timer SI sau: Lập trình với SPS S7-300
  74. Tín hiệu đầu vào I0.0 chính là tín hiệu kích. S5T#2s là thời gian đặt 2s Tín hiệu ra của bộ thời gian tác động tới đầu ra Q4.0 Hình 4-37: Ví dụ khai báo một bộ thời gian SP 2. Bộ thời gian SE. FBD LAD STL Hình 4-38: Khối hàm thời gian SE -Nguyên lý làm việc: Tại thời điểm s−ờn lên của tín hiệu vào SET cuối cùng bộ thời gian đựơc thiết lập và thời gian sẽ đựơc tính đồng thời giá trị Logic ở đầu ra là "1". Kết thúc thời gian đặt tín hiệu đầu ra sẽ trở về 0. tín hiệu vào S 80 Lập trình với SPS S7-300
  75. Tín hiệu vào R Thời gian đặt Đầu ra Đầu ra đảo Hình 4-39: Giản đồ thời gian khối SE Khi có tín hiệu RESET (R) thời gian tính lập tức trở về 0 và tín hiệu đầu ra cũng giá trị là "0". 3. Bộ thời gian SD. FBD LAD STL Hình 4-40: Sơ đồ khối hàm SD. -Nguyên lý làm việc: Tại thời điểm s−ờn lên của tín hiệu vào SET bộ thời gian đựơc thiết lập và thời gian sẽ đựơc tính. Kết thúc thời gian đặt tín hiệu đầu ra sẽ có giá trị là "1". Khi tín hiệu đầu vào kích S là "0" đầu ra cũng lập tức trở về "0" nghĩa là tín hiệu đầu ra sẽ không đ−ợc duy trì hi tín hiệu kích có giá trị là "0". tín hiệu vào S Lập trình với SPS S7-300
  76. Tín hiệu vào R Thời gian đặt Đầu ra Đầu ra đảo Hình 4-41: Giản đồ thời gian SD. Khi có tín hiệu RESET (R) thời gian tính lập tức trở về "0" và tín hiệu đầu ra cũng giá trị là "0". -Tr−ờng hợp không sử dụng các tín hiệu đầu vào SET(S), RESET ( R), BI và BCD ta sử dụng khối Timer SE sau: Tín hiệu đầu vào I0.0 chính là tín hiệu kích. S5T#2s là thời gian đặt 2s Tín hiệu ra của bộ thời gian tác động tới đầu ra Q4.0. Hình 4-42: ví dụ sử dụng khối hàm SD. 4. Bộ thời gian SS: FBD LAD STL 82 Lập trình với SPS S7-300
  77. Hình 4-43: Khai báo bộ thời gian SS . Tín hiệu vào S Tín hiệu vào R Thời gian đặt Đầu ra Đầu ra đảo Hình 4-44: Giản đồ thời gian hàm SS. -Nguyên lý làm việc: Tại thời điểm s−ờn lên của tín hiệu vào SET bộ thời gian đựơc thiết lập và thời gian sẽ đựơc tính. Kết thúc thời gian đặt tín hiệu đầu ra sẽ có giá trị 1 giá trị này vẫn duy trì ngay cả khi tín hiệu đầu vào kích S có giá trị là 0. Khi có tín hiệu RESET (R) thời gian tính lập tức trở về 0 và tín hiệu đầu ra cũng giá trị là "0". -Tr−ờng hợp không sử dụng các tín hiệu đầu vào SET(S), RESET (R), BI và BCD ta sử dụng khối Timer SS sau: Tín hiệu đầu vào I0.0 chính là tín hiệu kích. S5T#2s là thời gian đặt 2s Lập trình với SPS S7-300
  78. Tín hiệu ra của bộ thời gian tác động tới đầu ra Q4.0 Hình 4-45: Ví dụ sử dụng khối hàm SS 5. Bộ thời gian SA: FBD LAD STL Hình 4-46: Sơ đồ khối. -Nguyên lý làm việc: Tại thời điểm s−ờn lên của tín hiệu vào SET bộ thời gian đựơc thiết lập. Tín hiệu đầu ra có giá trị là 1. Nh−ng thời gian sẽ đựơc tính ở thời điểm s−ờn xuống cuối cùng của tín hiệu đầu vao SET(S). Kết thúc thời gian đặt tín hiệu đầu ra sẽ trở về 0. Tín hiệu vào S Tín hiệu vào R 84 Lập trình với SPS S7-300
  79. Thời gian đặt Đầu ra Đầu ra đảo Hình 4-47: Giản đồ thời gian. Khi có tín hiệu RESET (R) thời gian tính lập tức trở về 0 và tín hiệu đầu ra cũng giá trị là "0". -Tr−ờng hợp không sử dụng các tín hiệu đầu vào SET(S), RESET ( R), BI và BCD ta sử dụng khối Timer SF sau: Tín hiệu I0.0 là tín hiệu kích Thời gian đặt S5T#2s là 2s Hàm thời gian sẽ tác động tới đầu ra Q4.0 Hình 4-48: Sử dụng hàm SF. 4.6 Bộ đếm COUNTER: 4.6.1.Nguyên lý làm việc: Lập trình với SPS S7-300
  80. Counter thực hiện chức năng đếm tại các s−ờn lên của các xung đầu vào. S7- 300 có tối đa là 256 bộ đếm phụ thuộc vào từng loại CPU, ký hiệu bởi Cx. Trong đó x là số nguyên trong khoảng từ 0 đến 255. Trong S7-300 có 3 loại bộ đếm th−ờng sử dụng nhất đó là : Bộ đếm tiến lùi (CUD), bộ đếm tiến (CU)và bộ đếm lùi (CD). Một bộ đếm tổng quát có thể đ−ợc mô tả nh− sau: trong đó: CU : BOOL là tín hiệu đếm tiến CD : BOOL là tín hiệu đếm lùi S : BOOL là tín hiệu đặt PV : WORD là giá trị đặt tr−ớc R : BOOL là tín hiệu xoá CV : WORD Là giá trị đếm ở hệ đếm 16 CV_BCD: WORD là giá trị đếm ở hệ đếm BCD Q : BOOL Là tín hiệu ra . Hình 4-49: sơ đồ khối bộ đếm Counter Quá trình làm việc của bộ đếm đ−ợc mô tả nh− sau: Số s−ờn xung đếm đ−ợc, đ−ợc ghi vào thanh ghi 2 Byte của bộ đếm, gọi là thanh ghi C-Word. Nội dung của thanh ghi C-Word đ−ợc gọi là giá trị đếm tức thời của bộ đếm và ký hiệu bằng CV và CV_BCD. Bộ đếm báo trạng thái của C- Word ra ngoài C-bit qua chân Q của nó. Nếu CV <> 0 , C-bit có giá trị "1". Ng−ợc lại khi CV = 0, C- bit nhận giá trị 0. CV luôn là giá trị không âm. Bộ đếm sẽ không đếm lùi khi CV = 0. Đối với Counter, giá trị đặt tr−ớc PV chỉ đ−ợc chuyển vào C-Word tại thời điểm xuất hiện s−ờn lên của tín hiệu đặt tới chân S. Bộ đếm sẽ đ−ợc xoá tức thời bằng tín hiệu xoá R (Reset). Khi bộ đếm đ−ợc xóa cả C-Word và C- bit đều nhận giá trị 0. 4.6.2.Khai báo sử dụng: Việc khai báo sử dụng một Counter bao gồm các b−ớc sau: 86 Lập trình với SPS S7-300
  81. - Khai báo tín hiệu Enable nếu muốn sử dụng tín hiệu chủ động kích đếm (S): dạng dữ liệu BOOL - Khai báo tín hiệu đầu vào đếm tiến CU : dạng dữ liệu BOOL - Khai báo tín hiệu đầu vào đếm lùi CD : dạng dữ liệu BOOL - Khai báo giá trị đặt tr−ớc PV: dạng dữ liệu WORD - Khai báo tín hiệu xoá: dạng dữ liệu BOOL - Khai báo tín hiệu ra CV nếu muốn lấy giá trị đếm tức thời ở hệ 16. dạng dữ liệu WORD - Khai báo tín hiệu ra CV-BCD nếu muốn lấy giá trị đếm tức thời ở hệ BCD dạng dữ liệu WORD - Khai báo đầu ra Q nếu muốn lấy tín hiệu tác động của bộ đếm. dạng dữ liệu BOOL Trong đó cần chú ý các tín hiệu sau bắt buộc phải khai báo: Tên của bộ đếm cần sử dụng, tín hiệu kích đếm CU hoặc CD. 1. Bộ đếm tiến lùi: -Sơ đồ khối : FBD LAD STL Hình 4-50: Sơ đồ khối bộ đếm tiến lùi. -Nguyên lý hoạt động: Khi tín hiệu I0.2 chuyển từ 0 lên 1bộ đếm đ−ợc đặt giá trị là 55. Giá trị đầu ra Q4.0 =1 . Lập trình với SPS S7-300
  82. Bộ đếm sẽ thực hiên đếm tiến tại các s−ờn lên của tín hiệu tại chân CU khi tín hiệu I0.0 chuyển giá trị từ "0" lên "1" Bộ đếm sẽ đếm lùi tại các s−ờn lên của tín hiệu tại chân I0.1 khi tín hiệu chuyển từ "0" lên "1" Giá trị của bộ đếm sẽ trở về 0 khi có tín hiệu tai s−ờn lên của chân R ( I0.3) 2. Bộ đếm tiến : CU FBD LAD STL Hình 4-51: sơ đồ khối bộ đếm tiến. -Nguyên lý hoạt động: Khi tín hiệu I0.2 chuyển từ "0" lên "1" bộ đếm đ−ợc đặt giá trị là 55. Giá trị đầu ra Q4.0 =1 . Bộ đếm sẽ thực hiên đếm tiến tại các s−ờn lên của tín hiệu tại chân CU khi tín hiệu I0.0 chuyển giá trị từ "0" lên "1" Giá trị của bộ đếm sẽ trở về 0 khi có tín hiệu tai s−ờn lên của chân R (I0.3) Bộ đếm sẽ chỉ đếm đến giá trị <= 999. 3. Bộ đếm lùi: CD FBD LAD STL 88 Lập trình với SPS S7-300
  83. Hình 4-52: Sơ đồ khối bộ đếm lùi. -Nguyên lý hoạt động: Khi tín hiệu I0.2 chuyển từ "0" lên "1" bộ đếm đ−ợc đặt giá trị là 55. Giá trị đầu ra Q4.0 =1 . Bộ đếm sẽ thực hiên đếm lùi tại các s−ờn lên của tín hiệu tại chân CD khi tín hiệu I0.0 chuyển giá trị từ "0" lên"1" Giá trị của bộ đếm sẽ trở về 0 khi có tín hiệu tai s−ờn lên của chân R (I0.3). Bộ đếm sẽ chỉ đếm đến giá trị >= 0. 4.7.Khối chuyển dữ liệu: FBD LAD STL Hình 4-53: Sơ đồ khối MOV -Nguyên lý hoạt động: Khi có tín hệu kích I0.0 khối Copy đ−ợc thiết lập , tín hiệu đầu ra ENO là Q4.0 =1. Đồng thời số liệu ở đầu vào IN là MW0 đ−ợc Copy sang đầu ra OUT là MW2. Khi tín hiệu kích I0.0 = 0 tín hiệu đầu ra Q4.0 = 0. Trong tr−ờng hợp muốn thay đổi số liệu trong bộ nhớ (tức là thay đổi giá trị trong MW2) ta có thể không cần sử dụng tín hiệu kích I0.0. Lập trình với SPS S7-300
  84. 4.8.Các bộ ghi dịch và quay số liệu trên thanh ghi: 1. Dich phải số nguyên 16 bits: FBD LAD STL Hình 4-54: Sơ đồ khối dịch phải. Hình 4-55: Nguyên lý hoạt động. Khi tín hiệu kích I0.0 = 1 Khối sẽ thực hiện chức năng dich chuyển sang phải số liệu trong thanh ghi. Đồng thời tín hiệu ra tại ENO là Q4.0 có giá trị là 1. Số liệu đ−a vào tại IN là MW0 Số bit sẽ dich chuyển là MW2 ( tại chân N). Kết quả sau khi dịch đ−ợc cất vào MW4. Trên sơ đồ cho ta thấy kết quả của bộ dịch phải 4 bit. 2. Dich phải số nguyên 32 bits: -Sơ đồ khối: FBD LAD STL 90 Lập trình với SPS S7-300
  85. Hình 4-56: Khối dịch phải. Khi tín hiệu kích I0.0 = 1. Khối sẽ thực hiện chức năng dich chuyển sang phải số liệu trong thanh ghi. Đồng thời tín hiệu ra tại ENO là Q4.0 có giá trị là 1. Số liệu đ−a vào tại IN là MD0 Số bit sẽ dịch chuyển là MW2 (tại chân N). Kết quả sau khi dịch đ−ợc cất vào MW4. Trên sơ đồ cho ta thấy kết quả của bộ dịch phải 4 bit. 3. Dich trái 16 bit: -Sơ đồ khối: FBD LAD STL Lập trình với SPS S7-300
  86. Hình 4-57: Khối dịch trái. -Nguyên lý hoạt động: Khi có tín hiệu kích I0.0 = 1 tín hiệu ra Q4.0 đ−ợc thiết lập và có giá trị 1. Dữ liệu ở đầu vào MW0 đ−ợc dịch sang trái với số bit đ−ợc đặt tại chân N (MW2). Kết quả sau khi dịch đ−ợc ghi vào MW4. -Giản đồ thời gian: Hình 4-58: Giản đồ thời gian bộ dịch trái 6 vị trí. Chú ý: Trong tr−ờng hợp cần dich trái một số 32 bits ta chỉ cần khai báo dữ liệu ở đầu vào IN d−ới dạng MD ví dụ: MD0 và kết quả đầu ra cũng sẽ đ−ợc l−u giữ ở MD Ví dụ: MD4 4. Quay trái số 32 bits: -Sơ đồ khối: FBD LAD STL 92 Lập trình với SPS S7-300
  87. Hình 4-59: Sơ đồ khối quay trái. -Nguyên lý hoạt động: Khi có tín hiệu kích I0.0 = 1 tín hiệu ra Q4.0 đ−ợc thiết lập và có giá trị 1. Dữ liệu ở đầu vào MD0 đ−ợc quay sang tráI với số bit đ−ợc đặt tại chân N (MW4). Kết quả sau khi dịch đ−ợc ghi vào MD10. Hình 4-60: Giản đồ thời gian. 5. Quay phải số 32 bits: -Sơ đồ khối: Lập trình với SPS S7-300
  88. FBD LAD STL Hình 4-61: sơ đồ khối bộ quay phải. -Nguyên lý hoạt động: Khi có tín hiệu kích I0.0 = 1 tín hiệu ra Q4.0 đ−ợc thiết lập và có giá trị 1. Dữ liệu ở đầu vào MD0 đ−ợc quay phải với số bit đ−ợc đặt tại chân N (MW4). Kết quả sau khi dịch đ−ợc ghi vào MD10. Hình 4-62: Giản đồ thời gian của bộ dịch phải 3 vị trí số 32 bits. 4.9.Các hàm Logic thực hiện trên thanh ghi : 1. Hàm AND hai số có độ dài là 16 bits. 94 Lập trình với SPS S7-300
  89. -Sơ đồ khối: FBD LAD STL Hình 4-63: sử dụng khối AND 16 bits -Nguyênlý hoạt động: Hàm sẽ thực hiện chức năng nhân hai số nhị phân tai đầu vào IN1 và đầu vào IN2 kết quả đ−ợc cất ở OUT ( MW2) khi có tín hiệu kích tại chân EN (I0.0 =1). Tín hiệu ở đầu ra ENO (Q4.0 = 1) khi hàm thực hiện chức năng. -Ví dụ: IN1 = 0101010101010101 Số thứ nhất IN2 = 0100000000001111 Số thứ hai OUT = 0100000000000101 Kết quả 2. Hàm OR hai số có độ dài là 16 bits: -Sơ đồ khối : Lập trình với SPS S7-300
  90. FBD LAD STL Hình 4-64: Sử dụng khối OR 16 bits. -Nguyên lý hoạt động: Hàm sẽ thực hiện chức năng OR hai số nhị phân tai đầu vào IN1 và đầu vào IN2 kết quả đ−ợc cất ở OUT ( MW2) khi có tín hiệu kích tại chân EN (I0.0 = 1). Tín hiệu ở đầu ra ENO (Q4.0 = 1) khi hàm thực hiện chức năng. -Ví dụ: IN1 = 0101010101010101 Số thứ nhất IN2 = 0000000000001111 Số thứ Hai OUT = 0101010101011111 Kết quả 3.Hàm XOR hai số có độ dài 16 bits: 96 Lập trình với SPS S7-300
  91. -Sơ đồ khối: FBD LAD STL Hình 4-65: sơ đồ khối XOR 16 bits. -Nguyênlý hoạt động: Hàm sẽ thực hiện chức năng XOR hai số nhị phân tai đầu vào IN1 và đầu vào IN2 kết quả đ−ợc cất ở OUT khi có tín hiệu kích tại chân EN. Tín hiệu ở đầu ra ENO khi hàm thực hiện chức năng. -Ví dụ: IN1 = 0101010101010101 Số thứ nhất IN2 = 0000000000001111 Số thứ Hai OUT = 0101010101011010 Kết quả 4.Hàm AND hai từ kép: -Sơ đồ khối: FBD LAD STL Hình 4-66: Sử dụng khối AND hai từ kép . EN(I0.0): BOOL - tín hiệu kích IN1: DWORD - Vào 1 IN2: DWORD - vào2 OUT: DWORD - Ra ENO: BOOL - Tín hiệu ra của khối. Lập trình với SPS S7-300
  92. -Nguyên lý hoạt động: Hàm sẽ thực hiện chức năng AND hai số nhị phân tại đầu vào IN1 và đầu vào IN2 kết quả đ−ợc cất ở OUT khi có tín hiệu kích tại chân EN. Tín hiệu ở đầu ra ENO khi hàm thực hiện chức năng. -Ví dụ: IN1 = 0101010101010101 0101010101010101 IN2 = 0000000000000000 0000111111111111 OUT = 0000000000000000 0000010101010101 5.Hàm OR hai từ kép: -Sơ đồ khối: FBD LAD STL Hình 4-67: Sử dụng khối OR hai từ kép. EN(I0.0): BOOL - tín hiệu kích IN1: DWORD - Vào 1 IN2: DWORD - vào2 OUT: DWORD - Ra ENO: BOOL - Tín hiệu ra của khối. -Nguyên lý hoạt động: Hàm sẽ thực hiện chức năng OR hai số có độ dài 2 từ tại đầu vào IN1 và đầu vào IN2 kết quả đ−ợc cất ở OUT khi có tín hiệu kích tại chân EN. Tín hiệu ở đầu ra ENO khi hàm thực hiện chức năng. -Ví dụ: IN1 = 0101010101010101 0101010101010101 98 Lập trình với SPS S7-300
  93. IN2 = 0000000000000000 0000111111111111 OUT = 0101010101010101 0101111111111111 6.Hàm XOR hai từ kép : -sơ đồ nguyên lý: FBD LAD STL Hình 4-68: Sử dụng khối XOR hai từ kép. EN(I0.0): BOOL - tín hiệu kích IN1: DWORD - Vào 1 IN2: DWORD - vào2 OUT: DWORD - Ra ENO: BOOL - Tín hiệu ra của khối. -Nguyên lý hoạt động: Hàm sẽ thực hiện chức năng XOR hai số có độ dài 2 từ tại đầu vào IN1 và đầu vào IN2 kết quả đ−ợc cất ở OUT khi có tín hiệu kích tại chân EN. Tín hiệu ở đầu ra ENO khi hàm thực hiện chức năng. -Ví dụ: IN1 = 0101010101010101 0101010101010101 IN2 = 0000000000000000 0000111111111111 OUT = 0101010101010101 0101101010101010 Lập trình với SPS S7-300
  94. Tài liệu tham khảo 1.Tự động hoá với Simatic S7-200. Nhà xuất bản nông nghiệp,1997- Doãn Minh Ph−ớc, Phan Xuân Minh. 2.S5-95U và phần mềm Step5. Giáo trình giảng dạy của trung tâm đào tạo Simens tự động hoá tr−ờng ĐHBK Hà nội, 1997- Doãn Minh Ph−ớc, Phan Xuân Minh. 3.SPS-Grundkurs, Volgel Buchverlag- Juergen Kaftan. 4.Speicherprogrammierte Steuerungen Aufgaben mit Loesungen, Europa- Fachbuchreihe. 5.Tự động hoá với Simatic S7-300. Nhà xuất bản khoa học và kỹ thuật, 2000-Doãn Minh Ph−ớc, Phan Xuân Minh, Vũ Văn Hà . 100 Lập trình với SPS S7-300