Giáo trình môn Lập trình PLC

pdf 132 trang ngocly 100
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình môn Lập trình PLC", để 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_mon_lap_trinh_plc.pdf

Nội dung text: Giáo trình môn Lập trình PLC

  1. Lập trình PLC Biên tập bởi: Khoa CNTT ĐHSP KT Hưng Yên
  2. Lập trình PLC Biên tập bởi: Khoa CNTT ĐHSP KT Hưng Yên Các tác giả: Khoa CNTT ĐHSP KT Hưng Yên Phiên bản trực tuyến:
  3. MỤC LỤC 1. Chương 1: Tổng quan về PLC 1.1. MỞ ĐẦU 1.2. Lịch sử phát triển 1.3. Cấu trúc và nguyên lý làm việc của PLC 1.4. Phân loại 1.5. Cấu trúc phần cứng PLC S7-300 1.5.1. Hệ thống Module 1.5.2. Cấu trúc bộ nhớ 2. Chương 2 : Ngôn ngữ lập trình và ứng dụng 2.1. Giới thiệu các ngôn ngữ lập trình 2.2. Chu trình làm việc, lập trình và cấu trúc chương trình 2.3. Tập lệnh PLC S7 - 300 2.3.1. Nhóm lệnh logic tiếp điểm 2.3.2. Bộ đếm (Counter) 2.3.3. Bộ thời gian (Timer) 2.3.4. Các hàm so sánh 2.3.5. Các hàm toán học 2.3.6. Hàm di chuyển dữ liệu 2.3.7. Hàm logic thực hiện trên thanh ghi 2.3.8. Lệnh làm việc với tín hiệu tương tự 3. Chương 3 : Ngôn ngữ lập trinh Step 7 3.1. CÀI ĐẶT STEP 7 3.2. Soạn thảo một Project mới 3.3. Soạn thảo chương trình 3.4. Chạy thử, nạp chương trình xuống phần cứng, giám sát hoạt đọng của chương trình 4. Chương 4 : Lựa chọn, lắp đặt, kiểm tra và bảo trì hệ thống 4.1. Lựa chọn, lắp đặt, kiểm tra và bảo trì hệ thống Tham gia đóng góp 1/130
  4. Chương 1: Tổng quan về PLC MỞ ĐẦU Trong các hệ thống sản xuất, trong các thiết bị tự động và bán tự động, hệ thống điều khiển đóng vai trò điều phối toàn bộ các hoạt động của máy móc thiết bị. Các hệ thống máy móc và thiết bị sản xuất thường rất phức tạp, có rất nhiều đại lượng vật lý phải điều khiển để có thể hoạt động đồng bộ hoặc theo một trình tự công nghệ nhất định nhằm tạo ra một sản phẩm mong muốn. Từng đại lượng vật lý đơn lẻ có thể được điều khiển bằng một mạch điều khiển cơ sở dạng tương tự hay gián đoạn. Điều khiển nhiều đại lượng vật lý đồng thời chúng ta không thể dùng các mạch điều khiển tương tự mà phải sử dụng hệ thống điều khiển lô gíc. Trước đây các hệ thống điều khiển lô gíc được sự dụng là hệ thống lô gíc rơ le. Nhờ sự phát triển nhanh chóng của kỹ thuật điện tử, các thiết bị điều khiển lô gíc khả lập trình PLC (Programmable Logic Controller) đã xuất hiện vào năm 1969 thay thế các hệ thống điều khiển rơ le. Càng ngày PLC càng trở nên hoàn thiện và đa năng. Các PLC ngày nay không những có khả năng thay thể hoàn toàn các thiết bị điều khiển lo gíc cổ điển, mà còn có khả năng thay thế các thiêt bị điều khiển tương tự. Các PLC được sử dụng rộng rãi trong công nghiệp. Chức năng chính của PLC là kiểm tra trạng thái của các đầu vào và điều khiển các quá trình hoặc các hệ thống máy móc thông qua các tín hiệu trên chính đầu ra của PLC. Tổ hợp lô gíc của các đầu vào để tạo ra một hay nhiều tín hiệu ra được gọi là điều khiển lô gíc. Các tổ hợp lô gíc thường được thực hiện theo trình tự điều khiển hay còn gọi là chương trình điều khiển. Chương trình điều khiển được lưu trong bộ nhớ của PLC có thể bằng cách lập trình bằng thiết bị cầm tay nối trực tiếp với PLC hoặc lập trình trên máy tính cá nhân nhờ các phần mềm chuyên dụng và truyền vào PLC qua mạng hay qua cáp truyền dữ liệu. Bộ xử lý tín hiệu, thường là các bộ vi xử lý tốc độ cao, thực hiện chương trình điều khiển theo chu kỳ. Khoảng thời gian thực hiện một chu trình điều khiển từ lúc kiểm tra các tín hiệu vào, thực hiện các phép tính lo gíc hoặc đại số để có được tín hiệu điều khiển, cho đén khi phát tín hiệu đến đầu ra được goi là chu kỳ thời gian quét. 2/130
  5. PLC trong công nghiệp thường có cấu hình đơn giản nhất, bởi vì các chương trình trình điều khiển quá trình công nghệ hay máy móc thường được hoạt động 24/24 và không cần bất cứ sự can thiệp của con người trong quá trình điều khiển. PLC chỉ dừng quét chương trình điều khiển khi ngắt nguồn hoặc khi công tắc ngừng được kích hoạt. Sơ đồ khối đơn giản hoá của PLC được thể hiện trên hình Trên đầu vào của PLC có thể có các kênh tín hiệu tương tự hoặc các kênh tín hiệu số. Các kênh tín hiệu này xuất phát từ các cảm biến, từ các công tắc hành trình, công tắc đóng ngắt mạch điện hoặc từ các biến lô gíc tương ứng với các các trạng thái của máy móc, thiết bị. Tín hiệu vào được bộ xử lý trung tâm xử lý nhờ các phép tính lô gíc hay số học và kết quả là các tín hiệu ra. Các tín hiệu tín hiệu ra là các tín hiệu truyền điện năng đến cho các cơ cấu chấp hành như cuộn hút, đèn hiệu, động cơ vv. Điện áp trên đầu vào của PLC là điện áp công suất thấp, tương ứng với mức từ 0V đến 5V một chiều. Khi ta nối các đầu vào có mức điện áp cao hơn 5V, thường phải dùng các kênh có các mạch chuyển đổi để biến điện áp vào thành điện áp tương đương với mức +/ư 5VDC. Điện áp trên đầu ra của PLC có thể có nhiều mức điện áp khác nhau, nhưng đều có mức năng lượng thấp. Nếu cần phải điều khiển cơ cấu chấp hành có mức năng lượng cao hơn, ta phải sử dụng các thiết bị khuyếch đại công suất. 3/130
  6. Lịch sử phát triển Vào khoảng năm 1968, các nhà sản xuất ô tô đã đưa ra các yêu cầu kỹ thuât đầu tiên cho thiết bị điêù khiển lô gíc khả lập trình. Mục đích đầu tiên là thay thế cho các tủ điêu khiển cồng kềnh, tiêu thụ nhiều điện năng và thường xuyên phải thay thể các rơ le do hỏng cuộn hút hay gẫy các thanh lò xo tiếp điểm. Mục đích thứ hai là tạo ra một thiều bị điều khiển có tính linh hoạt trong việc thay đổi chương trình điều khiển. Các yêu cầu kỹ thuật này chính là cơ sở của các máy tính công nghiệp, mà ưu điểm chính của nó là sự lập trình dễ dàng bởi các kỹ thuật viên và các kỹ sư sản xuất. Với thiết bị điều khiển khả lập trình, người ta có thể giảm thời gian dừng trong sản xuất, mở rộng khả năng hoàn thiện hệ thống sản xuất và thích ứng với sự thay đổi trong sản xuất. Một số nhà sản xuất thiết bị điều khiển trên cơ sở máy tính đã sản xuất ra các thiết bị điều khiển khả lập trình còn gọi là PLC. Những PLC đầu tiên được ứng dụng trong công nghiệp ô tô vào năm 1969 đã đem lại sự ưu việt hơn hẳn các hệ thống điều khiển trên cơ sở rơ le. Các thiết bị này được lập trình dễ dàng, không chiếm nhiều không gian trong các xưởng sản xuất và có độ tin cậy cao hơn các hệ thống rơ le. Các ứng dụng của PLC đã nhanh chóng rộng mở ra tất cả các ngành công nghiệp sản xuất khác. Hai đặc điểm chính dẫn đến sự thành công của PLC đó chính là độ tin cậy cao và khả năng lập trình dễ dàng. Độ tin cậy của PLC được đảm bảo bởi các mạch bán dẫn được thiết kế thích ứng với môi trường công nghiệp. Các mạch vào ra được thiết kế đảm bảo khả năng chống nhiễu, chịu được ẩm, chịu được dầu, bụi và nhiệt độ cao. Các ngôn ngữ lập trình đầu tiên của PLC tương tự như sơ đồ thang trong các hệ thống điều khiển lô gíc, nên các kỹ sư đã làm quen với sơ đồ thang, dễ dàng thích nghi với việc lập trình mà không cần phải qua một quá trình đào tạo nào. Một số các ứng dụng của máy tính trong sản xuất trong thời gian đầu bị thất bại, cũng chính vì việc học sử dụng các phần mềm máy tính không dễ dàng ngay cả với các kỹ sư. Khi các vi xử lý được đưa vào sử dụng trong những năm 1974 – 1975, các khả năng cơ bản của PLC được mở rộng và hoàn thiện hơn. Các PLC có trang bị vi xử lý có khả năng thực hiện các tính toán và xử lý số liệu phức tạp, điều này làm tăng khả năng ứng dụng của PLC cho các hệ thống điều khiển phức tạp. Các PLC không chỉ dừng lại ở chổ là các thiết bị điều khiển lô gíc, mà nó còn có khả năng thay thế cả các thiết bị điều khiển tương tự. Vào cuối những năm bảy mươi việc truyền dữ liệu đã trở nên dễ dàng nhờ sự phát triển nhảy vọt của công nghiệp điện tử. Các PLC có thể điều khiển các thiết bị cách xa hàng vài trăm mét. Các PLC có thể trao đổi dữ liệu cho nhau và việc điều khiển quá trình sản xuất trở nên dễ dàng hơn. 4/130
  7. Thiết bị điều khiển khả lập trình PLC chính là các máy tính công nghiệp dùng cho mục đích điều khiển máy, điều khiển các ứng dụng công nghiệp thay thế cho các thiết bị “cứng” như các rơ le, cuộn hút và các tiếp điểm. Ngày nay chúng ta có thể thấy PLC trong hàng nghìn ứng dụng công nghiệp. Chúng được sử dụng trong công nghiệp hoá chất, công nghiệp chế biến dầu, công nghiệp thực phẩm, công nghiệp cơ khí, công nghiệp xử lý nước và chất thải, công nghiệp dược phẩm, công nghiệp dệt may, nhà máy điện hạt nhân, trong công nghiệp khai khoáng, trong giao thông vận tải, trong quân sự, trong các hệ thống đảm bảo an toàn, trong các hệ thống vận chuyển tự động, điều khiển rô bốt, điều khiển máy công cụ CNC vv. Các PLC có thể được kêt nối với các máy tính để truyền, thu thập và lưu trữ số liệu bao gồm cả quá trình điều khiển bằng thống kê, quá trình đảm bảo chất lượng, chẩn đoán sự cố trực tuyến, thay đổi chương trình điều khiển từ xa. Ngoài ra PLC còn được dùng trong hệ thống quản lý năng lượng nhằm giảm giá thành và cải thiện môi trường điều khiển trong các các hệ thống phục vụ sản xuất, trong các dịch vụ và các văn phòng công sở. Sự ra đời của máy tính cá nhân PC trong những năm tám mươi đã nâng cao đáng kể tính năng và khả năng sử dụng của PLC trong điều khiển máy và quá trình sản xuất. Các PC giá thành không cao có thể sử dụng như các thiêt bị lập trình và là giao diện giữa người vận hành và hệ thống điêu khiển. Nhờ sự phát triển của các phần mềm đồ hoạ cho máy tính cá nhân PC, các PLC cũng được trang bị các giao diện đồ hoạ để có thể mô phỏng hoặc hiện thị các hoạt động của từng bộ phận trong hệ thống điêu khiển. Điều này có ý nghĩa đặc biệt quan trọng đối với các máy CNC, vì nó tạo cho ta khả năng mô phỏng trước quá trình gia công, nhằm tránh các sự cố do lập trình sai. Máy tính cá nhân PC và PLC đều được sử dụng rộng rãi trong các hệ thống điều khiển sản xuất và cả trong các hệ thống dịch vụ. PLC được sản xuất bởi nhiều hãng khác nhau trên thế giới. Về nguyên lý hoạt động, các PLC này có tính năng tương tự giống nhau, nhưng về lập trình sử dụng thì chúng hoàn toàn khác nhau do thiết kế khác nhau của mỗi nhà sản xuất. PLC khác với các máy tính là không có ngôn ngữ lập trình chung và không có hệ điều hành. Khi được bất lên thì PLC chỉ chạy chương trình điều khiển ghi trong bộ nhớ của nó, chứ không thể chạy được hoạt động nào khác. Một số hãng sản xuất PLC lớn có tên tuổi như: Siemens, Toshiba, Mishubisi, Omron, Allan Bradley, Rocwell, Fanuc là các hãng chiếm phần lớn thị phần PLC thế giới. Các PLC của các hãng này được ứng dụng rộng rãi trong công nghiệp sử dụng công nghệ tự động hoá. Các thiết bị điều khiển PLC tạo thêm sức mạnh, tốc độ và tính linh hoạt cho các hệ thống công nghiệp. Bằng sự thay thế các phần tử cơ điện bằng PLC, quá trình điều khiển trở nên nhanh hơn, rẻ hơn, và quan trọng nhất là hiệu quả hơn. PLC là sự lựa chọn tốt hơn các hệ thống rơ le hay máy tính tiêu chuẩn do một số lý do sau: 5/130
  8. -Tốn ít không gian: Một PLC cần ít không gian hơn một máy tính tiêu chuẩn hay tủ điều khiển rơ le để thực hiện cùng một cức năng. - Tiết kiệm năng lượng: PLC tiêu thụ năng lượng ở mức rất thấp, ít hơn cả các máy tính thông thường. -Giá thành thấp : Một PLC giá tương đương cỡ 5 đến 10 rơ le, nhưng nó có khả năng thay thế hàng trăm rơ le. - Khả năng thích ứng với môi trường công nghiệp: Các vỏ của PLC được làm từ các vật liệu cứng, có khả năng chống chịu được bụi bẩn, dầu mỡ, độ ẩm, rung động và nhiễu. Các máy tính tiêu chuẩn không có khả năng này. - Giao diện tực tiếp: Các máy tính tiêu chuẩn cần có một hệ thống phức tạp để có thể giao tiếp với môi trường công nghiệp. Trong khi đó các PLC có thể giao diện trực tiếp nhờ các mô đun vào ra I/O. - Lập trình dễ dàng: Phần lớn các PLC sử dụng ngôn ngữ lập trình là sơ đồ thang, tương tự như sơ đồ đấu của các hệ thống điều khiển rơ le thông thường. - Tính linh hoạt cao: Chương trình điều khiển của PLC có thể thay đổi nhanh chóng và dễ dàng bằng cách nạp lại chương trình điều khiển mới vào PLC bằng bộ lập trình, bằng thẻ nhớ, bằng truyền tải qua mạng. 6/130
  9. Cấu trúc và nguyên lý làm việc của PLC Cấu trúc chung PLC là thiết bị điều khiển logic khả trình (Program Logic Control), là loại thiết bị cho phép thực hiện linh hoạt các thuật toán điều khiển số thông qua 1 ngôn ngữ lập trình, thay cho việc phải thể hiện thuật toán đó bằng mạch số. Cũng như các thiết bị lập trình khác, hệ thống lập trình cơ bản của PLC bao gồm 2 phần: khối xử lý trung tâm (CPU) và hệ thống giao tiếp vào/ra (I/O) như sơ đồ khối: 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 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: 1. 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. 7/130
  10. 2. 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. 3. 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. 4. 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. Một PLC có đầy đủ các chức năng như: bộ đếm, bộ định thời, các thanh ghi (registers) và tập lệnh cho phép thực hiện các yêu cầu điều khiển phức tạp khác nhau. Hoạt động của PLC hoàn toàn phụ thuộc vào chương trình nằm trong bộ nhớ, nó luôn cập nhật tín hiệu ngõ vào, xử lý tín hiệu để điều khiển ngõ ra. Để đánh giá một bộ PLC người ta dựa vào 2 tiêu chuẩn chính: Dung lượng bộ nhớ và số tiếp điểm vào/ra của nó. Bên cạnh đó cũng cần chú ý đến các chức năng như: Bộ vi xử lý, chu kỳ xung clock, ngôn ngữ lập trình, khả năng mở rộng số cổng vào/ra. Bên cạnh đó, một bộ PLC hoàn chỉnh còn đi kèm thêm một đơn vị lập trình bằng tay hay bằng máy tính. Hầu hết các đơn vị lập trình đơn giản đều có đủ RAM để chứa đựng chương trình dưới dạng hoàn thiện hay bổ sung. Nếu đơn vị lập trình là đơn vị xách tay, RAM thường là loại CMOS có pin dự phòng, chỉ khi nào chương trình đã được kiểm tra và sẵn sàng sử dụng thì nó mới truyền sang bộ nhớ PLC. Đối với các PLC lớn thường lập trình trên máy tính nhằm hỗ trợ cho việc viết, đọc và kiểm tra chương trình. Các đơn vị lập trình nối với PLC qua cổng RS232, RS422, RS458, 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ố. 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, PLC 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ị vào để từ đó có thể đưa ra những tín hiệu điều khiển tương ứng đến các thiết bị ra. 8/130
  11. 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ằng 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 (Digital Input) hoặc AI (Analog Input), Đố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ị ngoài, các thiết bị ngoài 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ị vào, các thiết bị ngoài được nối đến các cổng ra của modul ra (output). Các modul ra này có thể là DO (Digital Output) hoặc AO (ra tương tự). Nguyên lý làm việc CPU điều khiển các hoạt động bên trong PLC. Bộ xử lý sẽ đọc và kiểm tra chương trình được chứa trong bộ nhớ, sau đó sẽ thực hiện thứ tự từng lệnh trong chương trình, sẽ đóng hay ngắt các đầu ra. Các trạng thái ngõ ra ấy được phát tới các thiết bị liên kết để thực thi. Và toàn bộ các hoạt động thực thi đó đều phụ thuộc vào chương trình điều khiển được giữ trong bộ nhớ. PLC thực chất chạy bằng mã máy với hệ thống số nhị phân, do đó tốc độ quét vòng chương trình có thể đạt đến vài phần ngàn giây, các Software dùng để lập trình PLC tích hợp cả phần biên dịch. Các dòng lệnh khi lập trình chúng ta đưa từ chương trình vào thì trình biên dịch sẽ chuyển đổi sang mã máy và ghi từng bit “0” hay bit “1” lên đúng vào vị trí có địa chỉ đã được quy ước trước trong PLC lên PC được thực thi xảy ra ngược lại và trình biên dịch đã làm xong nhiệm vụ của mình trước khi trả chương trình lên Monitor Hệ thống Bus là tuyến dùng để truyền tín hiệu, hệ thống gồm nhiều đường tín hiệu song song: 9/130
  12. - Address Bus: Bus địa chỉ dùng để truyền địa chỉ đến các Modul khác nhau. - Data Bus: Bus dùng để truyền dữ liệu. - Control Bus: Bus điều khiển dùng để truyền các tín hiệu định thì và điều khiển đồng bộ các hoạt động trong PLC. Trong PLC các số liệu được trao đổi giữa bộ vi xử lý và các modul vào ra thông qua Data Bus. Address Bus và Data Bus gồm 8 đường, ở cùng thời điểm cho phép truyền 8 bit của 1 byte một cách đồng thời hay song song. Nếu một modul đầu vào nhận được địa chỉ của nó trên Address Bus, nó sẽ chuyển tất cả trạng thái đầu vào của nó vào Data Bus. Nếu một địa chỉ byte của 8 đầu ra xuất hiện trên Address Bus, modul đầu ra tương ứng sẽ nhận được dữ liệu từ Data bus. Control Bus sẽ chuyển các tín hiệu điều khiển vào theo dõi chu trình hoạt động của PLC. Các địa chỉ và số liệu được chuyển lên các Bus tương ứng trong một thời gian hạn chế. Hệ thống Bus sẽ làm nhiệm vụ trao đổi thông tin giữa CPU, bộ nhớ và I/O. Bên cạch đó, CPU được cung cấp một xung Clock có tần số từ 1¸8 MHZ. Xung này quyết định tốc độ hoạt động của PLC và cung cấp các yếu tố về địnhthời, đồng hồ của hệ thống. * Vòng quét của chương trình: 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: 10/130
  13. 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. 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ảngthờ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ênviế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. 11/130
  14. Ưu nhược điểm của PLC trong công nghiệp Đặc điểm 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ế. Tóm lại: Ở những hệ thống relay cũ để điều khiển đóng ngắt một thiết bị sau khi thực thi tác vụ theo một khoảng thời gian xác định, chúng ta hay dùng các bộ Timer Controller, khi đếm các sự kiện, sản phẩm, chúng ta dùng các bộ Counter Controller có thể là bằng số cơ khí hay hiển thị bằng Led 7 đoạn, LCD các giá trị cài đặt được thao tác trên các bộ controller này, nhưng vấn đề sẽ bắt đầu phức tạp dần khi trong hệ thống cần nhiều bộ timer hay counter riêng lẻ nhưng phải phối hợp có hệ thống trong một tác vụ liên tục và không có tính lặp lại, lúc này tủ điều khiển của ta bắt đầu quá tải về số lượng controller, dây nối điều khiển, cable nguồn bắt đầu tăng lên và khi hệ thống cần sự thay đổi các tham số trong quá trình điều khiển chúng ta sẽ tốn rất nhiều công sức để lần lượt thiết lập từng bộ Timer hay Counter. Quá phức tạp. Chúng ta chưa tính đến khả năng lão hoá các thiết bị, tính chính xác sẽ từ từ kém đi theo thời gian, chưa tính đến khả năng hư hỏng tức thời của số lượng thiết bị này sẽ tiều tốn của chúng ta khá nhiều tiền chi cho việc chuẩn đoán và thay thế và chúng ta còn chưa tính đến số thời gian vô ích khi ngừng hệ thống không vận hành sản xuất được, có lẽ các sự kiện nêu trên hoàn toàn đúng với công thức: “Xác suất của số lần hỏng hóc sẽ tăng tỷ lệ thuận với tổng số các thiết bị có tham gia trong quá trình điều khiển”. Đặc điểm hệ thống điều khiển dùng 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 . 12/130
  15. - 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ị vào, ra. - 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 . - 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. - Lập trình dễ dàng, ngôn ngữ lập trình dễ học. - Gọn nhẹ, dễ dàng bảo quản, sửa chữa. - Dung lượng bộ nhớ lớn để có thể chứa được những chương trình phức tạp. - Hoàn toàn tin cậy trong môi trường công nghiệp. - Giao tiếp được với các thiết bị thông minh khác như: máy tính, nối mạng, các Modul mở rộng. - Độ tin cậy cao, kích thước nhỏ. - Giá cả có thể cạnh tranh được. Đặc trưng của PLC là khả năng có thể lập trình được, chỉ số IP ở dải quy định cho phép PLC hoạt động trong môi trường khắc nghiệt công nghiệp, yếu tố bền vững thích nghi, độ tin cậy, tỉ lệ hư hỏng rất thấp, thay thế và hiệu chỉnh chương trình dễ dàng, khả năng nâng cấp các thiết bị ngoại vi hay mở rộng số lượng đầu vào nhập và đầu ra xuất được đáp ứng tuỳ nghi trong khả năng trên có thể xem là các tiêu chí đầu tiên cho chúng ta khi nghĩ đến thiết kế phần điều khiển trung tâm cho một hệ thống hoạt động tự động. Ứng dụng của PLC trong công nghiệp 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. 13/130
  16. - 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. - Quản lý tự động bãi đậu xe. - Hệ thống báo động. - Dây chuyề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 . 14/130
  17. Phân loại Về hình dạng Có hai kiểu cơ cấu thông dụng với các hệ thống PLC là kiểu hộp đơn và kiểu modul nối ghép. Kiểu hộp đơn thường được sử dụng cho các thiết bị điều khiển lập trình cỡ nhỏ và được cung cấp dưới dạng nguyên chiếc hoàn chỉnh. Kiểu modul ghép nối: gồm nhiều modul riêng cho bộ nguồn, CPU, cổng vào/ra được lắp trên thanh ray. Kiểu này có thể sử dụng cho các thiết bị lập trình ở mọi kích cỡ. Về số lượng các đầu vào/ra Căn cứ vào số lượng các đầu vào/ ra, ta có thể phân PLC thành bốn loại sau: - Micro PLC là loại có dưới 32 kênh vào/ ra - PLC nhỏ có đến 256 kênh vào/ ra - PLC trung bình có đến 1024 kênh vào/ ra - PLC cỡ lớn có trên 1024 kênh vào/ra. Các micro – PLC thường có ít hơn 32 đầu vào/ra. Trên hình 1.2 là ví dụ về micro PLC họ T100MD-1616 do hãng Triangle Research International sản xuất. Cấu tạo tương đối đơn giản và toàn bộ các bộ phận được tích hợp trên một bảng mạch có kích thước nhỏ gọn. Micro – PLC có cấu tạo gồm tất cả các bộ phận như bộ xử lý tín hiệu, bộ nguồn, các kênh vào/ra trong một khối. Các Micro – PLC có ưu điểm hơn các PLC nhỏ là giá thành rẻ, dễ lắp đặt. Một loại micro PLC khác là DL05 của hãng Koyo, loại này có 30 kênh vào/ ra 15/130
  18. Một loại micro-PLC khác là loại xê ri 90 của Fanuc. Loại này có 8 kênh vào và 8 kênh ra. PLC loại nhỏ có thể có đến 256 đầu vào/ra. Trên hình 1.5 là PLC của hãng OMRON loại ZEN – 10C. Loại PLC này có 34 kênh vào/ ra gồm: 6 kênh vào và 4 kênh ra trên mô đun CPU, còn lại 3 mô đun vào/ ra, với 4 kênh vào và 4 kênh ra cho mỗi mô đun. 16/130
  19. Hãng Siemens có các PLC loại nhỏ như S5-90U, S5-95U, S5-100U (hình 1.6), S7 – 200 là các loại PLC loại nhỏ, có số lượng kênh vào/ ra nhỏ hơn 256. Cấu tạo của các PLC loại nhỏ cũng tương tự như cấu tạo của các PLC loại trung bình, vì đều là dạng mô đun. Điểm khác biệt là dung lượng bộ nhớ, số lượng kênh vào/ ra của các mô đun khác nhau về độlớn và tốc độ xử lý thông tin cũng khác nhau. PLC của Siemens được dùng rộng rãi ở trong hầu hết các nước có nền công nghiệp phát triển. Các PLC trung bình có thể có dến 1024 đầu vào/ra. Loại CJ1M của Omron trên hình 1.8 có 320 kênh vào/ ra. Loại PLC CQM1 hay CQMIH của Omron trên hình có 512 kênh vào ra 17/130
  20. Hãng Siemens có một số xê ri S7-200 là cácloại PLC hạng trung bình. Số lượng kênh vào/ra của S-300 có thể trong khoảng từ 256 đến 1024. Các PLC loại lớn có nhiều hơn 1024 đầu vào/ra. Loại này có tốc độ xử lý rất cao, dung lượng bộ nhớ lớn và thường được dùng trong điều khiển các hệ thống thiết bị công nghệ phức tạp. Hãng Omron có PLC loai CJ1 trên hình 1.10, là loại có tới 1280 kênh vào/ ra và loại CJ1H có tới 2560 kênh vào/ra. Hãng Omron còn có loai CS1 trên hình, là loại PLC cỡ lớn với 5120 kênh vào/ ra 18/130
  21. Các PLC loại lớn của Siemens là các loại xê ri S7-300, S7-400. Các loại này có số lượng kênh vào/ ra rất lớn. Các kênh này không thể đấu trực tiếp lên PLC mà phải thông qua các bộ dồn kênh và tách kênh ( demultiplexeur và multiplexeur). Trên hình 1.12 là PLC S7ư400 của Siemens. Đây là loại PLC mạnh nhất của Siemens hiện nay. Cấu hình của PLC này được biểu diễn bằng hình. Các PLC trung bình và lớn có các mô đun vào/ra có thể lắp ráp với nhau trên cùng một giá đỡ tiêu chuẩn, cho phép lắp thêm hoặc tháo bớt ra mà không cần tắt nguồn. Các PLC được kết nối với nhau thông qua mạng ETHERNET công nghiệp 19/130
  22. Hình 1.13a.Cấu trúc của S7-400 Hình 1.14. Sơ đồ kết nối mạng của S7-400 trong công nghiệp 20/130
  23. Các PLC loại lớn thường dùng để điều khiển ở mức cao. ở mức thấp thường là các thiết bị điều khiển tương tự, hay thiết bị điều khiển số với các PLC loại nhỏ, hay loại trung bình. ở mức thấp, chủ yếu là các thiết bị điều khiển trực tiếp các thiết bị công nghệ, các cơ cấu chấp hành, các động cơ, bơm, van, cuộn hút, đèn hiệu vv. Điều khiển ở mức cao bao gồm các điều khiển liên quan đến phần quản lý hệ thống và quản lý dữ liệu của hệ thống điều khiển. ở mức này, các dữ liệu có thể được thu thập từ các các thiết bị điều khiển mức thấp hoặc từ bên ngoài hệ thống thông qua mạng nội bộ và mạng Internet. Các dữ liệu từ các PLC được truyền về các máy tính trung tâm để lưu trữ và xử lý. Trường hợp các hệ thống sản xuất tự động có điều khiển bằng thống kê, đây chính là điều khiển ở mức cao, tương ứng với cấu trúc quản lý của hệ thống. Hoạt động của hệ thống điều khiển được điều chỉnh dựa theo kết quả phân tích, đánh giá từ các dữ liệu thống kê, như vậy giúp cho việc sản xuất luôn ở dạng tối ưu nhất và hiệu quả nhất. PLC S7-400 của Siemens là một trong những loại PLC lớn và rất mạnh trong các hệ thống điều khiển sản xuất qui mô như các nhà máy công nghiệp. Loại PLC này có thể kết nối trực tiếp qua mạng Ethernet công nghiệp với các thiết bị điều khiển mức cao hơn để trao đổi dữ liệu hoặc thông các các các kênh giao diện khác như MPI , PROFIBUS, EIB hay giao diện AS để thu thập dữ liệu và điều khiển như hình 1.14. Về hãng sản xuất và sản phẩm Có nhiều hãng sản xuất PLC. Chúng ta chọn 4 hãng tiêu biểu gồm: Mitsubishi, Omron, Siemens, Telemecanique. CP1L - Thế hệ Micro PLC mới cho tương lai Tối đa 160 I/O, RS-232 / 485 / 422 - Kết nối với môđun mở rộng CPM1 - Bộ nhớ 5/10Kstep, có memory unit ngoài - Lập trình cổng USB bằng CX-P V7.1 - Chạy mô phỏng bằng CX-Simulator CPM1A, CPM2A - Loại Micro PLC thông dụng 21/130
  24. CP1H - Loại Compact PLC cao cấp (All-In-One) PLC cỡ vừa – CJ1M 22/130
  25. Cách thể hiện các dòng lệnh và nguyên tắc gọi và thực thi chương trình cũng như các công cụ dùng để gỡ rối khi thảo chương rất giống nhau ở cú pháp và cách thể hiện. Trên nền tảng phù hợp các ứng dụng, tính kinh tế, tính cạnh tranh, các nhà sản xuất PLC đã giới thiệu khá nhiều dòng sản phẩm phù hợp trong dãy sản phẩm của mình, các sản phẩm có ứng dụng đơn giản như (Logo-Siemens, Alpha-Mitsubishi, Zen-Omron, Smart- Telemecanique). Chúng ta sẽ quan tâm tới các họ PLC có điạ chỉ vào/ra trên dưới 512 I/O (512 input/ output) bộ nhớ chương trình tăng đến 32KB hoặc 64KB Step và các thành phần ngoại vi kết nối thêm có thể điều khiển trong các hệ thống tự động vừa và nhỏ, đơn lẻ, gần như đáp ứng hầu hết các yêu cầu điều khiển theo ý đồ của các nhà thiết kế. Mitsubishi: (Software mô tả GX-Developer V8.0Up) họ Fx-xx của hãng tuân thủ quy ước gán địa chỉ mang tính kế thừa và phát triển trong tương lai (chỉ nói về các địa chỉ cho các cổng vào/ra, và các ngõ vào và ra này sẽ được nối trực tiếp với các thiết bị ra lệnh và chấp hành bên ngoài). Ví dụ: Ở dòng Fx-xx có địa chỉ ngõ vào InputDigital được gán theo nhóm từng byte, bắt đầu là byte 0 tương ứng chúng ta có các địa chỉ: X000 đến X007 (8 bit = 1 byte) hay còn gọi là hệ cơ số 8. Như vậy, ở nhóm byte thứ 2 tiếp theo quy ước gán địa chỉ sẽ bắt đầu bằng X010 đến X017 địa chỉ ngõ ra được gán ký hiệu Y và bắt đầu từ Y000 đến Y007 tuân thủ tương tự như cách gán ngõ vào X Các địa chỉ được gán theo quy ước trên chỉ bao gồm trong dòng sản phẩm PLC có seri FX, các dòng sau từ seri A, Q-A đã được nâng cấp lên nhóm 2 byte như vậy địa chỉ 23/130
  26. được gán lúc này sẽ bắt đầu bằng X000 cho đến X007, tuân theo thứ tự đếm của hệ cơ số 16 Trải qua hơn 25 năm, từ khi Mitsubishi Electric giới thiệu PLC gọn đầu tiên trên thị trường châu Au. Từ đó Mitsubishi đã trở nên hãng dẫn đầu thế giới trong khu vực này, với hơn 6 triệu trong số những sự cài đặt bộ điều khiển. Với những kích thước gọn của họ và chi phí thấp những bộ điều khiển được mở ra viễn cảnh mới trong kỹ thuật tự động công nghiệp. Nhiều ứng dụng cho tự động hóa . Loạt FX3U mà bây giờ đang được giới thiệu là họ PLCs gọn vô cùng thành công của Mitsubishi Electric thế hệ thứ ba. Tính tương thích - nhờ phạm vi bộ cấp điện (tiếp điện) rộng của họ những bộ điều khiển FX có thể được sử dụng khắp thế giới. Tính Toàn cầu - Những bộ điều khiển MELSEC FX phù hợp với tất cả các tiêu chuẩn công nghiệp quốc tế chính. 24/130
  27. FX1N kết hợp những lợi ích của một bộ điều khiển gọn không đắt với những khả năng mở rộng linh hoạt của một hệ điều khiển mô đun. Nó có thể được mở rộng cho tới 128 đầu vào và những đầu ra và với một phạm vi toàn diện của những mô đun chức năng đặc biệt. FX1N cũng làm nổi bật một bộ điều khiển định vị tổng hợp mạnh. Thẻ truyền thông của FX1N và những khả năng nối dữ liệu làm cho nó trở nên lý tưởng cho những ứng dụng nơi kích thước phần cứng bộ điều khiển, những đặc tính truyền thông, những chức năng và tốc độ xử lý đặc biệt là mọi thứ phê bình. Những ưu điểm của loạt FX1N: - 14 tới 128 đầu vào và những đầu ra - Tốc độ xử lý cao - Ample lập trình dung lượng nhớ (những bước 8,000) và những phạm vi thiết bị - Hợp nhất bộ điều khiển định vị - Toàn diện phạm vi của chức năng và những mô đun mở rộng đặc biệt cho những yêu cầu riêng lẻ - Tích hợp bộ điều khiển PID - Cung cấp kết nối để mở những mạng - Tích hợp đồng hồ thời gian thực - Giao diện lập trình thân thiện với đơn vị lập trình bộ phần mềm ứng dụng hay cầm tay lập trình trên nền Windows MS Sự xử lý tín hiệu tương tự với những bộ tiếp hợp mở rộng để chọn 25/130
  28. The FX2N đã đặt những tiêu chuẩn trong khu vực kỹ thuật tự động công nghiệp và là một trong những bộ điều khiển tiêu thụ- lớn nhất worldwide. Nó có nhiều đặc tính bình thường được tìm thấy trong những bộ điều khiển lớn hơn Chỉ dẫn FX2N lôgíc là một trong những hệ thống PLC gọn nhanh nhất sẵn có. Nó có những khả năng truyền thông và một phạm vi rộng của sự mở rộng rộng lớn và những mô đun chức năng đặc biệt sẵn có cho cấu hình của những hệ thống chính xác. Hãng Siemens (Đức) PAC Sản phẩm tích hợp giữa PLC và WinCC lập trình điều khiển và mô phỏng hệ thống điều khiển tự động 26/130
  29. 27/130
  30. Cấu trúc phần cứng PLC S7-300 Hệ thống Module PLC S7-300 cấu trúc dạng module gồm các thành phần sau: • CPU các loại khác nhau: 312IFM, 312C, 313, 313C, 314, 314IFM, 314C, 315, 315-2 DP, 316-2 DP, 318-2, • Module tín hiệu SM xuất nhập tín hiệu tương đồng /số: SM321, SM322, SM323, SM331, SM332,SM334, SM338, SM374 • Module chức năng FM • Module truyền thông CP • Module nguồn PS307 cấp nguồn 24VDC cho các module khác, dòng 2A, 5A, 10A • Module ghép nối IM: IM360, IM361, IM365 Các module được gắn trên thanh rây như hình dưới, tối đa 8 module SM/FM/CP ở bên phải CPU, tạo thành một rack, kết nối với nhau qua bus connector gắn ở mặt sau của module . Mỗi module được gán một số slot tính từ trái sang phải, module nguồn là slot 1, module CPU slot 2, module kế mang số 4 Nếu có nhiều module thì bố trí thành nhiều rack (trừ CPU312IFM và CPU313 chỉ có một rack), CPU ở rack 0, slot 2, kế đó là module phát IM360, slot 3, có nhiệm vụ kết nối rack 0 với các rack 1, 2, 3, trên mỗi rack này có module kết nối thu IM361, bên phải mỗi module IM là các module SM/FM/CP. Cáp nối hai module IM dài tối đa 10m. Các module được đánh số theo slot và dùng làm cơ sở để đặt địa chỉ đầu cho các module ngõ vào ra tín hiệu. Đối với CPU 315-2DP, 316-2DP, 318-2 có thể gán địa chỉ tùy ý cho các module. 28/130
  31. Mỗi địa chỉ tương ứng với một byte. Với các module số địa chỉ một ngõ vào hay ra là x.y, x là địa chỉ byte, y có giá trị từ 0 đến 7. Ví dụ module SM321 DI 32 có 32 ngõ vào gắn kế CPU slot 4 có địa chỉ là I0.y, I1.y, I2.y, I3.y, I là ký hiệu chỉ ngõ vào số. Module analog có địa chỉ theo word, ví dụ module SM332 AO4 có 4 ngõ ra analog gắn ở slot 5 rack 1 có địa chỉ PQW400, PQW402, PQW404, PQW406, ngõ ra số có ký hiệu là Q còn ngõ vào analog ký hiệu là PIW. Các CPU 312IFM, 314 IFM, 31xC có tích hợp sẵn một số module mở rộng • CPU 312IFM, 312C: 10 ngõ vào số địa chỉ I124.0 I124.7, I125.1; 6 ngõ ra số Q124.0 Q124.5. • CPU 313C: 24 DI I124.0 126.7, 16DO Q124.0 125.7, 5 ngõ vào tương đồng AI địa chỉ 752 761, hai ngõ ra AO 752 755 • CPU 314IFM: 20 ngõ vào số I124.0 I126.3; 16 ngõ ra số Q124.0 Q125.7; 4 ngõ vào tương đồng PIW128, PIW130, PIW132, PIW134; một ngõ ra tương đồng PQW128. Module CPU Các module CPU khác nhau theo hình dạng chức năng, vận tốc xử lý lệnh. Loại 312IFM, 314IFM không có thẻ nhớ. Loại 312IFM, 313 không có pin nuôi. Loại 315-2DP, 316-2DP, 318-2 có cổng truyền thông DP. Các đèn báo có ý nghĩa sau: - SF (đỏ) lỗi phần cứng hay mềm, - BATF (đỏ) lỗi nguồn nuôi, - DC5V (lá cây) nguồn 5V bình thường, - FRCE (vàng ) force request tích cực 29/130
  32. - RUN (lá cây) CPU mode RUN ; LED chớp lúc start-up w. 1 Hz; mode HALT w. 0.5 Hz - STOP mode (vàng) CPU mode STOP hay HALT hay start-up; LED chớp khi memory reset request - BUSF (đỏ) lỗi phần cứng hay phần mềm ở giao diện PROFIBUS Khóa mode có 4 vị trí: - RUN-P chế độ lập trình và chạy - RUN chế độ chạy chương trình - STOP ngừng chạy chương trình - MRES reset bộ nhớ Thẻ nhớ có thể có dung lượng từ 16KB đến 4MB, chứa chương trình từ PLC chuyển qua và chuyển chương trình ngược trở lại cho CPU. Pin nuôi giúp nuôi chương trình và dữ liệu khi bị mất nguồn (tối đa 1 năm), ngoài ra còn nuôi đồng hồ thời gian thực. Với loại CPU không có pin nuôi thi cũng có một phần vùng nhớ được duy trì. Thông qua cổng truyền thông MPI (MultiPoint Interface) có thể nối : máy tính lập trình, màn hình OP (Operator panel) , các PLC có cổng MPI (S7-300, M7-300, S7-400, M7-400, C7-6xx), S7-200, vận tốc truyền đến 187.5kbps (12Mbps với CPU 318-2, 10.2 kbps với S7-200) . Cổng Profibus –DP nối các thiết bị trên theo mạng Profibus với vận tốc truyền lên đến 12Mbps. 30/130
  33. * Các vùng nhớ của PLC Vùng nhớ chương trình (load memory) chứa chương trình người dùng (không chứa địa chỉ ký hiệu và chú thích) có thể là RAM hay EEPROM trong CPU hay trên trên thẻ nhớ. Vùng nhớ làm việc (working memory) là RAM, chứa chương trình do vùng nhớ chương trình chuyển qua; chỉ các phần chương trình cần thiết mới được chuyển qua, phần nào không cần ở lại vùng nhớ chương trình , ví dụ block header, data block Vùng nhớ hệ thống (system memory) phục vụ cho chương trình người dùng, bao gồm timer , counter, vùng nhớ dữ liệu M, bộ nhớ đệm xuất nhập Trên CPU 312IFM và 314 IFM vùng nhớ chương trình là RAM và EEPROM; các CPU khác có pin nuôi, vùng nhớ chương trình là RAM và thẻ nhớ. Khi mất nguồn hay ở chế độ MRES ( reset bộ nhớ) RAM sẽ bị xóa. Một số vùng nhớ của RAM ( timer, counter, vùng nhớ M, khối dữ liệu ) có thể khai báo là lưu giữ (retentive) bằng phần mềm S7 để chuyển các vùng này sang bộ nhớ lưu giữ (NVRAM non volative ) dù không có pin nuôi, kích thước cụ thể tùy loại CPU. Bảng sau cho một số thông số chính của các CPU 31/130
  34. 32/130
  35. Module nguồn nuôi (PS) Module nguồn nuôi. Có 3 loại:2A, 5A, 10A. Module mở rộng cổng tín hiệu vào/ra (SM) Module vào số có các loại sau: • SM 321; DI 32 _ 24 VDC • SM 321; DI 16 _ 24 VDC • SM 321; DI 16 _ 120 VAC, 4*4 nhóm • SM 321; DI 8 _ 120/230 VAC, 2*4 nhóm • SM 321; DI 32 _ 120 VAC 8*4 nhóm Module ra số: • SM 322; DO 32 _ 24 VDC/0.5 A, 8*4 nhóm • SM 322; DO 16 _ 24 VDC/0.5 A, 8*2 nhóm • SM 322; DO 8 _ 24 VDC/2 A, 4*2 nhóm • SM 322; DO 16 _ 120 VAC/1 A, 8*2 nhóm • SM 322; DO 8 _ 120/230 VAC/2 A, 4*2 nhóm • SM 322; DO 32_ 120 VAC/1.0 A, 8*4 nhóm • SM 322; DO 16 _ 120 VAC ReLay, 8*2 nhóm • SM 322; DO 8 _ 230 VAC Relay, 4*2 nhóm • SM 322; DO 8 _ 230 VAC/5A Relay,1*8 nhóm 33/130
  36. Module vào/ ra • SM 323; DI 16/DO 16 _ 24 VDC/0.5 A • SM 323; DI 8/DO 8 _ 24 VDC/0.5 A Module Analog in Module analog in có nhiều ngõ vào, dùng để đo điện áp, dòng điện, điện trở ba dây, bốn dây, nhiệt độ. Có nhiều tầm đo, độ phân giải, thời gian chuyển đổi khác nhau. Cài đặt thông số hoạt động cho module bằng phần mềm S7- Simatic 300 Station – Hardware và/hoặc chương trình người dùng sử dụng hàm SFC 55, 56, 57 phù hợp (xem mục ) và/ hoặc cài đặt nhờ mo±dulle tầm đo (measuring range module) gắn trên module SM. Kết quả chuyển đổi là số nhị phân phụ hai với bit MSB là bit dấu. SM331 AI 2*12 : module chuyển đổi hai kênh vi sai áp hoặc dòng, hoặc một kênh điện trở 2/3/4 dây, dùng phương pháp tích phân, thời gian chuyển đổi từ 5ms đến 100ms, độ phân giải 9, 12, 14 bit + dấu, các tầm đo như sau: ±80 mV; ±250 mV; ± 500 mV; ±1000 mV; ± 2.5 V; ± 5 V;1 5 V; ± 10 V; ± 3.2 mA; ± 10 mA; ± 20 mA; 0 20 mA; 4 20 mA. Điện trở 150 ?; 300 ?; 600 ?; Đo nhiệy độ dùng cặp nhiệt E, N, J, K, L, nhiệt kế điện trở Pt 100, Ni 100. Các thông số mặc định đã được cài sẵn trên module, kết hợp với đặt vị trí của module tầm đo (bốn vị trí A, B, C, D) nếu không cần thay đổi thì có thể sử dụng ngay 34/130
  37. 35/130
  38. • SM331, AI 8*12bit , 8 kênh vi sai chia làm hai nhóm, độ phân giải 9 (12, 14 ) bit + dấu • SM331, AI 8*16bit , 8 kênh vi sai chia làm 2 nhóm , độ phân giải 15 bit + dấu Module Analog Out: Cung cấp áp hay dòng phụ thuộc số nhị phân phụ hai - SM332 AO 4*12 bit: 4 ngõ ra dòng hay áp độ phân giải 12 bit, thời gian chuyển đổi 0.8 ms . - SM332 AO 2*12 bit - SM332 AO 4*16 bit Module Analog In/Out - SM 334; AI 4/AO 2 * 8 Bit - SM334; AI 4/AO 2* 12 Bit 36/130
  39. Module ghép nối (IM) Module IM360 gắn ở rack 0 kế CPU dùng để ghép nối với module IM361 đặt ở các rack 1, 2, 3 giúp kết nối các module mở rộng với CPU khi số module lớn hơn 8. Cáp nối giữa hai rack là loại 368. Trong trường hợp chỉ có hai rack, ta dùng loại IM365. 37/130
  40. Module có chức năng điều khiển riêng (FM) • FM350-1 : đếm xung một kênh • FM350-2 : đếm xung tám kênh • FM351, 353, 354, 357-2 : điều khiển định vị • FM352: bộ điều khiển cam điện tử • FM355: bộ điều khiển hệ kín Module phục vụ truyền thông (CM) Module 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 38/130
  41. Cấu trúc bộ nhớ Kiểu dữ liệu 39/130
  42. Vùng nhớ dữ liệu, đối tượng và cách truy cập PLC thường yêu cầu bộ nhớ trong các trường hợp: Làm bộ định thời cho các kênh trạng thái I/O. Làm bộ đệm trạng thái các chức năng trong PLC như định thời, đếm, ghi các Relay. Mỗi lệnh của chương trình có một vị trí riêng trong bộ nhớ, tất cả mọi vị trí trong bộ nhớ đều được đánh số, những số này chính là địa chỉ trong bộ nhớ. Địa chỉ của từng ô nhớ sẽ được trỏ đến bởi một bộ đếm địa chỉ ở bên trong bộ vi xử lý. Bộ vi xử lý sẽ giá trị trong bộ đếm này lên một trước khi xử lý lệnh tiếp theo. Với một địa chỉ mới, nội dung của ô nhớ tương ứng sẽ xuất hiện ở đầu ra, quá trình này được gọi là quá trình đọc. Bộ nhớ bên trong PLC được tạo bởi các vi mạch bán dẫn, mỗi vi mạch này có khả năng chứa 2000 - 16000 dòng lệnh , tùy theo loại vi mạch. Trong PLC các bộ nhớ như RAM, EPROM đều được sử dụng. + RAM (Random Access Memory) có thể nạp chương trình, thay đổi hay xóa bỏ nội dung bất kỳ lúc nào. Nội dung của RAM sẽ bị mất nếu nguồn điện nuôi bị mất. Để tránh tình trạng này các PLC đều được trang bị một pin khô, có khả năng cung cấp năng lượng dự trữ cho RAM từ vài tháng đến vài năm. Trong thực tế RAM được dùng để khởi tạo và kiểm tra chương trình. Khuynh hướng hiện nay dùng CMOS RAM nhờ khả năng tiêu thụ thấp và tuổi thọ lớn. 40/130
  43. + EPROM (Electrically Programmable Read Only Memory) là bộ nhớ mà người sử dụng bình thường chỉ có thể đọc chứ không ghi nội dung vào được. Nội dung của EPROM không bị mất khi mất nguồn, nó được gắn sẵn trong máy, đã được nhà sản xuất nạp và chứa hệ điều hành sẵn. Nếu người sử dụng không muốn mở rộng bộ nhớ thì chỉ dùng thêm EPROM gắn bên trong PLC. Trên PG (Programer) có sẵn chỗ ghi và xóa EPROM. + EEPROM (Electrically Erasable Programmable Read Only Memory) liên kết với những truy xuất linh động của RAM và có tính ổn định. Nội dung của nó có thể được xóa và lập trình bằng điện, tuy nhiên số lần là có giới hạn. Môi trường ghi dữ liệu thứ tư là đĩa cứng hoặc đĩa mềm, được sử dụng trong máy lập trình. Đĩa cứng hoặc đĩa mềm có dung lượng lớn nên thường được dùng để lưu những chương trình lớn trong một thời gian dài. * Kích thước bộ nhớ: - Các PLC loại nhỏ có thể chứa từ 300 -1000 dòng lệnh tùy vào công nghệ chế tạo. - Các PLC loại lớn có kích thước từ 1K - 16K, có khả năng chứa từ 2000 -16000 dòng lệnh. Ngoài ra còn cho phép gắn thêm bộ nhớ mở rộng như RAM, EPROM. Cấu trúc bộ nhớ: Bộ nhớ gồm 48KB RAM, 48KB ROM, không có khả năng mở rộng và tốc độ xử lý gần 0.3ms trên 1000 lệnh nhị phân, bộ nhớ được chia trên các vùng: + Vùng chứa chương trình ứng dụng: - OBx (Organisation block): Miền chứa chương trình tổ chức, trong đó: - Khối OB1: Khối tổ chức chính, mặc định, thực thi lặp vòng. Nó được bắt đầu khi quá trình khởi động hoàn thành và bắt đầu trở lại khi nó kết thúc. - Khối OB10 (Time of day interrupt): được thực hiện khi có tín hiệu ngắt thời gian. - Khối OB20 (Time delay interrupt): được thực hiện sau 1 khoảng thời gian đặt trước. - Khối OB35 (Cyclic Interrupt): khối ngắt theo chu kì định trước - Khối OB40 (Hardware Interrupt): được thực hiện khi tín hiệu ngắt cứng xuất hiện ở ngõ vào I124.0 I124.3 - FC (Function): 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 phân biệt bởi các số nguyên. Ví dụ: 41/130
  44. FC1, FC7, FC30ngoài ra còn có các hàm SFC là các hàm đã được tích hợp sẵn trong hệ điều hành. - FB (Function Block): tương tự như FC, FB còn phải xây dựng 1khối dữ liệu riêng gọi là DB (Data Block) và cũng có các hàm SFB là các hàm tích hợp sẵn trong hệ điều hành. + Vùng chứa các tham số hệ điều hành và chương trình ứng dụng: - I (Process image input): Miền bộ đệm dữ liệu các ngõ vào số. Trước khi bắt đầu thực hiện chương trình, PLC sẽ đọc tất cả giá trị logic của các cổng vào rồi cất giữ chúng trong vùng I. khi thực hiện chương trình CPU sẽ sử dụng các giá trị trong vùng I mà không đọc trực tiếp từ ngõ vào số. - Q (Process image output): tương tự vùng I, miền Q là bộ đệm dữ liệu cổng ra số. Khi kết thúc chương trình, PLC sẽ chuyển giá trị logic của bộ đệm Q tới các cổng ra số. - M (Memory): Miền các biến cờ. Do vùng nhớ này không mất sau mỗi chu kỳ quét nên chương trìng ứng dụng sẽ sử dụng vùng nhớ này để lưu giữ các tham số cần thiết. Có thể truy nhập nó theo bit (M), byte (MB), theo từ (MW) hay từ kép (MD). - T (Timer): Miền nhớ phục vụ bộ thời gian bao gồm việc lưu trữ các giá trị đặt trước (PV-Preset Value), các giá trị tức thời (CV-Current Value) cũng như các giá trị logic đầu ra của Timer. - C (Counter): Miền nhớ phục vụ bộ đếm bao gồm việc lưu giữ các giá trị đặt trước (PV- Preset Value), các giá trị tức thời (CV-Current Value) cũng như các giá trị logic đầu ra của Counter. - PI: Miền địa chỉ cổng vào của các module tương tự (I/O External input). Các giá trị tương tự tại cổng vào của module tương tự sẽ được module đọc và chuyển tự động theo những địa chỉ. Chương trình ứng dụng có thể truy cập miền nhớ PI theo từng byte (PIB), từng từ (PIW) hoặc theo từng từ kép (PID). - PQ: Miền địa chỉ cổng ra của các module tương tự (I/O External output). Các giá trị tương tự tại cổng vào của module tương tự sẽ được module đọc và chuyển tự động theo những địa chỉ. Chương trình ứng dụng có thể truy cập miền nhớ PI theo từng byte (PQB), từng từ (PQW) hoặc theo từng từ kép (PQD). + Vùng chứa các khối dữ liệu, được chia thành 2 loại: • DB (Data block): Miền chứa các dữ liệu được tổ chúc thành khối. Kích thước hay số lượng khối do người sử dụng qui định. Có thể truy nhập miền này theo từng bit (DBX), byte( DBB), từng từ (DBW), từ kép (DBD). 42/130
  45. • L (Local data block): Miền dữ liệu địa phương, được các khối chương trình OB, FC, FB tổ chức và sử dụngcho các biến nháp tức thời và trao đổi dữ liệu của biến hình thức với những khối đã gọi nó. Toàn bộ vùng nhớ sẽ bị xoá sau khi khối thực hiện xong. Có thể truy nhập theo từng bit (L), byte (LB), từ LW), hoặc từ kép (LD). Kích thước các vùng nhớ tùy thuộc vào từng loại PLC Phương pháp truy cập vùng nhớ: Địa chỉ ô nhớ trong PLC S7-300 bao gồm hai thành phần: phần chữ và phần số. Ví dụ: 43/130
  46. Truy nhập theo byte: Bao gồm các kiểu Byte (1 byte), Word (2 byte), Double word (4 byte) Quy cách: Tên vùng nhớ, kích thước, địa chỉ byte đầu tiên Vùng nhớ các đầu vào I: - Tại thời điểm đầu tiên mỗi vòng quét PLC lấy tín hiệu từ các đầu vào và ghi các giá trị tương ứng vào vùng nhớ đầu vào. - Truy nhập: Kiểu: Bit I[địa chỉ byte].[địa chỉ bit] I0.1 Byte, word, Double word I[kích thước][địa chỉ byte đầu tiên] Ví dụ: IB4, IW1, ID2 Vùng nhớ các đầu ra Q: - Trong quá trình thực hiện các công việc trong một vòng quét (bao gồm cả chương trình điều khiển), PLC sẽ ghi các giá trị tơơng ứng của các vào vùng nhớ này, cuối vòng quét PLC sẽ gửi các giá trị này đến các đầu ra tương ứng. - Truy nhập: Kiểu: Bit Q[địa chỉ byte].[địa chỉ bit] Q0.0 Byte, word, Double word Q[kích thước][địa chỉ byte đầu tiên] Ví dụ: QB2, QW1, QD4 Vùng nhớ M: - Các ô nhớ thuộc vùng nhớ (M) dùng để lơu trữ trạng thái của quá trình hoạt động hoặc các thông tin điều khiển khác. - Truy nhập:Kiểu: Bit M[địa chỉ byte].[địa chỉ bit] M10.1 Byte, Word, Double word M[kích thước][địa chỉ byte đầu tiên] 44/130
  47. Ví dụ: MB20, MW8, MD6 Vùng nhớ thời gian T - Mỗi bộ thời gian có hai giá trị được lưu trữ trong vùng nhớ T: Giá trị đếm thời gian hiện tại (16 bit), và giá trị bit timer (1 bit). - Truy nhập: T [số thứ tự bộ timer] T3 Vùng nhớ bộ đếm C: - Mỗi bộ đếm có hai giá trị được lơu trữ trong vùng nhớ C: Giá trị đếm hiện tại (kiểu BDC, 12 bit), và giá trị bit counter (1 bit). - Truy nhập: C [số thứ tự bộ timer] C1 Vùng nhớ các đầu vào, đầu ra Analog AI, AQ: - PLC chuyển đổi một giá trị điện áp (hoặc dòng điện) thành một số nhị phân (12 bit) lưu trữ trong vùng nhớ analog (hoặc ngược lại). - Cách truy nhập với tín hiệu vào: PI[kích thước][địa chỉ byte đầu tiên] Ví dụ: Truy nhập: Kiểu: Byte, Word, Double word PIB20, PIW8, PID6 - Cách truy nhập với tín hiệu ra: PQ[kích thước][địa chỉ byte đầu tiên] Ví dụ: Truy nhập: Kiểu: Byte, Word, Double word PQB20, PQW8, PQD6 Vùng nhớ của các khối dữ liệu DB: - Mở khối dữ liệu DB hoặc DI bằng lệnh OPN Ví dụ: OPN DB 1 // Mở khối dữ liệu DB (Open data Block) Hoặc OPN DI 1 // Mở khối dữ liệu DI (Open instance data Block) - Mở một bít trong khối dữ liệu DBX Ví dụ: A DB3.DB 0.5 // mở bit số 5 của byte 0 trong khối dữ liệu DB3 45/130
  48. - Mở một Byte, một WORD hoặc một một DW trong khối dữ liệu DBx Ví dụ: L DB3. DBB2 // chỉ tới Byte 2 trong khối dữ liệu DB3 L DB3. DBW2 // chỉ tới WORD 2 trong khối dữ liệu DB3 L DB. DBD2 // chỉ tới DWORD 2 trong khối dữ liệu DB3 Vùng nhớ trong các khối chương trình OB, FBx và FCx - Chỉ 1 bit Ví dụ: A L0.2// chỉ bít số 2 của Byte 0 trong miền dữ liệu địa phương - Chỉ một Byte, Word hoặc DW Ví dụ: L LB0 // chỉ byte 0 trong miền dữ liệu địa phương L LW0 // chỉ Word 0 trong miền dữ liệu địa phương L LD0 // chỉ DWord 0 trong miền dữ liệu địa phương 46/130
  49. Chương 2 : Ngôn ngữ lập trình và ứng dụng Giới thiệu các ngôn ngữ lập trình Lập trình cho S7 và các PLC khác của hãng Siemens dựa trên 3 phương pháp cơ bản: - Phương pháp hình thang (Ladder logic - LAD). - Phương pháp khối hàm (Function Block Diagram - FBD). - Phương pháp liệt kê câu lệnh (Statement List - STL). Chương này sẽ giới thiệu các thành phần cơ bản của ba phương pháp và cách sử dụng chúng trong lập trình. Nếu chương trình được viết theo ngôn ngữ LAD (hoặc FBD) thì có thể chưyển sang ngôn ngữ STL hay FBD (hoặc LAD) tương ứng. Nhưng không phải bất cứ chương trình viết theo STL nào cũng chuyển sang ngôn ngữ LAD hay FBD được. Bộ tập lênh STL được trình bày trong giáo án này đều có một chức năng như các tiếp điểm, cuộn dây, các hộp (trong LAD) hay IC số trong FBD. Những lệnh này phải phối hợp được trạng thái các tiếp điểm để quyết định về giá trị trạng thái đầu ra hoặc giá trị logic cho phép hoặc không cho phép thực chức năng của một (hay nhiều) cuộn dây hoặc hộp. Trong lập trình lôgic thường hay sử dụng hai ngôn ngữ LAD và STL vì nó gần gũi hơn đối với chuyên ngành điện. Sau đây là những định nghĩa cần phải nắm khi bắt tay vào thiết kế một chương trình: Ngôn ngữ bảng lệnh (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 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". Một số lệnh đặc biệt thì có thể chỉ có tên lệnh mà không cần toán hạng. Ví dụ: 47/130
  50. Ngôn ngữ sơ đồ thang (LAD) Ngôn ngữ hình thang, ký hiệu là LAD (Ladder Logic) 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ụ: 48/130
  51. Chu trình làm việc, lập trình và cấu trúc chương trình Các phương pháp lập trình Lập trình tuyến tính 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. 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à 49/130
  52. mỗi loại tín hiệu báo ngắt như vậy cũng chỉ có khả năng gọi 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ề thực hiện tiếp tục phần chương trình còn lại trong OB1. Lập trình cấu trúc 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. • Khối OB (Organization Block): Khối tổ chức và quản lý chương trình điều khiển. Có nhiều loại khối OB với những chức năng khác nhau ,chúng được phân biệt với nhau bằng một số nguyên đi sau nhóm kí tự OB. Ví dụ: OB10, OB85, • Khối FC (Program Block): Khối chương trình với những chức năng riêng giống như 1 chương trình con hoặc một hàm ( chương trình con có biến hình thức). Một chương trình ứng dụng có thể có nhiều khối FC và các khối FC này được phân biệt với nhau bằng một số nguyên sau nhóm kí tự FC. 50/130
  53. Ví dụ: FC1,FC2 . • Khối FB (Function Block): Là loại khối FC đặc biệt có khả năng trao đổi 1 lượng dữ liệu lớn với các khối chương trình khác .Các dữ liệu này phhải được tổ chức thành khối dữ liệu riêng có tên gọi là Data block.Một chương trình ứng dụng có thể có nhiều khối FB và các khối Fb này được phân biệt với nhau bằng một số nguyên sau nhóm kí tự FB. Chẳng hạn như FB1,FB2 • Khối DB (Data Block): Khối chứa các dữ liệu cần thiết để thực hiện chương trình. Các tham số của khối do người dùng tự đặt .Một chương trình ứng dụng có thể có nhiều khối DB và các khối DB này được phân biệt với nhau bằng một số nguyên sau nhóm kí tự DB. Ví dụ: DB1,DB2, Chương trình trong các khối được liên kết với nhau bằng các lệnh gọi khối, chuyển khối. Xem những phần chương trình trong các khối như là các chương trình con thì S7_300 cho phép gọi chương trình con lồng nhau ,tức là chương trình con này gọi một chương trình con khác và từ một chương trình con được gọi lại gọi tới một chương trình con thứ 3, Số các lệnh gọi lồng nhau phụ thuộc vào từng chủng loại module CPU mà ta đang sử dụng. Ví dụ đối với module CPU 314 thì số lệnh gọi lồng nhau nhiều nhất có thể cho phép là 8.Nếu số lần gọi khối lồng nhau mà vượt quá con số giới hạn cho phép ,PLC sẽ tự chuyển qua chế độ Stop và đặt cờ báo lỗi. Các khối OB đặc biệt Trong khi khối OB được thực hiện đều đặn ở từng vòng quét trong giai đoạn thực hiện chương trình thì các khối OB khác chỉ được thực hiện khi xuất hiện tín hiệu báo ngắt tương ứng ,nói cách 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í tín hiệu ngắt (event).Chúng bao gồm: • OB10 ( Time of Day Interrupt):Chương trình trong khối 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 đã được quy định. OB10 có thể 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 quy định khoảng thời gian hay số lần gọi OB10 được thực hiện nhờ chương trình hệ thống SFC28 hoặc trong bảng tham số của module CPU nhờ phần mềm Step 7. • OB20 ( Time Day Interrupt): Chương trình trong khối 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ễ. • OB35 (Cyclic Interrupt): Chương trình trong OB35 sẽ được thực hiện cách đều nhau 1 khoảng thời gian cố định.Mặc định khoảng thời gian này sẽ là 100ms,xong ta có thể thay đổi nó trong bảng tham số của module CPU ,nhờ phần mềm Step7. 51/130
  54. • OB40 (Hardware Interrupt) : Chương trình trong OB sẽ được thực hiện khi xuất hiện 1 tín hiệu báo ngắt từ ngoại vi đưa vào module CPU thông qua các cổng vào ra số onboard đặc biệt,hoặc thông qua các module SM,CP,FM OB80 (Cycle Time Fault): Chương trình trong khối OB80 sẽ được thực hiện khi thời gian vòng quét(Scan time) vượt quá khoảng thời gian cực đại đã được quy đị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 thời gian Scan time cực đại là 150ms ,nhưng có thể thay đổi nó thông qua bảng tham số của module CPU nhờ phần mềm Step 7. • OB81 (Power Supply fault): CPU sẽ gọi chương trình trong khối OB81 khi phát hiện thấy có lỗi về nguồn nuôi. • OB82( Diagnostic Interrupt):Chương trình trong OB82 được gọi khi CPU phát hiện sự cố từ các Modul vào ra • OB85( Not Load fault):Chương trình trong OB82 được gọi khi CPU phát hiện thấy chương trình ứng dụng có sử dụng chế độ ngắt nhưng chương trình sử lí tín hiệu ngắt lại không có trong khối OB tương ứng. • OB87 ( Communication fault):Khối OB87 sẽ được gọi khi CPU phát hiện thấy lỗi trong truyền thông ví dụ như không có tín hiệu trả lời từ các đối tác. • OB100 ( Start Up Information):Khối OB100 sẽ được thực hiện 1 lần khi CPU chuyển trạng thái Stop sang Run. • OB121 ( Synchronous error):Khối OB121 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ớ CPU. • OB122 ( Synchronous error):Khối OB122 sẽ được gọi khi CPU phát hiện thấy lỗi truy cập module trong chương trình,ví dụ chương trình có lệnh truy 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 SFC: System function SDB: System Data Block Chú ý: FB luôn sử dụng chung với DB Chu trình làm việc PLC thực hiện chương trình theo một chu trình kín được lặp lại liên tục cho đến khi nào có lệnh dừng. Mỗi vòng lặp hay còn gọi là vòng quét được bắt đầu bằng việc quét các số liệu từ các kênh vào/ra, chuyển các số liệu này đến vùng nhớ đệm đầu vào/ra, tiếp theo là bước thực hiện các lệnh tiếp theo của chương trình như thực hiện các phép tính logic, các phép tính số học để xác định các tác động điều khiển, bước kế tiếp là chuyển dữ liệu từ bộ nhớ đệm đầu ra đến các kênh ra. Khi có một lệnh dừng nào đó xuất hiện thì PLC 52/130
  55. sẽ dừng các hoạt động xử lý thông tin và truyền tin để kiểm tra khối chương trình tương ứng với lệnh ngắt. Vòng quét càng ít lệnh dừng thì thực hiện càng nhanh. Nếu chương trình hoạt động bình thường thì chu kỳ của mỗi vòng quét có độ dài như nhau. Tốc độ quét càng cao thì có thể cho phép nhập được nhiều số liệu gần như đồng thời trong thời gian quét, và như vậy khả năng điều khiển được đồng thời nhiều đại lượng là hoàn toàn có thể thực hiện được. Khả năng xử lý tín hiệu trong một chu trình điều khiển không có hiện tượng trễ còn được gọi là điều khiển trong thời gian thực. Các PLC và các PC ngày nay có tốc độ xử lý rất cao nên chất lượng của các hệ thống điều khiển số không kém chất lượng của các hệ thống điều khiển tương tự. Chu kỳ quét của PLC thường vào khoảng từ 1 đến 25 mi li giây. Thời gian quét đầu vào và đầu ra tương đối ngắn so với chu kỳ quét của PLC. Phần lớn thời gian dùng cho việc tính toán các hàm điều khiển. Thông thường chương trình được nạp vào PLC bởi bộ lập trình cầm tay, thiết bị lập trình chuyên dụng hay máy tính cá nhân. Bộ lập trình cầm tay thường dùng cho các PLC rẻ tiền, đơn giản. Bộ lập trình chuyên dụng được trang bị màn hình và các phím tương ứng với các phần tử của sơ đồ thang để tiện cho việc lập trình. Các thiết bị này cho phép kiểm tra việc thực hiện các lệnh của chương trình trong thời gian thực. Ngày nay ta thưòng sử dụng các phần mềm lập trình cho PLC trên máy tính và sau khi chay thử mô phỏng có thể nạp vào PLC thông qua cổng RS232. Bộ nạp EPROM cho phép nạp chương trình ghi trên EPROM vào bộ nhớ của PLC. Thiết bị mô phỏng thường gắn với các đi ốt quang điện LED hoặc các côang tắc để thử nghiệm các bước của chương trình logic. Bộ xử lý đồ hoạ thường dùng để làm giao diện giữa hệ thống mô phỏng và hệ thống hiển thị bằng màn hình. 53/130
  56. Các PLC hoạt động liên tục từ lúc được bật lên. Khác với máy tính thông thường, PLC không cần có hệ điều hành, không cần có phần mềm nào ngoài phần mềm của người sử dụng và riêng đối với các máy CNC hoặc rô bốt có thể có thêm phần mềm đồ hoạ dùng cho mô phỏng các quá trình gia công hay các hoạt động của rô bốt . PLC lần lượt đọc các đầu vào, thực hiện tính toán, xác định các tác động điều khiển, truền các tác đông điều khiển đến đầu ra và lặp lại. Kết nối với mô đun vào là các đại lượng vật lý. Các đại lượng vào này có thể là có hai dạng: - Các đại lượng tương tự (analog): là các đại lượng đến từ các cảm biến tương tự. - Các đại lượng lô gíc: là các đại lượng thể hiện các trạng thái hay các điều kiện để thực hiện một hàm lô gíc hay chính là các quyết định lô gíc. Các đại lượng này đên từ các công tắc, cảm biến số. Các mô đun ra kết nối các đầu ra với các động cơ, các cuộn hút, các đèn tín hiệu vv. Tác động của chương trình điều khiển là các thao tác khởi động động cơ, dừng động cơ, bật/ tắt đèn, kích hoạt một cơ cấu nào đó vv. Tất cả các PLC đều thực hiện các chức năng điều khiển về mặt bản chất là giống nhau. Tuy nhiên về cách thể bằng lập trình có thể khác nhau, phụ thuộc vào nhà sản xuất PLC. Mỗi đầu vào của PLC được nối với một hay nhiều thiết bị mà qua đó dòng điện bị chặn lại hay được cho đi qua. Nếu có điện áp trên đầu vào thì đầu vào đó được được xem như đang ở trạng thái bật. Ngược lại nếu không có điện áp trên đầu vào, có nghĩa là đầu vào đang ở trạng thái tắt. PLC kiểm tra trạng thái các đầu vào và so sánh với chương trình lô gíc để đóng hay ngắt tín hiệu điện áp trên đầu ra. Các PLC không cần biết đến các các thiết bị có được kết nối vào nó qua mô đun vào hay mô đun ra hay không, mà chúng chỉ đơn giản là kiểm tra các trạng thái của các đầu vào và bật hay tắt các đầu ra tương ứng với lô gíc của chương trình điều khiển. Mỗi vòng điều khiển hoàn thành được gọi là một chu kỳ quét. Thời gian của một chu kỳ là rất quan trọng, vì nó liên quan đến số lượng các đầy ra có thể điều khiển được của PLC. Thời gian chu kỳ càng nhỏ PLC càng hoath động nhanh, càng có thể điều khiển được nhiều đại lượng vật lý khác nhau. Chính vì vậy PLC trở nên thiết bị điều khiển lý tưởng cho các máy và thiết bị công nghiệp. Khi chưa có chương trình điều khiển PLC không thể hoạt động được. PLC chỉ hoạt động khi đã có chương trình điều khiển nạp vào bộ nhớ của nó. Chương trình điều khiển có thể nạp vào PLC bằng 3 phương pháp khác nhau: - Lập trình nhờ các phần mềm lập trình trên máy tính và nạp chương trình lên PLC qua cổng RS232 hay qua cổng kết nối với mạng LAN hay mạng Internet. Máy tính cá nhân 54/130
  57. là phương tiện lập trình tốt nhất cho PLC, bởi vì chứng ta có thể quan sát được nhiều dòng lệnh trên màn hình, soạn thảo và truy cập vào chương trình dễ dàng. Điều bất tiện là máy tính cá nhân không thích hợp lắm với môi trường công nghiệp và khả năng di chuyển kém. - Lập trình bằng thiết bị lập trình sách tay: lập trình trực tiếp vào bộ nhớ của PLC. Thiết bị này không dễ sử dụng như máy tính, những lại tiện cho việc mang đi theo người. Lập trình được thực hiện từng dòng lệnh tương ứng với từng bậc của sơ đồ thang. - Lập trình trên máy tính, nạp lên thẻ nhớ và sau đó nạp từ thẻ nhớ vào PLC qua cổng tiêu chuẩn. Các thẻ nhớ EEPROM là các bộ nhớ ROM có thể xoá và lập trình lại được bằng điện. Ưu điểm của EEPROM là nó có thể thay đổi chương trình của PLC bằng cách cắm vào cổng của PLC. Khi nạp chương trình điều khiển từ PC đến PLC, để chương trình có thể chạy được, nó phải được nạp vào bộ nhớ của bộ xử lý. Khi nạp chương trình trực tiếp từ PC cần phảI chú ý các thao tác sau: 1. Tất cả các phần tử có liên quan đến PLC phải được ngắt điện. 2. Nối PC với PLC 3. Chuyển công tắc trên bộ xử lý sang chế độ điều khiển từ xa. 4. Bật công tắc nguồn để cấp điện vào PLC và các bộ phận của nó. 5. Thực hiện bước tải chương trình điều khiển từ PC về PLC. 6. Khi việc tải chương trình đã hoàn tất, chuyển sang chế độ gián tiếp, ngừng kết nối với PC (stay offline). Lúc này PLC có thể chạy chương trình mới nạp về. 55/130
  58. Tập lệnh PLC S7 - 300 Nhóm lệnh logic tiếp điểm 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 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 Ví dụ: Một động cơ kéo băng tải hoạt động khi ấn và giữ đồng thời hai nút ấn S1 và S2: 56/130
  59. 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. Tín hiệu ra sẽ bằng 1 khi có ít nhất một tín hiệu đầu vào bằng 1. Dữ liệu vào và ra : Vào: I0.0, I0.1: BOOL Ra : Q4.0 : BOOL Ví dụ: Một bóng đèn sẽ sáng nếu nhấn 1 trong hai công tắc S1 hoặc S2 Hàm NOT: Tín hiệu đầu ra là nghịch đảo của tín hiệu đầu vào Dữ liệu vào ra 57/130
  60. Vào: I0.0: BOOL Ra: Q4.0: BOOL 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. Tín hiệu đầu ra sẽ bằng 1 khi 2 tín hiệu đầu vào nghịch đảo nhau. Lệnh xoá RESET: Toán hạng là địa chỉ bit I, Q, M, T, C, D, L. Tín hiệu ra Q4.0 sẽ bị xoá khi tín hiệu đầu vào I0.0 = 1. 58/130
  61. Lệnh SET: Toán hạng là địa chỉ bit I, Q, M, T, C, D, L. Tín hiệu ra Q4.0 = 1 (Q4.0 sẽ được thiết lập ) khi I0.0 =1. Bộ nhớ RS: Toán hạng là địa chỉ bit I, Q, M, D, L • 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 và Reset cùng đồng thời =1 thì M0.0 và Q4.0 có giá trị là "1". 59/130
  62. Bộ nhớ SR: Toán hạng là địa chỉ bit I, Q, M, D, L • 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 và Reset cùng đồng thời =1 thì M0.0 và Q4.0 có giá trị là "0". 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 S hay ưu tiên R 60/130
  63. Bộ đếm (Counter) Nguyên lý hoạt động 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 kích đếm tiến CD : BOOL là tín hiệu kích đế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 . Quá trình làm việc của bộ đếm được mô tả như sau: 61/130
  64. 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. 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: - 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 (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. 62/130
  65. Bộ đếm tiến/lùi: Khai báo 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 . 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) Bộ đếm tiến CU: Khai báo 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. 63/130
  66. Bộ đếm lùi CD: Khai báo 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. 64/130
  67. Ví dụ: Viết chương trình điều khiển để quản lý bãi đỗ xe ôtô tự động. Cảm biến S1để phát hiện xe vào, cảm biến S2 để phát hiện xe ra. Số xe trong Gara được lưu vào địa chỉ QW20. 65/130
  68. Bộ thời gian (Timer) Nguyên lý hoạt động của bộ Timer 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). S7-300 có 5 kiểu 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 kích đầ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. Tùy theo ngôn ngữ lập trình mà có thể khai báo thời gian trễ theo hai cách sau: - Cách 1: S5t#5s: Cách khai báo này dùng được cho các loại ngôn ngữ lập trình Step 7 66/130
  69. - Cách 2: L W#16#1350, cách khai báo này chỉ dùng được cho ngôn ngữ STL Để xác định được độ phân giải trong cách khai báo thứ nhất ta có thể tính như sau: Áp dụng công thức tính: T = Độ phân giải x PV; trong đó PV là số nguyên lớn nhất có thể nằm trong khoảng 0-999. Như vậy, nếu khai báo s5t#5s thì có thể tính như sau: 5s=10mS x 500, vậy độ phân giải là 10mS. Với cách khai báo này ta không thể thay đổi được độ phân giải vì phần mềm Step7 tự gán cho nó độ phân giải. Với cách khai báo thứ 2 ta co thể lựa chọn độ phân giải tùy ý. Ví d ụ muốn khai báo khoảng thời gian trể là 5s ta có thể khai báo như sau: W#16#1050 hoặc W#16#2005. Trong đó, chữ số 1 hoặc 2 là độ phân giải được quy định theo bảng sau: Còn ba chữ số đứng sau là giá trị đặt. Như vậy, trong ví dụ trên với cùng một giá trị thời gian trễ 5s ta có thể đặt được độ phân giải là 100ms hoặc 1s. 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". 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 67/130
  70. đó. 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. 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 TV. - 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 :WORD TW : S5TIME BCD : WORD R : BOOL Q: BOOL 68/130
  71. Bộ thời gian SP: Khai báo 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. 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". Ví dụ: Viết chương trình điều khiển động cơ không đồng bộ 3 pha đổi nối Y/∆, hoạt động theo nguyên tắc sau: Ấn nút Start khóa K1 có điện cấp điện cho hệ thống, đồng 69/130
  72. thời K2 cũng có điện để động cơ hoạt động chế đô Y, sau thời gian 5s khóa K3 có điện để động cơ hoạt động chê độ ∆. Ấn nút Stop hệ thống dừng Bộ thời gian SE: Khai báo 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. 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". 70/130
  73. Ví dụ: Viết chương trình điều khiển bóng đèn hoạt động như sau: ấn nút S đèn sáng sau thời gian 10s bóng đèn tự tắt. Bộ thời gian SD: Khai báo 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ì khi tín hiệu kích có giá trị là "0". 71/130
  74. 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". Bộ thời gian SS: Khai báo 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". 72/130
  75. Ví dụ: Một bóng đèn D được bật theo yêu cầu sau: Ấn nút S1 sau 5s bóng đèn sáng, tắt đèn bằng nút ấn S2 Bộ thời gian SF: Khai báo Nguyên lý làm việc 73/130
  76. 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. 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". Ví dụ: Một động cơ được điều khiển hoạt động theo nguyên tắc sau: Bật công tắc S1 động cơ hoạt động, động cơ dừng lại sau 5s khi tắt công tắc S1 hoặc dừng lại ngay khi ấn nút S2 74/130
  77. Các hàm so sánh Hàm so sánh số nguyên 16 bits: Khai báo 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 = MW2 75/130
  78. Hàm so sánh số nguyên 32 bits 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 32 bits như sau: - 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 số thực 32 bits Khối thực hiện chức năng so sánh 2 số thực 76/130
  79. Trong ví dụ trên đầu ra Q4.0 sẽ là "1" khi MD0 - 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: <= Ví dụ: Một Gara ôtô tự động có khả năng chứa 100 xe. Lập trình cho bộ hiển thị sao cho nếu còn chỗ thì báo đèn xanh, hết chỗ báo đèn đỏ. 77/130
  80. Các hàm toán học Nhóm làm việc với số nguyên 16 bits. Cộng 2 số nguyên 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. Dữ liệu vào ra EN: BOOL IN1: INT IN2 :INT OUT: INT ENO : BOOL Ví dụ: Chương trình tính tổng sản phẩm của hai băng tải vận chuyển hàng vào kho chứa, kết quả cất vào vùng nhớ MW4: 78/130
  81. Trừ 2 số nguyên Dữ liệu vào 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 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. Nhân 2 số nguyên Dữ liệu vào ra EN: BOOL IN1: INT IN2 :INT OUT: INT ENO : BOOL 79/130
  82. 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. Chia 2 số nguyên 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. Nhóm làm việc với số nguyên 32 bits Cộng 2 số nguyên Dữ liệu vào ra 80/130
  83. EN: BOOL IN1: DINT IN2 :DINT OUT: DINT 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 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. Trừ 2 số nguyên 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. Dữ liệu vào ra EN: BOOL IN1: DINT IN2 :DINT OUT: DINT ENO : BOOL 81/130
  84. Nhân 2 số nguyên Dữ liệu vào ra EN: BOOL IN1: DINT IN2 :DINT OUT: DINT 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 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. Chia 2 số nguyên Dữ liệu vào ra EN: BOOL IN1: DINT 82/130
  85. IN2 :DINT OUT: DINT 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 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. Nhóm làm việc với số thực Cộng 2 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. Dữ liệu vào ra EN: BOOL IN1: REAL IN2 : REAL OUT: REAL ENO : BOOL Trừ 2 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. 83/130
  86. Dữ liệu vào ra EN: BOOL IN1: REAL IN2 : REAL OUT: REAL ENO : BOOL Nhân 2 số thực Dữ liệu vào ra EN: BOOL IN1: REAL IN2 : REAL OUT: REAL 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ố thực MD0 . MD4. Kết quả được cất vào MD10. 84/130
  87. 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. Chia 2 số thực Dữ liệu vào ra EN: BOOL IN1: REAL IN2 : REAL OUT: REAL 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 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. 85/130
  88. Một số hàm khác Hàm lấy giá trị tuyệt đối ABS Dữ liệu vào ra EN: BOOL OUT: REAL IN : REAL 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 chức năng lấy giá 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. Hàm SIN, COS, TAN, ASIN, ACOS, ATAN Dữ liệu vào ra EN: BOOL OUT: REAL 86/130
  89. IN : REAL 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 chức năng tính 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. 87/130
  90. Hàm di chuyển dữ liệu Khối chuyển dữ liệu: Khai báo Nguyên lý hoạt động Khi có tín hệu kích I0.0 khối MOVE đượ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. Ví dụ: Một bóng đèn được hoạt động theo nguyên tắc sau: Nếu ấn nút S1 đèn sáng 5s, nếu ấn nút S2 đèn sáng 10s, đèn tắt khi ấn nút S3 Các bộ ghi dịch và quay số liệu trên thanh ghi Dịch phải số nguyên 16 bits: Khai báo 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. 88/130
  91. Dịch phải số nguyên 32 bits: Khai báo 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 89/130
  92. 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. Dịch trái 16 bits: Khai báo 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 bộ dịch trái 6 vị trí Quay trái số 32 bits: Khai báo 90/130
  93. 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. 91/130
  94. Quay phải số 32 bits: Khai báo 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. Giản đồ thời gian bộ dich phải 3 vị trí số 32 bits 92/130
  95. Hàm logic thực hiện trên thanh ghi Hàm AND 2 số 16 bits: Khai báo Nguyên lý 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ứ 2 OUT = 0100000000000101 Kết quả 93/130
  96. Hàm OR 2 số 16 bits: Khai báo 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ứ 2 OUT = 0101010101011111 Kết quả Hàm XOR 2 số 16 bits: Khai báo Nguyên lý hoạt động 94/130
  97. 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ứ 2 OUT = 0101010101011010 Kết quả Hàm AND 2 từ kép: Khai báo EN(I0.0): BOOL IN2 : DWORD IN1 : DWOED OUT : DWORD ENO : BOOL 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 95/130
  98. OUT = 000000000000000 0000010101010101 Hàm OR 2 từ kép: Khai báo EN(I0.0): BOOL IN2 : DWORD IN1 : DWOED OUT : DWORD ENO : BOOL 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 IN2 = 0000000000000000 0000111111111111 OUT = 0101010101010101 0101111111111111 96/130
  99. Hàm XOR 2 từ kép: Khai báo EN(I0.0): BOOL IN2: DWORD IN1: DWORD OUT: DWORD ENO: BOOL 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 97/130
  100. Lệnh làm việc với tín hiệu tương tự Các dạng tín hiệu tương tự Nếu tín hiệu số (digital signals) là loại tín hiệu chỉ có 2 mức “0” và “1” tương ứng với 0V và 24V thì tín hiệu tương tự có thể nhận bất cứ giá trị nào trong một dải xác định. Để xử lý tín hiệu tương tự, các đại lương vật lý như: nhiệt độ, lưu lượng, tốc độ từ cảm biến sẽ được chuyển đổi thành tín hiệu điện như dòng điện, điện áp, điện trở. Sau đó tín hiệu này được gửi tới PLC để xử lý. Tín hiệu này được chuyển đổi A/D. Thông thường bộ chuyển đổi A/D dùng trong các module tương tự của PLC là loại 8bit hoặc 12 bit. . Các câu lệnh xử lý tín hiệu tương tự - Kiểu giá trị ở đầu vào/ ra tương tự : Word Lệnh đọc và ghi: L PIW x (Đọc các giá trị ở đầu vào) T PQW x (Ghi các giá trị tới đầu ra) Giá trị các tín hiệu vào/ra tương tự sẽ được lưu trữ tại PI/PQ. Kiểu dữ liệu là số tự nhiên (INT) Địa chỉ vùng nhớ của các đầu vào/ra tương tự phụ thuộc vào vị trí của module tương tự. Nếu module ở slot 4, nó sẽ có địa chỉ bắt đầu là 256, các module ở các slot tiếp theo sẽ tăng lên 16 byte cho mỗi slot. Nếu module tương tự ở slot 6 nó sẽ có địa chỉ vào bắt đầu là PIW288, địa chỉ đầu ra đầu tiên là PQW288. - Chuyển đổi các giá trị từ đầu vào tương tự. Để chuyển đổi các tín hiệu đầu vào tương tự có thể sử dụng các hàm toán học. Để giảm sai số chúng ta phải chuyển đổi kiểu số thực trước khi xử lý. - Chuyển đổi tín hiệu ra tương tự Giá trị được xử lý có thể là kiểu số thực trong khoảng nào đó, chúng ta sẽ phải chuyển đổi thành số tự nhiên nằm trong dải tương ứng. 98/130
  101. Chương 3 : Ngôn ngữ lập trinh Step 7 CÀI ĐẶT STEP 7 Step 7 là một phần mềm hỗ trợ, cho phép : - 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. Chú ý: Điều kiện để cài đặt thành công phần mềm STEP7 vào máy tính là đòi hỏi cấu hình máy tối thiểu : CPU 80586, 8MRAM , ổ cứng trống 90MB và có card VGA 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, 5.1, 5.2, 5.3. 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 lượng 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. 99/130
  102. 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 tiế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. 100/130
  103. Soạn thảo một Project mới 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. 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 các 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ác thao tác 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". 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. 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. 101/130
  104. 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. 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 102/130
  105. 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: 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. Màn hình khai báo cấu hình cứng cho tạm PLC 103/130
  106. 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. Để 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ụ: 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 các module kèm theo. Đặ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 phút. Để 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.’ 104/130