Plc-scada.pdf

  • Uploaded by: An Doan
  • 0
  • 0
  • December 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Plc-scada.pdf as PDF for free.

More details

  • Words: 100,933
  • Pages: 398
SIMATIC S7 - 1200

Chƣơng 1 Tổng quan thiết bị

CHƢƠNG 1: TỔNG QUAN THIẾT BỊ

Trang 1 - 1

SIMATIC S7 - 1200

1.1.

Giới thiệu về PLC S7-1200. Bộ điều khiển logic khả trình (PLC) S7-1200 mang lại tính linh hoạt và sức

mạnh để điều khiển nhiều thiết bị đa dạng hỗ trợ các yêu cầu về điều khiển tự động. Sự kết hợp giữa thiết kế thu gọn, cấu hình linh hoạt và tập lệnh mạnh mẽ đã khiến cho S71200 trở thành một giải pháp hoàn hảo dành cho việc điều khiển nhiều ứng dụng đa dạng khác nhau. Kết hợp một bộ vi xử lý, một bộ nguồn tích hợp, các mạch ngõ vào và mạch ngõ ra trong một kết cấu thu gọn, CPU trong S7-1200 đã tạo ra một PLC mạnh mẽ. Sau khi người dùng tải xuống một chương trình, CPU sẽ chứa mạch logic được yêu cầu để giám sát và điều khiển các thiết bị nằm trong ứng dụng. CPU giám sát các ngõ vào và làm thay đổi ngõ ra theo logic của chương trình người dùng, có thể bao gồm các hoạt động như logic Boolean, việc đếm, định thì, các phép toán phức hợp và việc truyền thông với các thiết bị thông minh khác. Một số tính năng bảo mật giúp bảo vệ việc truy xuất đến cả CPU và chương trình điều khiển:  Mỗi CPU cung cấp một sự bảo vệ bằng mật khẩu cho phép người dùng cấu hình việc truy xuất đến các chức năng của CPU.  Người dùng có thể sử dụng chức năng “know-how protection” để ẩn mã nằm trong một khối xác định. CPU cung cấp một cổng PROFINET để giao tiếp qua một mạng PROFINET. Các module truyền thông là có sẵn dành cho việc giao tiếp qua các mạng RS232 hay RS485.

CHƢƠNG 1: TỔNG QUAN THIẾT BỊ

Trang 1 - 2

SIMATIC S7 - 1200

 Bộ phận kết nối nguồn  Các bộ phận kết nối nối dây của người dùng có thể tháo được (phía sau các nắp che)  Khe cắm thẻ nhớ nằm dưới cửa phía trên  Các LED trạng thái dành cho I/O tích hợp  Bộ phận kết nối PROFINET (phía trên của CPU. Các kiểu CPU khác nhau cung cấp một sự đa dạng các tính năng và dung lượng giúp cho người dùng tạo ra các giải pháp có hiệu quả cho nhiều ứng dụng khác nhau. Chức năng Kích thước vật lý (mm)

CPU 1211C

CPU 1212C

90 x 100 x 75

CPU 1214C 110 x 100 x 75

Bộ nhớ người dùng: 

Bộ nhớ làm việc

 25 kB

 50 kB



Bộ nhớ nạp

 1 MB

 2 MB



Bộ nhớ giữ lại

 2 kB

 2 kB

 6 ngõ vào / 4

I/O tích hợp cục bộ 

Kiểu số



Kiểu tương tự

 8 ngõ vào / 6

ngõ ra

ngõ ra

 2 ngõ ra

 2 ngõ ra

 14 ngõ vào / 10 ngõ ra  2 ngõ ra

Kích thước ảnh tiến trình

1024 byte ngõ vào (I) và 1024 byte ngõ ra (Q)

Bộ nhớ bit (M)

4096 byte

Độ mở rộng các module tín hiệu

Không

8192 byte 2

Bảng tín hiệu

1

Các module truyền thông

3 (mở rộng về bên trái)

CHƢƠNG 1: TỔNG QUAN THIẾT BỊ

8

Trang 1 - 3

SIMATIC S7 - 1200 3

Các bộ đếm tốc độ cao 

Đơn pha



Vuông pha

4  3 tại 100 kHz  3 tại 80 kHz

6  3 tại 100 kHz 1 tại 30 kHz

3 tại 30 kHz

 3 tại 80 kHz

 3 tại 80 kHz

1 tại 20 kHz

3 tại 20 kHz

Các ngõ ra xung

2

Thẻ nhớ

Thẻ nhớ SIMATIC (tùy chọn)

Thời gian lưu giữ đồng hồ thời gian thực

 3 tại 100 kHz

Thông thường 10 ngày / ít nhất 6 ngày tại 400C

PROFINET

1 cổng truyền thông Ethernet

Tốc độ thực thi tính toán thực

18 μs/lệnh

Tốc độ thực thi Boolean

0,1 μs/lệnh

Họ S7-1200 cung cấp một số lượng lớn các module tín hiệu và bảng tín hiệu để mở rộng dung lượng của CPU. Người dùng còn có thể lắp đặt thêm các module truyền thông để hỗ trợ các giao thức truyền thông khác. Module

Chỉ ngõ vào 8 x DC In

Module tín

Kiểu số

16 x DC In

hiệu (SM)

Bảng tín hiệu (SB)

Chỉ ngõ ra

Kết hợp In/Out

8 x DC Out

8 x DC In / 8 x DC Out

8 x Relay Out

8 x DC In / 8 x Relay Out

16 x DC Out 16 x Relay Out

16 x DC In / 16 x DC Out 16 x DC In / 16 x Relay Out

Kiểu

4 x Analog In

2 x Analog In

4 x Analog In / 2 x Analog

tương tự

8 x Analog In

4 x Analog In

Out

Kiểu số Kiểu tương tự

_ _

_ 1 x Analog In

2 x DC In / 2 x DC Out _

Module truyền thông (CM) 

RS485



RS232

CHƢƠNG 1: TỔNG QUAN THIẾT BỊ

Trang 1 - 4

SIMATIC S7 - 1200

1.2.

Các bảng tín hiệu. Một bảng tín hiệu (SB) cho phép người dùng thêm vào I/O cho CPU. Người

dùng có thể thêm một SB với cả I/O kiểu số hay kiểu tương tự. SB kết nối vào phía trước của CPU.  SB với 4 I/O kiểu số (ngõ vào 2 x DC và ngõ ra 2 x DC)  SB với 1 ngõ ra kiểu tương tự.  Các LED trạng thái trên SB  Bộ phận kết nối nối dây của người dùng có thể tháo ra

1.3.

Các module tín hiệu. Người dùng có thể sử dụng các module tín hiệu để thêm vào CPU các chức

năng. Các module tín hiệu kết nối vào phía bên phải của CPU.  Các LED trạng thái dành cho I/O của module tín hiệu  Bộ phận kết nối đường dẫn  Bộ phận kết nối nối dây của người dùng có thể tháo ra

CHƢƠNG 1: TỔNG QUAN THIẾT BỊ

Trang 1 - 5

SIMATIC S7 - 1200

1.4.

Các module truyền thông. Họ S7-1200 cung cấp các module truyền thông (CM) dành cho các tính năng bổ

sung vào hệ thống. Có 2 module truyền thông: RS232 và RS485.  CPU hỗ trợ tối đa 3 module truyền thông  Mỗi CM kết nối vào phía bên trái của CPU (hay về phía bên trái của một CM khác)  Các LED trạng thái dành cho module truyền thông  Bộ phận kết nối truyền thông

1.5.

STEP 7 Basic. Phần mềm STEP 7 Basic cung cấp một môi trường thân thiện cho người dùng

nhằm phát triển, chỉnh sửa và giám sát mạng logic được yêu cầu để điều khiển ứng dụng, bao gồm các công cụ dành cho quản lý và cấu hình tất cả các thiết bị trong đề án, như các thiết bị PLC hay HMI. STEP 7 Basic cung cấp hai ngôn ngữ lập trình (LAD và FBD) để thuận tiện và có hiệu quả trong việc phát triển chương trình điều khiển đối với ứng dụng, và còn cung cấp các công cụ để tạo ra và cấu hình các thiết bị HMI trong đề án của người dùng. Để giúp người dùng tìm ra thông tin cần thiết, STEP 7 Basic cung cấp một hệ thống trợ giúp trực tuyến. Để cài đặt STEP 7 Basic, người dùng cần đưa đĩa CD vào trong ổ CD-ROM của máy tính. Trình thuật sĩ cài đặt sẽ khởi động một cách tự động và nhắc người dùng trong suốt quá trình cài đặt. Lƣu ý

CHƢƠNG 1: TỔNG QUAN THIẾT BỊ

Trang 1 - 6

SIMATIC S7 - 1200

Để cài đặt STEP 7 Basic trên một máy tính cá nhân dùng hệ điều hành Windows 2000, Windows XP hay Windows Vista, người dùng cần phải đăng nhập với quyền hạn Administrator.

1.5.1. Các kiểu xem khác nhau giúp công việc dễ dàng hơn. Nhằm giúp gia tăng hiệu suất công việc, phần Totally Intergrated Automation Portal cung cấp hai kiểu xem thiết lập công cụ khác nhau: một là thiết lập được định hướng theo công việc, thiết lập này được tổ chức trong chức năng của các công cụ (kiểu xem Portal), hai là kiểu xem được định hướng theo đề án gồm các phần tử bên trong đề án (kiểu xem Project). Người dùng cần chọn kiểu xem nào giúp làm việc với hiệu quả tốt nhất. Với một cú nhấp chuột, người dùng có thể chuyển đổi giữa kiểu xem Portal và kiểu xem Project. Kiểu xem Portal cung cấp một kiểu xem theo chức năng đối với các nhiệm vụ và tổ chức chức năng của các công cụ theo nhiệm vụ để được hoàn thành, như là tạo ra việc cấu hình các thành phần và các mạng phần cứng. Người dùng có thể dễ dàng xác định cách thức để tiến hành và nhiệm vụ để chọn.

CHƢƠNG 1: TỔNG QUAN THIẾT BỊ

Trang 1 - 7

SIMATIC S7 - 1200

Kiểu xem Project cung cấp việc truy xuất đến tất cả các thành phần nằm trong một đề án. Với tất cả các thành phần này nằm trong một vị trí, người dùng có một truy xuất dễ dàng đến mỗi phương diện của đề án. Đề án chứa tất cả các các phần tử đã vừa được tạo ra hay hoàn thành.

1.5.2. Trợ giúp người dùng khi cần. Nhanh chóng tìm kiếm tìm ra câu trả lời đến ngƣời dùng. Để giúp người dùng giải quyết những phát sinh một cách nhanh chóng và có hiệu quả, STEP 7 Basic cung cấp phần trợ giúp thông minh đến từng yêu cầu:  Một trường nhập vào cung cấp trợ giúp kiểu “mở ra” để hỗ trợ người dùng nhập vào thông tin chính xác (các phạm vi và kiểu dữ liệu) đối với trường đó. Ví dụ, nếu người dùng đã nhập một giá trị không hợp lệ, một hộp văn bản thông điệp sẽ mở ra nhằm cung cấp phạm vị các giá trị hợp lệ.  Một số thủ thuật về công cụ trong giao diện (ví dụ đối với các lệnh) “xếp tầng” nhằm cung cấp thông tin bổ sung. Các thủ thuật về công cụ này sẽ liên kết đến các chủ đề xác định trong hệ thống thông tin trực tuyến (trợ giúp trực tuyến). Thêm vào đó STEP 7 Basic có một hệ thống thông tin toàn diện miêu tả một cách đầy đủ chức năng của các công cụ SIMATIC. Trợ giúp kiểu mở ra và các thủ thuật về công cụ xếp tầng Các trường nhập vào gồm nhiều hộp thoại khác nhau và các thẻ nhiệm vụ sẽ cung cấp phản hồi dưới dạng một hộp thông điệp, hộp này mở ra và cho người dùng biết về phạm vi hay các kiểu của dữ liệu được yêu cầu.

CHƢƠNG 1: TỔNG QUAN THIẾT BỊ

Trang 1 - 8

SIMATIC S7 - 1200

Các phần tử trong giao diện phần mềm cung cấp các thủ thuật về công cụ để giải thích chức năng của phần tử đó. Một vài phần tử, ví dụ các biểu tượng “Open” hay “Save”, không yêu cầu các thông tin bổ sung. Tuy nhiên, một số phần tử cung cấp cơ chế để hiển thị phần miêu tả bổ sung về phần tử đó. Thông tin bổ sung này “xếp tầng” trong một hộp từ thủ thuật về công cụ. (Một mũi tên màu đen kế bên thủ thuật công cụ cho thấy rằng các thông tin thêm là có sẵn.) Ở xung quanh một phần tử trong giao diện phần mềm hiển thị thủ thuật công cụ. Cách đơn giản để hiển thị thông tin bổ sung là di chuyển con trỏ xung quanh phần thủ thuật công cụ. Một số các thủ thuật công cụ còn cung cấp các kiên kết đến những chủ đề có liên quan trong hệ thống thông tin. Việc nhấp chuột vào liên kết sẽ hiển thị chủ đề xác định. Hệ thống thông tin Phần mềm STEP 7 Basic cung cấp các thông tin trực tuyến toàn diện và hệ thống trợ giúp miêu tả tất cả các sản phầm SIMATIC mà người dùng đã cài đặt. Hệ thống thông tin còn bao gồm các thông tin tham khảo và các ví dụ. Để hiển thị hệ thống thông tin, người dùng chọn từ các điểm truy xuất sau:  Từ kiểu xem Portal, lựa chọn cổng Start và nhấp chuột vào lệnh “Help”.  Từ kiểu xem Project, lựa chọn lệnh “Show help” trong trình đơn “Help”.  Từ một thủ thuật công cụ xếp tầng, nhấp vào liên kết để hiển thị thông tin bổ sung về chủ đề đó. Hệ thống thông tin sẽ mở ra trong một cửa sổ mà không che khuất vùng làm việc. Nhấp vào nút “Show/hide contents” trên hệ thống thông tin để hiển thị nội dung và tách khỏi cửa sổ trợ giúp. Người dùng có thể thay đổi kích thước của cửa sổ. Sử dụng các thẻ “Contents” hay “Index” để tìm kiếm xuyên suốt hệ thống thông tin theo chủ đề hay từ khóa.

CHƢƠNG 1: TỔNG QUAN THIẾT BỊ

Trang 1 - 9

SIMATIC S7 - 1200

Lƣu ý Nếu chương trình STEP 7 Basic được phóng lớn tối đa, việc nhấp vào nút “Show/hide contents” sẽ không làm tách rời khỏi cửa sổ trợ giúp. Nhấp vào nút “Restore down” để thực hiện việc tách rời. Sau đó người dùng có thể di chuyển và thay đổi kích thước cửa sổ này.

CHƢƠNG 1: TỔNG QUAN THIẾT BỊ

Trang 1 - 10

SIMATIC S7 - 1200

Việc in ấn các chủ đề từ hệ thống thông tin Để in từ hệ thống thông tin, nhấp vào nút “Print” trên cửa sổ trợ giúp.

CHƢƠNG 1: TỔNG QUAN THIẾT BỊ

Trang 1 - 11

SIMATIC S7 - 1200

Hộp thoại “Print” cho phép người dùng lựa chọn các chủ đề để in. Hãy chắc chắn rằng bảng này hiển thị một chủ đề. Người dùng sau đó có thể lựa chọn bất kỳ chủ đề nào khác để in. Nhấp vào nút “Print” để gửi các chủ đề được chọn đến máy in. 1.6.

Các bảng hiển thị. Do sự trực quan hóa trở thành một thành phần tiêu chuẩn đối với hầu hết các

thiết kế máy móc, SIMATIC HMI Basic Panels cung cấp các thiết bị kiểu chạm màn hình dành cho việc điều khiển thuật toán cơ bản và việc giám sát các nhiệm vụ. Tất cả các bảng đều có cấp độ bảo vệ IP65 và chứng nhận CE, UL, cULus và NEMA 4x.  Kích thước: 3,8 inch  Độ phân giải: 320 x 240  128 mục nhập  50 màn hình xử lý KTP 400 Basic PN

 200 cảnh báo  25 biểu đồ

 Đơn sắc (STN, dải màu xám)  Màn hình chạm 4 inch với 4 phím tiếp xúc

 Bộ nhớ nhận 32 kB  5 bộ nhận, 20 bản ghi dữ liệu, 20 mục nhập

 Kiểu thẳng đứng hay nằm ngang  Màn hình chạm 6 inch với 6 phím tiếp xúc  Kiểu thẳng đứng hay nằm ngang  Kích thước: 5,7 inch  Độ phân giải: 320 x 240  128 mục nhập KTP 600 Basic PN  Kiểu màu (TFT, 256 màu) hay kiểu đơn sắc (STN, dải màu xám)

 50 màn hình xử lý  200 cảnh báo  25 biểu đồ  Bộ nhớ nhận 32 kB  5 bộ nhận, 20 bản ghi dữ liệu, 20 mục nhập

CHƢƠNG 1: TỔNG QUAN THIẾT BỊ

Trang 1 - 12

SIMATIC S7 - 1200

 Kích thước: 10,4 inch  Độ phân giải: 640 x 480  256 mục nhập  50 màn hình xử lý  200 cảnh báo  25 biểu đồ  Bộ nhớ nhận 32 kB KTP 1000 Basic PN  Kiểu màu (TFT, 256 màu)

 5 bộ nhận, 20 bản ghi dữ liệu, 20 mục nhập

 Màn hình chạm 10 inch với 8 phím tiếp xúc  Kiểu thẳng đứng hay nằm ngang

 Màn hình chạm 15 inch  Kích thước: 15,1 inch  Độ phân giải: 1024 x 768  256 mục nhập  50 màn hình xử lý  200 cảnh báo  25 biểu đồ TP 1500 Basic PN  Kiểu màu (TFT, 256 màu)

CHƢƠNG 1: TỔNG QUAN THIẾT BỊ

 Bộ nhớ nhận 32 kB  5 bộ nhận, 20 bản ghi dữ liệu, 20 mục nhập

Trang 1 - 13

SIMATIC S7 - 1200

Chƣơng 2 Các khái niệm về PLC

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 1

SIMATIC S7 - 1200

2.1.

Sự thực thi chƣơng trình ngƣời dùng. CPU hỗ trợ các kiểu khối mã sau đây, cho phép ta tạo ra một cấu trúc hiệu quả

cho chương trình người dùng:  Khối tổ chức (OB) xác định cấu trúc chương trình. Một vài OB có trạng thái và các sự kiện khởi động được thiết lập trước, nhưng ta cũng có thể tạo ra các OB với các sự kiện khởi động tùy chỉnh.  Hàm (FC) và khối hàm (FB) chứa mã chương trình tương ứng với các nhiệm vụ riêng biệt hay với sự kết hợp các thông số. Mỗi FC và FB cung cấp một tổ hợp các thông số ngõ vào và ngõ ra dành cho việc chia sẻ dữ liệu với khối đang gọi. FB cũng sử dụng một khối dữ liệu (đã gọi một DB tức thời) có liên quan để duy trì trạng thái của các giá trị giữa sự thực thi mà có thể được sử dụng bởi các khối khác trong chương trình.  Khối dữ liệu (DB) lưu trữ dữ liệu mà có thể được sử dụng bởi các khối chương trình. Sự thực thi chương trình người dùng bắt đầu với một hay nhiều hơn các khối tổ chức (OB) khởi động tùy chọn, được thực thi một lần trong lúc đi vào chế độ RUN, và được theo sau bởi một hay nhiều hơn các OB chu kỳ chương trình được thực thi một cách tuần hoàn. OB cũng có thể kết hợp với một sự kiện ngắt, có thể là một sự kiện ngắt tiêu chuẩn hay một sự kiện lỗi, và thực thi khi nào mà sự kiện tiêu chuẩn hay sự kiện lỗi tương ứng xuất hiện. Hàm (FC) hay khối hàm (FB) là một khối mã chương trình mà có thể được gọi từ một OB hay từ một FC hay FB khác, xuống đến các cấp độ sau đây:  16 từ OB chu kỳ chương trình hay OB khởi động  4 từ OB ngắt trì hoãn thời gian, OB ngắt theo chu trình, OB ngắt phần cứng, OB ngắt lỗi thời gian, hay OB ngắt lỗi chẩn đoán. FC không liên kết với bất kỳ phần nào của khối dữ liệu (DB), trong khi FB được gắn kết một cách trực tiếp đến một DB và sử dụng DB để chuyển tiếp các thông số và lưu trữ các giá trị và các kết quả tạm thời.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 2

SIMATIC S7 - 1200

Kích thước của chương trình người dùng, của dữ liệu và của sự cấu hình được giới hạn bởi bộ nhớ nạp có sẵn và bộ nhớ làm việc trong CPU. Không có giới hạn nào đối với số lượng các khối được hỗ trợ bên trong lượng bộ nhớ làm việc có sẵn. Mỗi chu kỳ bao gồm việc ghi các ngõ ra, việc đọc các ngõ vào, việc thực thi các lệnh của chương trình người dùng, và việc thực hiện bảo trì hệ thống hay tiến trình xử lý nền sau. Chu kỳ được nói đến như là một chu kỳ quét hay một lần quét. Bảng tín hiệu, các module tín hiệu và các module truyền thông được nhận biết và được ghi lại chỉ trong khi nguồn được bật.

Lƣu ý Việc lắp vào và tháo ra một bảng tín hiệu, các module tín hiệu và module truyền thông khi có nguồn (thao tác nóng) thì không được hỗ trợ. Chỉ một ngoại lệ là thẻ nhớ SIMATIC, có thể được lắp vào hay lấy ra trong khi CPU đang được cấp nguồn.

Dưới cấu hình mặc định, tất cả các điểm I/O kiểu số và kiểu tương tự được cập nhật một cách đồng bộ với chu kỳ quét bằng cách sử dụng một vùng nhớ bên trong được gọi là ảnh tiến trình. Ảnh tiến trình chứa một sự chụp nhanh các ngõ vào và ngõ ra vật lý (các điểm I/O trên CPU, trên bảng tín hiệu và trên các module tín hiệu). CPU thực hiện các tác vụ sau đây:  CPU ghi các ngõ ra từ vùng ngõ ra ảnh tiến trình đến các ngõ ra vật lý.  CPU đọc các ngõ vào chỉ ưu tiên cho sự thực thi chương trình người dùng và lưu trữ các giá trị ngõ vào trong vùng ngõ vào ảnh tiến trình. Điều này đảm bảo rằng các giá trị này sẽ vẫn giữ nguyên tính nhất quán trong suốt sự thực thi của các lệnh người dùng.  CPU thực thi logic của các lệnh người dùng và cập nhật các giá trị ngõ ra trong vùng ngõ ra ảnh tiến trình thay vì ghi đến các ngõ ra vật lý thực tế.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 3

SIMATIC S7 - 1200

Chu trình này cung cấp logic nhất quán xuyên suốt sự thực thi của các lệnh người dùng đối với trong một chu kỳ đã cho và ngăn chặn sự chập chờn của các điểm ngõ ra, điều mà có thể thay đổi trạng thái nhiều lần trong vùng ngõ ra ảnh tiến trình. Ta có thể chỉ định khi nào các điểm I/O kiểu số và kiểu tương tự được lưu trữ trong ảnh tiến trình. Nếu ta chèn vào một module trong kiểu xem thiết bị, dữ liệu của nó được đặt trong ảnh tiến trình của CPU S7-1200 (mặc định). CPU thực thi sự thay đổi dữ liệu giữa module và vùng ảnh tiến trình một cách tự động trong suốt việc cập nhật của ảnh tiến trình. Để gỡ bỏ các điểm kiểu số hay kiểu tương tự ra khỏi sự cập nhật tự động ảnh tiến trình, ta lựa chọn thiết bị tương ứng trong Device configuration, xem thẻ Properties, mở rộng nếu cần để đặt các điểm I/O mong muốn, và sau đó lựa chọn “IO addresses/HW identifier”. Sau đó thay đổi mục nhập cho “Process image:” từ “Cyclic PI” sang “---”. Để thêm các điểm trở lại sự cập nhật tự động ảnh tiến trình, thay đổi mục lựa chọn này trở về “Cyclic PI”. Ta có thể đọc các giá trị ngõ vào và ghi các giá trị ngõ ra ngay lập tức khi một lệnh thực thi. Một lần đọc tức thời sẽ truy xuất đến trạng thái hiện thời của ngõ vào vật lý và không cập nhật vùng ngõ vào ảnh tiến trình, bất chấp dù cho một điểm được cấu hình để được lưu trữ trong ảnh tiến trình. Một lần ghi tức thời đến ngõ ra vật lý sẽ cập nhật cả vùng ngõ ra ảnh tiến trình (nếu một điểm được cấu hình để được lưu trữ trong ảnh tiến trình) và điểm ngõ ra vật lý. Ta nối thêm hậu tố “:P” vào địa chỉ I/O nếu muốn chương trình truy xuất ngay lập tức dữ liệu I/O một cách trực tiếp từ điểm vật lý thay vì sử dụng ảnh tiến trình. Cấu hình các thông số khởi động Ta sử dụng các thuộc tính của CPU để cấu hình cách thức CPU khởi động sau một chu kỳ cấp nguồn. Lựa chọn khi nào CPU khởi động trong chế độ STOP, chế độ RUN, hay trong chế độ trước đó (ưu tiên chu kỳ cấp nguồn).

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 4

SIMATIC S7 - 1200

CPU thực hiện một sự khởi động lại nóng trước khi đi vào chế độ RUN. Sự khởi động lại nóng sẽ đặt lại toàn bộ các bộ nhớ giữ lại về các giá trị khởi động mặc định, nhưng vẫn giữ nguyên các giá trị hiện thời được lưu trữ trong bộ nhớ giữ lại.

Lƣu ý CPU luôn luôn thực hiện một sự khởi động lại sau một việc tải xuống Khi ta tải xuống một phần tử của đề án (như một khối chương tình, một khối dữ liệu hay cấu hình phần cứng), CPU thực hiện một sự khởi động lại trong lần chuyển tiếp kế tiếp sang chế độ RUN. Ngoài việc xóa đi các ngõ vào, khởi chạy các ngõ ra và khởi chạy bộ nhớ không có khả năng giữ lại, sự khởi động lại còn khởi kích hoạt các vùng nhớ có khả năng giữ lại. Sau một khởi động lại theo sau sự tải xuống, tất cả các chuyển đổi STOP sang RUN tuần tự cũng sẽ thực hiện một sự khởi động lại nóng (mà không kích hoạt bộ nhớ có khả năng giữ).

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 5

SIMATIC S7 - 1200

2.1.1. Các chế độ hoạt động của CPU. CPU có 3 chế độ hoạt động: chế độ STOP, chế độ STARTUP và chế độ RUN. Các LED trạng thái trên mặt trước của CPU biểu thị chế độ hiện thời của sự vận hành.  Trong chế độ STOP, CPU không thực thi chương trình nào, và ta có thể tải xuống một đề án.  Trong chế độ STARTUP, các OB khởi động (nếu có) được thực thi một lần. Các sự kiện ngắt không được xử lý cho đến pha khởi động của chế độ RUN.  Trong chế độ RUN, chu kỳ quét được thực thi một cách lặp lại. Các sự kiện ngắt có thể xuất hiện và được thực thi tại bất kỳ điểm nào nằm trong pha chu kỳ chương trình. Ta không thể tải xuống một đề án trong khi đang ở chế độ RUN. CPU hỗ trợ một sự khởi động lại nóng để đi vào chế độ RUN. Khởi động lại nóng không bao gồm một sự đặt lại bộ nhớ. Tất cả các hệ thống không có khả năng giữ và dữ liệu người dùng đều được khởi chạy tại một sự khởi động lại nóng. Dữ liệu người dùng có khả năng giữ vẫn được giữ nguyên. Một bộ nhớ đặt lại sẽ xóa tất cả các bộ nhớ làm việc, xóa các vùng nhớ có khả năng giữ và không có khả năng giữ, và sao chép bộ nhớ nạp đến bộ nhớ làm việc. Một sự đặt lại bộ nhớ không xóa đi bộ đệm chẩn đoán hay các giá trị được lưu vĩnh viễn của địa chỉ IP. Ta có thể chỉ định chế độ bật nguồn của CPU hoàn thành với phương pháp khởi động lại bằng cách sử dụng phần mềm lập trình. Biểu tượng cấu hình này xuất hiện trong mục Device Configuration đối với CPU đang trong khởi động. Khi nguồn được bật, CPU thực hiện một tuần tự các kiểm tra chẩn đoán bật nguồn và khởi chạy hệ thống. CPU sau đó sẽ đi vào chế độ bật nguồn tương ứng. Tất nhiên các lỗi được phát hiện sẽ ngăn không cho CPU đi vào chế độ RUN. CPU hỗ trợ các chế độ bật nguồn sau đây:  Chế độ STOP  Chuyển sang chế độ RUN sau một sự khởi động lại nóng CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 6

SIMATIC S7 - 1200

 Chuyển sang chế độ trước đó sau một sự khởi động lại nóng

Ta có thể thay đổi chế độ vận hành hiện thời bằng cách sử dụng các lệnh “STOP” hay “RUN” từ các công cụ trực tuyến của phần mềm lập trình. Ta cũng có thể bao gồm một lệnh STP trong chương trình để chuyển CPU về chế độ STOP. Điều này cho phép ta dừng sự thực thi chương trình dựa trên logic lập trình. Trong chế độ STOP, CPU  xử lý bất kỳ các yêu cầu truyền thông nào (thích hợp) và  thực hiện tự chẩn đoán. Trong chế độ STOP, CPU không thực thi chương trình người dùng, và các cập nhật tự động của ảnh tiến trình sẽ không xuất hiện. Ta có thể tải xuống đề á chỉ khi CPU ở trong chế độ STOP. Trong chế độ RUN, CPU thực hiện các tác vụ được thể hiện như trong hình sau đây:

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 7

SIMATIC S7 - 1200

STARTUP A Xóa vùng nhớ I. B Khởi chạy các ngõ ra cả với giá trị cuối cùng hay giá trị thay thế. C Thực thi các OB khởi động. D Sao chép trạng thái của các ngõ vào vật lý đến vùng nhớ I. E Lưu trữ bất kỳ các sự kiện ngắt nào vào trong thứ tự để xử lý trong chế độ RUN. F Kích hoạt việc ghi vùng nhớ Q đến các ngõ ra vật lý. RUN  Ghi bộ nhớ Q đến các ngõ ra vật lý.  Sao chép trạng thái các ngõ vào vật lý đến vùng nhớ I.  Thực thi các OB chu kỳ chương trình.  Thực hiện các chẩn đoán tự kiểm tra.  Xử lý các ngắt và truyền thông trong suốt bất kỳ phần nào của chu kỳ quét.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 8

SIMATIC S7 - 1200

Tiến trình khởi động (STARTUP) Khi trạng thái hoạt động thay đổi từ STOP sang RUN, CPU xóa đi các ngõ vào ảnh tiến trình, khởi chạy các ngõ ra ảnh tiến trình và thực thi các OB khởi động. Bất kỳ việc đọc nào truy xuất đến các ngõ vào ảnh tiến trình bằng các lệnh trong các OB khởi động sẽ đọc giá trị zero hơn là giá trị ngõ vào vật lý hiện thời. Do vậy, để đọc trạng thái hiện thời của một ngõ vào vật lý trong suốt chế độ khởi động, ta phải thực hiện một việc đọc tức thời. Các OB khởi động và bất kỳ các FC và FB nào có liên quan sẽ được thực thi tiếp theo. Nếu có nhiều hơn 1 OB khởi động tồn tại, mỗi OB đó sẽ được thực thi theo thứ tự số hiệu OB, trong đó số hiệu OB thấp nhất được thực thi đầu tiên. Mỗi OB khởi động bao gồm thông tin khởi động giúp ta xác định tính hợp lệ của các dữ liệu lưu giữ và của đồng hồ giờ trong ngày. Ta có thể lập trình các lệnh bên trong các OB khởi động để kiểm tra các giá trị khởi động này và để thực hiện thao tác thích hợp. Các vùng khởi động sau đây được hỗ trợ bởi các OB khởi động: Ngõ vào

Kiểu dữ liệu

Miêu tả

LostRetentive

Bool

Bit này đúng nếu các vùng lưu trữ dữ liệu giữ đã bị mất

LostRTC

Bool

Bit này đúng nếu đồng hồ giờ trong ngày (Real time Clock) đã bị mất

CPU còn thực hiện các tác vụ sau đây trong suốt quá trình khởi động:  Các ngắt được sắp thứ tự nhưng không được thực thi trong suốt pha khởi động  Không có việc giám sát thời gian chu trình nào được thực hiện trong suốt pha khởi động  Sự cấu hình làm thay đổi các module HSC, PWM và PtP đều có thể được thực hiện trong lúc khởi động  Sự vận hành thực tế của các module HSC, PWM và PtP chỉ xuất hiện trong chế độ RUN

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 9

SIMATIC S7 - 1200

Sau khi sự thực thi của các OB khởi động đã hoàn thành, CPU đi vào chế độ RUN và thực thi các tác vụ điều khiển trong một chu kỳ quét liên tiếp. Việc thực thi chu kỳ quét trong suốt chế độ RUN Đối với mỗi chu kỳ quét, CPU ghi các ngõ ra, đọc các ngõ vào, thực thi chương trình người dùng, cập nhật các module truyền thông, thực hiện các công việc nội dịch (housekeeping) và đáp ứng đến các sự kiện ngắt của người dùng và các yêu cầu truyền thông. Các yêu cầu truyền thông được xử lý một cách định kỳ xuyên suốt quá trình quét. Các hoạt động này (ngoại trừ các sự kiện ngắt của người dùng) được thực hiện thường xuyên và theo một trật tự tuần tự. Các sự kiện ngắt của người dùng được kích hoạt sẽ được phục vụ với mức ưu tiên theo trật tự mà chúng xuất hiện. Hệ thống đảm bảo rằng chu kỳ quét sẽ được hoàn tất trong một chu kỳ thời gian được gọi là thời gian chu trình tối đa, nếu không một sự kiện lỗi thời gian sẽ được sinh ra.  Mỗi chu kỳ quét bắt đầu bằng việc tìm kiếm các giá trị hiện thời của các ngõ ra kiểu số hay kiểu tương tự từ ảnh tiến trình và sau đó ghi chúng đến các ngõ ra vật lý của CPU, các module SB và SM được cấu hình cho việc cập nhật I/O tự động (cấu hình mặc định). Khi một ngõ ra vật lý được truy xuất bởi một lệnh, cả ảnh tiến trình ngõ ra và bản thân ngõ ra vật lý đều được cập nhật.  Chu kỳ quét tiếp tục bằng việc đọc các giá trị hiện thời của các ngõ vào kiểu số hay kiểu tương tự từ CPU, các module SB, SM được cấu hình cho việc cập nhật I/O tự động (cấu hình mặc định), và sau đó ghi các giá trị này đến ảnh tiến trình. Khi một ngõ vào vật lý được truy xuất bởi một lệnh, giá trị của ngõ vào vật lý được truy xuất, nhưng ảnh tiến trình ngõ vào không được cập nhật.  Sau khi đọc các ngõ vào, chương trình người dùng được thực thi từ lệnh đầu tiên cho đến lệnh cuối cùng. Điều này bao gồm tất cả các OB chu kỳ chương trình cộng với tất cả các FC và FB có liên quan của chúng. Các OB chu kỳ chương tình được thực thi theo trật tự của số hiệu OB, trong đó số hiệu OB thấp nhất được thực thi trước tiên. CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 10

SIMATIC S7 - 1200

Việc xử lý các truyền thông xuất hiện một cách định kỳ trong suốt quá trình quét, có thể ngắt sự thực thi chương trình người dùng. Các kiểm tra tự chẩn đoán bao gồm cả các kiểm tra định kỳ của hệ thống và các kiểm tra trạng thái module I/O. Các ngắt có thể xuất hiện trong suốt bất kỳ phần nào của chu kỳ quét, và được điều khiển theo sự kiện. Khi một sự kiện xuất hiện, CPU ngắt chu kỳ quét và gọi OB đã được cấu hình để thực thi sự kiện đó. Sau khi OB hoàn thành việc thực thi sự kiện, CPU khôi phục lại sự thực thi của chương trình người dùng tại điểm ngắt. Khối tổ chức (OB) Các OB điều khiển sự thực thi của chương trình người dùng. Mỗi OB phải có một số hiệu OB duy nhất. Một số số hiệu OB mặc định được đảo ngược dưới giá trị 200. Các OB khác phải được đánh số từ 200 hay lớn hơn. Các sự kiện riêng biệt trong CPU kích hoạt sự thực thi của một khối tổ chức. Các OB không thể gọi lẫn nhau hay được gọi từ một FC hay FB. Chỉ có một sự kiện khởi động, như là một ngắt chẩn đoán hay một khoảng cách thời gian, là có thể khởi động sự thực thi của một OB. CPU xử lý các OB theo các lớp ưu tiên tương ứng của chúng, trong đó các OB có mức ưu tiên cao hơn được xử lý trước các OB có mức ưu tiên thấp hơn. Lớp ưu tiên thấp nhất là 1 (đối với chu kỳ chương trình chính), và lớp ưu tiên cao nhất là 27 (đối với các ngắt lỗi thời gian). OB điều khiển các sự vận hành sau đây:  Các OB chu kỳ chương trình thực thi một cách tuần hoàn trong khi CPU đang ở chế độ RUN. Khối chính của chương trình là một OB chu kỳ chương trình. Đây là nơi mà ta đặt các lệnh điều khiển chương trình và cũng là nơi ta gọi các khối người dùng bổ sung. Nhiều OB chu kỳ chương trình được cho phép và được thực thi theo thứ tự bằng số. OB 1 là mặc định. Các OB chu kỳ chương trình khác phải được nhận dạng là OB 200 hay lớn hơn.  Các OB trì hoãn thời gian thực thi tại một khoảng thời gian dừng được xác định sau một sự kiện, được cấu hình hình bởi lệnh ngắt khởi động (SRT_DINT). Thời gian trì hoãn được xác định trong thông số ngõ vào của lệnh mở rộng CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 11

SIMATIC S7 - 1200

SRT_DINT. Một OB trì hoãn thời gian ngắt sự thực thi chương trình theo chu trình chuẩn khi một thời gian trì hoãn được định trước đã trôi qua. Ta có thể cấu hình tối đa 4 sự kiện ngắt trì hoãn thời gian tại bất kỳ thời gian nào đã cho, với một OB được cho phép cho mỗi sự kiện trì hoãn thời gian được cấu hình. OB trì hoãn thời gian phải là từ OB 200 trở lên.  Các OB ngắt theo chu trình thực thi tại mỗi khoảng thời gian dừng được xác định. Chúng sẽ ngắt sự thực thi chương trình theo chu trình tại khoảng thời gian do người dùng định trước, ví dụ như mỗi 2 giây. Ta có thể cấu hình tối đa 4 sự kiện ngắt theo chu trình, với một OB được cho phép cho mỗi sự kiện ngắt theo chu trình được cấu hình. OB này phải là OB 200 trở lên.  Các OB ngắt phần cứng thực thi khi sự kiện phần cứng có liên quan xuất hiện, bao gồm các ngưỡng tăng và giảm trên các ngõ vào số tích hợp và các sự kiện HSC. Một OB ngắt phần cứng sẽ ngắt sự thực thi chương trình theo chu trình chuẩn theo phản ứng đến một tín hiệu từ sự kiện phần cứng. Ta xác định các sự kiện trong các thuộc tính của cấu hinh phần cứng. Một OB được cho phép cho mỗi sự kiện phần cứng được cấu hình. OB này phải là OB 200 trở lên.  Các OB ngắt lỗi thời gian thực thi ki một lỗi thời gian được phát hiện. Một OB ngắt lỗi thời gian sẽ ngắt sự thực thi chương trình theo chu trình chuẩn nếu thời gian chu trình tối đa đã bị vượt quá. Thời gian chu trình tối đa được xác định trong các thuộc tính của PLC. Chỉ có OB 80 là OB được hỗ trợ cho các sự kiện lỗi thời gian. Ta có thể cấu hình thao tác để thực hiện khi không có mặt OB 80: hoặc bỏ qua lỗi hoặc chuyển về STOP.  Các OB ngắt lỗi chẩn đoán thực thi khi một lỗi chẩn đoán được phát hiện và được báo cáo lại. Một OB chẩn đoán sẽ ngắt sự thực thi chương trình theo chu trình chuẩn nếu một module có khả năng chẩn đoán phát hiện ra một lỗi (nếu sự ngắt lỗi chẩn đoán đã được khởi động cho module). Chỉ có OB 82 là OB được hỗ trợ cho sự kiện lỗi chẩn đoán. Nếu không có OB chẩn đoán nào trong chương trình, ta có thể cấu hình CPU để hoặc bỏ qua lỗi hoặc chuyển về STOP.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 12

SIMATIC S7 - 1200

2.1.2. Các mức ưu tiên và sự sắp xếp việc thực thi sự kiện. Việc xử lý của CPU được điều khiển bởi các sự kiện. Các sự kiện kích hoạt các OB ngắt để được thực thi. OB ngắt cho một sự kiện được xác định trong suốt quá trình tạo ra khối, trong mục Device Configuration hay với một lệnh ATTACH hoặc DETACH. Một số sự kiện xảy ra trên một nền tảng có hệ thống giống như chu kỳ chương trình hay các sự kiện theo chu trình. Các sự kiện khác chỉ xảy ra trong một thời gian ngắn, giống như sự kiện khởi động và các sự kiện trì hoãn thời gian. Một số sự kiện xảy ra khi có một sự thay đổi được kích hoạt bởi phần cứng, ví dụ như một sự kiện ngưỡng trên một điểm ngõ vào hay một sự kiện bộ đếm tốc độ cao. Ngoài ra còn có các sự kiện như sự kiện lỗi chẩn đoán và sự kiện lỗi thời gian chỉ xảy ra khi có một lỗi. Các mức ưu tiên sự kiện, các nhóm và thứ tự ưu tiên được sử dụng để xác định trật tự xử lý đối với các OB ngắt sự kiện. Sự kiện chu kỳ chương trình xảy ra một lần trong suốt mỗi chu kỳ chương trình (hay chu kỳ quét). Trong suốt chu kỳ chương trình, CPU ghi các ngõ ra, đọc các ngõ vào và thực thi các OB chu kỳ chương trình. Sự kiện chu kỳ chương trình là cần thiết và luôn luôn được kích hoạt. Ta có thể không có các OB chu kỳ chương trình, hoặc có nhiều OB được lựa chọn cho mỗi sự kiện chu kỳ chương trình. Sau khi sự kiện chu kỳ chương trình được kích hoạt, OB chu kỳ chương trình được đánh số thấp nhất (thường là OB 1) sẽ được thực thi. Các OB chu kỳ chương trình khác được thực thi một cách tuần tự, theo trật tự được đánh số, chỉ trong chu kỳ chương trình. Các sự kiện ngắt theo chu trình cho phép ta cấu hình sự thực thi của một OB ngắt tại một khoảng thời gian được cấu hình. Khoảng thời gian được cấu hình khi OB được tạo ra và được lựa chọn để trở thanh một OB ngắt theo chu trình. Các sự kiện theo chu trình sẽ ngắt chu kỳ chương trình và thực thi OB ngắt theo chu trình (sự kiện theo chu trình nằm ở nhóm mức ưu tiên cao hơn so với sự kiện chu kỳ chương trình). Chỉ một OB ngắt theo chu trình là có thể được gắn kèm đến một sự kiện theo chu trình. CPU hỗ trợ 4 sự kiện ngắt theo chu trình. Các OB ngắt theo chu trình có một thuộc tính dịch chuyển pha, vì vậy sự thực thi của các ngắt theo chu trình trong chu kỳ thời gian giống nhau có thể được dịch chỉnh từ một thời gian khác bởi một độ dịch chỉnh pha. CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 13

SIMATIC S7 - 1200

Sự kiện khởi động xảy ra một lần trên sự chuyển đổi từ STOP sang RUN và làm cho OB khởi động được thực thi. Nhiều OB có thể được lựa chọn cho sự kiện khởi động. Các OB khởi động được thực thi theo thứ tự đánh số. Các sự kiện ngắt trì hoãn thời gian cho phép ta cấu hình sự thực thi của một OB ngắt sau khi một thời gian trì hoãn đã trôi qua. Thời gian trì hoãn được xác định với lệnh SRT_DINT. Các sự kiện trì hoãn thời gian sẽ ngắt chu kỳ chương trình để thực thi OB ngắt trì hoãn thời gian. Chỉ có một OB ngắt trì hoãn thời gian là có thể được gắn kèm vào một sự kiện trì hoãn thời gian. CPU hỗ trợ 4 sự kiện trì hoãn thời gian. Các sự kiện ngắt phần cứng được kích hoạt bởi một sự thay đổi trong phần cứng, ví dụ một ngưỡng tăng hay ngưỡng giảm trên một điểm ngõ vào, hay một sự kiện HSC. Có thể có một OB ngắt được lựa chọn cho mỗi sự kiện ngắt phần cứng. Các sự kiện phần cứng được cho phép trong phần Device configuration. Các OB được xác định cho sự kiện trong Device configuration hay với một lệnh ATTACH trong chương trình người dùng. CPU hỗ trợ một số sự kiện ngắt phần cứng. Các sự kiện chính xác được dựa trên kiểu CPU và số lượng các điểm ngõ vào. Các sự kiện ngắt lỗi chẩn đoán và ngắt lỗi thời gian được kích hoạt khi CPU phát hiện một lỗi. Các sự kiện này nằm ở nhóm mức ưu tiên cao hơn so với các sự kiện ngắt khác và có thể ngắt sự thực thi của các sự kiện trì ngắt phần cứng, ngắt theo chu trình và ngắt trì hoãn thời gian. Một OB ngắt có thể được xác định cho mỗi sự kiện trong các sự kiện ngắt lỗi chẩn đoán và ngắt lỗi thời gian. Nhận biết các mức ƣu tiên và xếp hàng thực thi sự kiện Số lượng các sự kiện chờ (xếp hàng) từ một nguồn đơn lẻ được giới hạn bằng cách sử dụng một hàng khác cho mỗi kiểu sự kiện. Dưới sự đạt đến giới hạn của các sự kiện chờ đối với một kiểu sự kiện đã cho, sự kiện tiếp theo sẽ bị mất. Mỗi sự kiện CPU có một mức ưu tiên liên quan, và các mức ưu tiên được phân loại vào trong các nhóm ưu tiên. Bảng sau đây tóm lược các độ sâu xếp hàng, các nhóm ưu tiên và các mức ưu tiên cho các sự kiện CPU được hỗ trợ.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 14

SIMATIC S7 - 1200

Lƣu ý Ta không thể thay đổi việc gán mức ưu tiên hay nhóm ưu tiên và độ sâu xếp hàng

Thông thường, các sự kiện được phục vụ theo thứ tự mức ưu tiên (mức ưu tiên cao nhất trước tiên). Các sự kiện có cùng mức ưu tiên sẽ được phục vụ trên cơ sở “đến trước, phục vụ trước”. Kiểu sự kiện

Số lƣợng

(OB)

Các số hiệu OB

Độ sâu

Nhóm

Mức

hợp lệ

xếp hàng

ƣu tiên

ƣu tiên

1

1

1

Program

1 chu kỳ chương trình

1 (mặc định)

cycle

Nhiều OB được cho phép

200 hay lớn hơn

1 sự kiện khởi động 1

100 (mặc định)

Nhiều OB được cho phép

200 hay lớn hơn

Startup

Time Delay

4 sự kiện trì hoãn thời gian

1

200 hay lớn hơn

8

200 hay lớn hơn

8

4

200 hay lớn hơn

32

5

200 hay lớn hơn

16

6

Chỉ 82

8

9

gian Chỉ 82

8

1 OB cho mỗi sự kiện 4 sự kiện theo chu trình

Cyclic

1

1 OB cho mỗi sự kiện

2

3

16 sự kiện ngưỡng tăng 16 sự kiện ngưỡng giảm

Edges

1 OB cho mỗi sự kiện 6 sự kiện CV = PV 6 sự kiện mệnh lệnh thay đổi

HSC

6 sự kiện đặt lại bên ngoài 1 OB cho mỗi sự kiện Diagnostic

1 sự kiện

Error Sự kiện Time Error/

Sự 1 sự kiện lỗi thời gian

kiện

1

sự

kiện

MaxCycle

MaxCycle

thời

3

26

time

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 15

SIMATIC S7 - 1200 Sự

kiện

2xMaxCycle time 1

1 sự kiện 2xMaxCycle Không có OB time

được gọi

-

3

27

Các trường hợp đặc biệt đối với sự kiện khởi động: 

Sự kiện khởi động và sự kiện chu kỳ chương trình sẽ không bao giờ xuất hiện tại cùng một thời điểm vì sự kiện khởi động sẽ hoàn thành trước khi sự kiện chu kỳ chương trình được bắt đầu (điều này được điều khiển bởi hệ điều hành).



Không có sự kiện nào được cho phép để ngắt sự kiện khởi động. Các sự kiện xuất hiện trong suốt sự kiện khởi động thay vào đó được xếp hàng để xử lý sau, sau khi sự kiện khởi động được hoàn tất.

Sau khi sự thực thi của một OB đã bắt đầu, việc xử lý OB không thể bị ngắt bằng sự xuất hiện của một sự kiện khác từ cùng một nhóm ưu tiên hay thấp hơn. Các sự kiện nào được xếp hàng để xử lý sau sẽ cho phép OB hiện thời hoàn tất. Tuy nhiên, sự kiện từ một nhóm ưu tiên cao hơn sẽ ngắt OB hiện thời, và CPU sau đó sẽ thực thi OB của sự kiện có mức ưu tiên cao hơn. Sau khi OB có mức ưu tiên cao hơn hoàn tất, CPU thực thi các OB của các sự kiện khác được xếp hàng trong nhóm ưu tiên cao này, dựa trên mức ưu tiên nằm trong nhóm đó. Khi không có sự kiện nào đang chờ (xếp hàng) trong nhóm ưu tiên cao hơn này, CPU sẽ trở lại đến nhóm ưu tiên thấp hơn và khôi phục lại việc xử lý của OB đã bị xóa rỗng trước, tại điểm mà việc xử lý của OB đó đã bị ngắt. Độ trễ ngắt Độ trễ sự kiện ngắt (thời gian tính từ thông báo của CPU rằng một sự kiện đã xuất hiện cho đến khi CPU bắt đầu việc thực thi của lệnh đầu tiên trong OB phục vụ sự kiện) là xấp xỉ 210 micro giây, cho biết rằng một OB chu kỳ chương trình chỉ là chương trình con phục vụ sự kiện kích hoạt tại thời điểm của sự kiện ngắt.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 16

SIMATIC S7 - 1200

Nhận biết các sự kiện lỗi thời gian Sự xuất hiện của bất kỳ trong một số các điều kiện lỗi thời gian khác nhau, gây ra kết quả là một sự kiện lỗi thời gian. Các sự kiện lỗi thời gian sau đây là được hỗ trợ:  Thời gian chu trình tối đa bị vượt quá  OB được yêu cầu không thể được khởi động  Sự tràn ra trong hàng chờ đã xuất hiện Điều kiện thời gian chu trình tối đa bị vượt quá xảy ra khi chu kỳ chương trình không hoàn tất trong khoảng thời gian chu trình quét tối đa được định trước. Điều kiện OB được yêu cầu không thể được khởi động xảy ra khi một OB được yêu cầu bởi một ngắt theo chu trình hay một ngắt trì hoãn thời gian, nhưng OB được yêu cầu đó lại vừa mới đang được thực thi. Điều kiện tràn ra trong hàng chờ xảy ra khi các ngắt xuất hiện nhanh hơn so với tốc độ chúng được xử lý. Số lượng các sự kiện chờ (xếp hàng) được giới hạn bằng cách sử dụng một hàng chờ khác nhau cho mỗi kiểu sự kiện. Nếu một sự kiện xuất hiện khi hàng chờ tương ứng đang đầy, một sự kiện lỗi thời gian được sinh ra. Tất cả các sự kiện lỗi thời gian sẽ kích hoạt sự thực thi của OB 80 nếu có. Nếu OB 80 không tồn tại, CPU sẽ bỏ qua lỗi này. Nếu hai điều kiện thời gian chu trình tối đa bị vượt quá xuất hiện trong cùng một chu kỳ chương trình mà không đặt lại bộ định thì chu kỳ, CPU sẽ chuyển về chế độ STOP, bất chấp OB 80 có tồn tại hay không. OB 80 bao gồm các thông tin khởi động giúp ta xác định sự kiện và OB nào đã sinh ra lỗi. Ta có thể lập trình tập lệnh bên trong OB 80 để kiểm tra các giá trị khởi động này và để thực hiện thao tác thích hợp. Các vùng khởi động sau đây được hỗ trợ bởi OB 80:

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 17

SIMATIC S7 - 1200 Ngõ vào

Kiểu dữ liệu

Miêu tả 16#01 – thời gian chu trình tối đa bị vượt quá

fault_id

BYTE

16#01 – OB được yêu cầu không thể được khởi động 16#07 vaf 16#09 – sự tràn quá hàng chờ đã xuất hiện

csg_OBnr

ON_ANY

Số hiệu của OB đã đang được thực thi khi lỗi xuất hiện

csg_prio

UINT

Mức ưu tiên của OB gây ra lỗi

Không có OB 80 ngắt lỗi thời gian nào hiện diện khi ta tạo ra một đề án mới. Nếu muốn, ta thêm một OB 80 ngắt lỗi thời gian vào đề án bằng cách nhấp đôi chuột vào “Add new block” phía dưới “Program blocks”, sau đó chọn “Organization block” và “Time error interrupt”. Nhận biết các sự kiện lỗi chẩn đoán Một vài thiết bị có khả năng phát hiện và báo cáo lại các lỗi chẩn đoán. Sự xuất hiện hay việc gỡ bỏ của bất kỳ trong một số các điều kiện lỗi chẩn đoán khác nhau sẽ gây ra một sự kiện lỗi chẩn đoán. Các lỗi chẩn đoán sau đây là được hỗ trợ:  Không có nguồn điện của người dùng  Giới hạn cao bị vượt quá  Giới hạn thấp bị vượt quá  Đứt dây nối  Ngắn mạch Tất cả các sự kiện lỗi chẩn đoán sẽ kích hoạt sự thực thi của OB 82 nếu nó tồn tại. Nếu OB 82 không tồn tại, CPU sau đó sẽ bỏ qua lỗi. Không có OB 82 ngắt lỗi chẩn đoán nào hiện diện khi ta tạo ra một đề án. Nếu muốn, ta thêm một OB 82 ngắt lỗi chẩn đoán vào đề án bằng cách nhấp đôi chuột vào “Add new block” phía dưới “Program blocks”, sau đó chọn “Organization block” và “Diagnostic error interrupt”. OB 82 bao gồm các thông tin khởi động giúp ta xác định khi nào sự kiện là dựa vào sự xuất hiện hay sự gỡ bỏ một lỗi, và thiết bị cùng với kênh mà báo cáo lại lỗi đó.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 18

SIMATIC S7 - 1200

Ta có thể lập trình tập lệnh bên trong OB 82 để kiểm tra các giá trị khởi động này và để thực hiện thao tác thích hợp. Các vùng khởi động sau đây được hỗ trợ bởi OB 82: Ngõ vào

Kiểu dữ liệu

Miêu tả

IOstate

WORD

Trạng thái I/O của thiết bị

laddr

HW_ANY

channel

UINT

Số hiệu kênh

multierror

BOOL

Nhận giá trị TRUE nếu có nhiều hơn một lỗi hiện diện

Nhận dạng phần cứng của thiết bị hay của hàm cho đến khi nó báo cáo lại lỗi

Bit 4 của IO_state biểu thị khi nào sự kiện là do bởi sự xuất hiện hay sự gỡ bỏ của một lỗi. Bit 4 sẽ bằng 1 nếu một lỗi hiện diện (ví dụ: đứt dây nối) và bằng 0 nếu lỗi không hiện diện. Ngõ vào ladder chứa bộ định danh phần cứng (HW ID) của thiết bị hay các đơn vị chức năng trả về lỗi. HW ID được gán một cách tự động khi các thành phần được lắp vào thiết bị hay kiểu xem mạng và xuất hiện trong thẻ Constants của các thẻ ghi PLC. Một tên gọi còn được gán một cách tự động cho HW ID. Các mục nhập này trong thẻ Constants của các thẻ ghi PLC là không thể thay đổi. Số hiệu kênh bắt đầu tại giá trị 0 đối với điểm ngõ vào đầu tiên (kiểu tương tự hay kiểu số) và bắt đầu tại gia trị 64 đối với điểm ngõ ra đầu tiên (kiểu tương tự hay kiểu số). Những sự dịch chỉnh khác nhau là cần thiết để phân biệt các ngõ vào với các ngõ ra trong sự kiện mà thiết bị chứa cả hai. Nếu một lỗi ảnh hưởng đến thiết bị hoàn chỉnh và đơn vị chức năng, ví dụ như không có nguồn, thì bit có trọng số lớn nhất của ký tự số hiệu kênh sẽ được đặt (số hiệu kênh 32768).

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 19

SIMATIC S7 - 1200

Giám sát thời gian chu trình Thời gian chu trình là thời gian mà hệ điều hành CPU cần thiết để thực thi pha theo chu kỳ của chế độ RUN. CPU cung cấp cả hai phương pháp giám sát thời gian chu trình:  Thời gian chu trình quét tối đa  Thời gian chu trình quét tối thiểu cố định Việc giám sát chu trình quét bắt đầu sau khi sự kiện khởi động hoàn tất. Sự cấu hình cho chức năng này xuất hiện dưới mục “Device Configuration” của CPU trong “Cycle time”. CPU luôn luôn giám sát chu kỳ quét và phản ứng lại nếu thời gian chu trình quét tối đa bị vượt quá. Nếu thời gian chu trình quét tối đa bị vượt quá, một lỗi được sinh ra và được xử lý theo một trong hai cách sau:  Nếu không có OB 80 ngắt lỗi thời gian hiện diện, CPU sẽ sinh ra một lỗi và tiếp tục thực thi chương trình người dùng.  Nếu một OB 80 ngắt lỗi thời gian hiện diện, CPU sẽ thực hiện OB 80. Lệnh RE_TRIGR (kích hoạt lại việc giám sát thời gian chu trình) cho phép ta đặt lại bộ định thì đo thời gian chu trình. Tuy nhiên lệnh này chỉ có tác dụng nếu nó được thực thi trong một OB chu kỳ chương trình; lệnh RE_TRIGR sẽ bị bỏ qua nếu được thực thi trong OB 80. Nếu thời gian chu trình quét tối đa bị vượt quá hai lần trong cùng một chu kỳ chương trình mà không có sự thực thi lệnh RE_TRIGR giữa cả hai lần, CPU sau đó sẽ chuyển về STOP ngay lập tức. Việc sử dụng các sự thực thi lặp lại của lệnh RE_TRIGR có thể tạo ra một vòng lặp vô tận hay một chu trình quét rất dài. Thông thường, chu trình quét thực thi nhanh nhất có thể và chu trình quét kế tiếp bắt đầu ngay khi chu trình quét hiện thời hoàn tất. Phụ thuộc theo chương trình người dùng và các tác vụ truyền thông, thời gian chu trình của mỗi chu trình quét có thể khác nhau giữa các chu trình quét. Để loại bỏ sự khác nhau này, CPU hỗ trợ một thời gian chu trình quét tối thiểu cố định (còn được gọi là chu trình quét cố định) tùy CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 20

SIMATIC S7 - 1200

chọn. Khi chức năng tùy chọn này được kích hoạt và một thời gian chu trình quét tối thiểu cố định được cung cấp theo mili giây, CPU sẽ duy trì thời gian chu trình tối thiểu trong khoảng ± 1 ms đối với sự hoàn thành của mỗi chu trình quét CPU. Trong một sự kiện mà CPU hoàn tất chu trình quét bình thường trong khoảng thời gian nhỏ hơn thời gian chu trình quét tối thiểu được định trước, CPU sẽ sử dụng thời gian bổ sung của chu trình quét để thực hiện các chẩn đoán thời gian vận hành và/hoặc để xử lý các yêu cầu truyền thông. Theo cách này CPU luôn luôn mất một lượng thời gian cố định để hoàn tất một chu trình quét. Trong một sự kiện mà CPU không thể hoàn tất chu trình quét trong khoảng thời gian chu trình tối thiểu được xác định, CPU sẽ hoàn tất chu trình quét một cách bình thường (bao gồm cả việc xử lý truyền thông) và không tạo ra bất kỳ phản ưng hệ thống nào như là kết quả của việc vượt quá thời gian quét tối thiểu. Bảng sau đây xác định phạm vi và các mặc định đối với các chức năng giám sát thời gian chu trình: Thời gian chu trình Thời gian chu trình quét tối đa 1

Phạm vi (ms) 1 đến 6000

Thời gian chu trình quét tối thiểu cố định 1 đến thời gian chu trình quét tối 2

1

đa

Mặc định 150 ms Bị vô hiệu

Thời gian chu trình quét tối đa luôn luôn được kích hoạt. Ta cấu hình một thời gian

chu trình giữa 1 ms đến 6000 ms. Mặc định là 150 ms. 2

Thời gian chu trình quét tối thiểu là tùy chọn, và theo mặc định nó bị vô hiệu hóa.

Nếu cần thiết ta cấu hình một thời gian chu trình giữa 1 ms và thời gian chu trình quét tối đa.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 21

SIMATIC S7 - 1200

Cấu hình thời gian chu trình và nạp truyền thông Ta sử dụng các thuộc tính của CPU trong Device Configuration để cấu hình các thông số sau đây:  Thời gian chu trình: ta nhập vào một thời gian chu trình quét tối đa. Cũng có thể nhập vào một thời gian chu trình quét tối thiểu cố định.

 Nạp truyền thông: ta có thể cấu hình một giá trị phần trăm của thời gian chuyên dụng cho các tác vụ truyền thông.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 22

SIMATIC S7 - 1200

2.1.3. Bộ nhớ CPU. Sự quản lý bộ nhớ CPU cung cấp các vùng nhớ sau đây để lưu trữ chương trình người dùng, dữ liệu và cấu hình:  Bộ nhớ nạp là một vùng lưu trữ không biến đổi dành cho chương trình người dùng, dữ liệu và cấu hình. Khi một đề án được tải xuống vào CPU, trước tiên nó được lưu trữ trong vùng bộ nhớ nạp. Vùng này được đặt trong cả trong một thẻ nhớ (nếu có) hay trong CPU. Vùng nhớ không biến đổi này vẫn được duy trì khi mất nguồn điện. Thẻ nhớ hỗ trợ một không gian lưu trữ lớn hơn vùng lưu trữ được tích hợp trong CPU.  Bộ nhớ làm việc là một vùng lưu trữ dành cho một vài phần tử của đề án người dùng trong khi đang thực thi chương trình người dùng. CPU sao chép một số phần tử trong đề án từ bộ nhớ nạp vào trong bộ nhớ làm việc. Bộ nhớ biến đổi này bị mất đi khi mất nguồn, và nó được lưu trữ bởi CPU khi nguồn được khôi phục lại.  Bộ nhớ giữ lại là một vùng lưu trữ không biến đổi dành cho một số lượng giới hạn các giá trị bộ nhớ làm việc. Vùng bộ nhớ giữ lại được sử dụng để lưu trữ các giá trị của các vị trí nhớ dành cho người dùng được chọn trong suốt thời gian không có nguồn. Khi nguồn được bật trở lại, CPU có đủ thời gian giữ lại để duy trì các giá trị của một số lượng giới hạn các vị trí nhớ đặc biệt. Các giá trị giữ lại này sau đó được khôi phục lại khi nguồn được bật. Để hiển thị việ sử dụng bộ nhớ đối với đề án hiện thời, nhấp chuột phải vào CPU (hay một trong các khối của CPU) và lựa chọn “Resources” từ ngữ cảnh. Để hiển thị việc sử dụng của CPU hiện thời, nhấp đôi chuột lên “Online and diagnostics”, mở rộng phần “Diagnostics” và lựa chọn “Memory”. Bộ nhớ lƣu giữ Việc mất đi dữ liệu sau khi nguồn gặp sự cố có thể được tránh bằng cách thao tác các dữ liệu chắc chắn theo dạng lưu giữ. Các dữ liệu sau đây có thể được cấu hình để được lưu giữ: CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 23

SIMATIC S7 - 1200

 Bộ nhớ bit (M): ta có thể xác định độ rộng chính xác của bộ nhớ đối với mỗi bộ nhớ bit trong bảng thẻ ghi PLC hay trong danh sách gán. Bộ nhớ bit lưu giữ luôn luôn khởi đầu tại MB0 và chạy lên liên tiếp đến một số lượng xác định các byte. Ta xác định giá trị này từ bảng thẻ ghi PLC hay trong danh sách gán bằng cách nhấp chuột lên biểu tượng “Retain”. Nhập vào số lượng các byte M để giữ lại khởi đầu tại MB0.  Các thẻ ghi trong một khối hàm (FB): nếu một khối hàm được tạo ra với hộp “Symbolic access only” được chọn, giao diện trình soạn thảo cho FB này sau đó sẽ chứa một cột “Retain”. Trong cột này, ta có thể lựa chọn cả “Retain” hay “Non-retain” một cách riêng biệt cho mỗi thẻ ghi. Một DB tức thời đã được tạo ra khi FB này được đặt trong trình soạn thảo sẽ cho thấy cột giữ lại này, nhưng chỉ cho mục đích hiển thị; ta không thể thay đổi trạng thái lưu giữ từ trong trình soạn thảo giao diện DB tức thời cho một FB mà FB đó đã được cấu hình là “Symbolic access only”. Nếu một FB đã được tạo ra với hộp “Symbolic access only” được hủy lựa chọn, trình soạn thảo giao diện cho FB này sẽ không bao gồm cột “Retain”. Một DB tức thời đã được tạo ra khi FB này được chèn vào trong trình soạn thảo chương trình sẽ cho thấy một cột “Retain” có thể chỉnh sửa. Trong trường hợp này, việc lựa chọn tùy chọn “Retain” cho bất kỳ mỗi thẻ ghi sẽ đưa đến kết quả là tất cả các thẻ ghi được lựa chọn. Tương tự, việc hủy lựa chọn tùy chọn đối với bất kỳ mỗi thẻ ghi sẽ đưa đến kết quả là tất cả các thẻ ghi được hủy lựa chọn. Đối với một FB đã được cấu hình không phải là “Symbolic access only”, ta có thể thay đổi trạng thái lưu giữ từ trong phạm vi trình soạn thảo DB tức thời, nhưng tất cả các thẻ ghi sẽ được thiết lập đến trạng thái lưu giữ cùng với nhau. Sau khi tạo ra FB, ta không thể thay đổi tùy chọn đối với “Symbolic access only”. Tùy chọn này chỉ có thể được lựa chọn khi FB được tạo ra. Để xác định khi nào một FB có sẵn đã được cấu hình cho “Symbolic access only”, nhấp chuột phải lên FB trong cây Project, lựa chọn “Properties”, và sau đó lựa chọn “Attributes”.  Các thẻ ghi của một khối dữ liệu tổng thể: trạng thái của một DB tổng thể liên quan đến việc gán trạng thái lưu giữ thì giống với trạng thái đó của một FB. Phụ CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 24

SIMATIC S7 - 1200

thuộc vào việc thiết lập đối với việc ghi địa chỉ biểu tượng, ta có thể xác định trạng thái lưu giữ cả đối với một thẻ ghi riêng lẻ hay đối với toàn bộ thẻ ghi của một khối dữ liệu tổng thể. -

Nếu thuộc tính “Symbolic access only” của DB được đánh dấu chọn, trạng thái lưu giữ có thể được thiết lập cho mỗi thẻ ghi riêng lẻ.

-

Nếu thuộc tính “Symbolic access only” của DB không được đánh dấu chọn, trạng thái lưu giữ được áp dụng đến tất cả các thẻ ghi của DB, tức là hoặc tất cả thẻ ghi là lưu giữ hoặc không có thẻ ghi nào là lưu giữ. Tổng cộng 2048 byte dữ liệu có thể là lưu giữ. Để xem có bao nhiêu byte, từ

bảng thẻ ghi PLC hay từ danh sách gán, ta nhấp chuột lên biểu tượng thanh công cụ “Retain”. Dòng thứ hai sẽ chỉ ra tổng bộ nhớ còn lại được kết hợp cho M và DB, mặc dù đây là nơi mà các phạm vi lưu giữ được xác định cho bộ nhớ M. Bộ đệm chẩn đoán CPU hỗ trợ một bộ đệm chẩn đoán chứa một mục nhập vào cho mỗi sự kiện chẩn đoán. Mỗi mục nhập vào bao gồm ngày và giờ mà sự kiện đã xuất hiện, một danh mục sự kiện và một phần miêu tả sự kiện. Các mục nhập vào được hiển thị theo thứ tự thời gian với sự kiện gần nhất ở trên cùng. Trong khi CPU duy trì nguồn điện, có tối đa 50 sự kiện gần nhất nằm trong nhật ký này. Khi nhật ký đầy, một sự kiện mới sẽ thay thể sự kiện xảy ra lâu nhất trong nhật ký. Khi nguồn bị mất, 10 sự kiện gần đây nhất sẽ được lưu lại. Các kiểu sự kiện sau đây được ghi lại trong bộ đệm chẩn đoán:  Mỗi sự kiện chẩn đoán hệ thống, ví dụ các lỗi CPU và các lỗi module  Mỗi sự thay đổi trạng thái của CPU (mỗi khi bật nguồn, mỗi sự chuyển đổi sang STOP, mỗi sự chuyển đổi sang RUN) Để truy xuất bộ đệm chẩn đoán, ta phải đang trực tuyến. Ta đặt nhật ký ở dưới mục “Online & Diagnostics/ Diagnostics/ Diagnostics buffer”.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 25

SIMATIC S7 - 1200

Đồng hồ giờ trong ngày CPU hỗ trợ một đồng hồ giờ trong ngày. Một tụ điện cỡ lớn cung cấp năng lượng cần thiết để giữ đồng hồ chạy trong suốt thời gian mà CPU được tắt nguồn. Tụ điện này được nạp trong lúc CPU được cấp nguồn. Đến ít nhất là 2 giờ sau khi CPU đã được tắt nguồn, tụ điện cỡ lớn này sẽ được nạp đầy để giữ cho đồng hồ vận hành trong khoảng thường là 10 ngày. Đồng hồ giờ trong ngày (Time of Day Clock) được đặt theo giờ hệ thống là giờ quốc tế phối hợp (Coordinate Universal Time – UTC). Có các lệnh đê đọc giờ hệ thống (RD_SYS_T) hay giờ cục bộ (RD_LOC_T). Giờ cục bộ được tính toán bằng cách sử dụng múi giờ và độ dịch chỉnh tiết kiệm ánh sáng ngày mà ta thiết lập trong mục Device configuration phần CPU Clock. Ta cấu hình đồng hồ giờ trong ngày dành cho CPU dưới thuộc tính “Time of day”. Ta còn có thể kích hoạt thời gian tiết kiệm ánh sáng ngày và xác định các thời điểm khởi động và dừng đối với thời gian tiết kiệm ánh sáng ngày. Để thiết lập đồng hồ giờ trong ngày, ta phải đang trực tuyến và ở trong kiểu xem “Online & Diagnostics” của CPU. Sử dụng chức năng “Set time of day”. Bộ nhớ hệ thống và bộ nhớ đếm thời gian Ta sử dụng các thuộc tính CPU để kích hoạt các byte dành cho “system memory” và “clock memory”. Logic chương trình có thể tham chiếu các bit riêng lẻ của các hàm này.  Ta có thể gán một byte trong bộ nhớ M cho bộ nhớ hệ thống. Byte của bộ nhớ hệ thống cung cấp 4 bit sau đây có thể được tham chiếu bởi chương trình người dùng: -

Bit “Always 0 (low)” luôn luôn được đặt về 0.

-

Bit “Always 1 (high)” luôn luôn được đặt lên 1.

-

“Diagnostic graph changed” được đặt lên 1 đối với một chu kỳ quét sau khi CPU ghi một sự kiện chẩn đoán. Vì CPU không đặt bit “diagnostic graph changed” cho đến kết thúc của lần thực thi đầu tiên của các OB chu kỳ chương trình, chương trình người dùng không thể phát hiện có một thay đổi chẩn đoán

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 26

SIMATIC S7 - 1200

cả trong suốt sự thực thi của các OB khởi động hay trong lần thực thi đầu tiên của các OB chu kỳ chương trình. -

Bit “First scan” được đặt lên 1 đối với khoảng thời gian của lần quét đầu tiên sau khi OB khởi động hoàn tất. (Sau sự thực thi của lần quét đầu tiên, bit “First scan” được đặt về 0)

 Ta có thể gán một byte trong bộ nhớ M cho bộ nhớ đếm thời gian. Mỗi bit của byte được cấu hình đóng vai trò như bộ nhớ đếm thời gian sẽ sinh ra một xung dạng sóng vuông. Byte của bộ nhớ đếm thời gian cung cấp 8 tần số khác nhau, từ 0,5 Hz (chậm) đến 10 Hz (nhanh). Ta có thể sử dụng các bit này như các bit điều khiển, đặc biệt khi kết hợp với các lệnh sườn, để kích hoạt các hoạt động trong chương trình người dùng trên một nền tảng theo chu trình. CPU khởi chạy các byte này trên sự chuyển đổi từ chế độ STOP sang chế độ STARTUP. Các bit của bộ nhớ đếm thời gian thay đổi một cách đồng bộ đến đồng hồ CPU xuyên suốt các chế độ STARTUP và RUN. CHÚ Ý Việc ghi đè lên các bit của bộ nhớ hệ thống hay bộ nhớ đếm thời gian có thể làm sai lạc dữ liệu trong các chức năng này và làm cho chương trình người dùng vận hành không chính xác, điều này có thể gây phá hủy thiết bị và gây thương tích cho con người. Bởi vì cả bộ nhớ đếm thời gian và bộ nhớ hệ thống đều không được dự trữ trong bộ nhớ M, các lệnh hay truyền thông có thể ghi đến các vị trí này và làm sai lạc dữ liệu. Tránh việc ghi dữ liệu đến các vị trí này để đảm bảo sự vận hành riêng của các chức năng này, và luôn luôn lắp đặt một mạch dừng khẩn cấp dành cho quy trình hay bộ máy.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 27

SIMATIC S7 - 1200

Bộ nhớ hệ thống cấu hình một byte mà byte đó sẽ bật (giá trị = 1) trong các điều kiện sau đây:  First scan: byte được bật đối với lần quét đầu tiên trong chế độ RUN  Diagnostic graph changed: -

Always 1 (high): luôn luôn bật

-

Always 0 (low): luôn luôn tắt Bộ nhớ đếm thời gian sẽ cấu

hình một byte mà byte đó bật và tắt một các tuần hoàn các bit riêng lẻ tại các khoảng thời gian dừng cố định. Các cờ của bộ đếm thời gian sinh ra một xung sóng vuông tương ứng với bit bộ nhớ M. Các bit này có thể được sử dụng như các bit điều khiển, đặc biệt khi kết hợp với các lệnh sườn, để kích hoạt các hoạt động trong chương trình người dùng dựa trên một nền tảng theo chu trình.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 28

SIMATIC S7 - 1200

Cấu hình trạng thái của các giá trị ngõ ra khi CPU ở trong chế độ STOP Ta có thể cấu hình trạng thái của các ngõ ra kiểu số và kiểu tương tự khi CPU đang trong chế độ STOP. Đối với bất kỳ ngõ ra nào của một CPU, SB hay SM, ta có thể thiết lập các ngõ ra hoặc gắn chặt giá trị hoặc sử dụng một giá trị thay thế:  Thay thế một giá trị ngõ ra được định trước (mặc định): ta nhập vào một giá trị thay thế cho mỗi ngõ ra (mỗi kênh) của thiết bị CPU, SB hay SM đó. Giá trị thay thế mặc định cho các kênh ngõ ra kiểu số là OFF, và giá trị thay thế mặc định cho các kênh ngõ ra kiểu tương tự là 0.  Gắn chặt các ngõ ta để duy trì trạng thái cuối cùng: các ngõ ra giữ lại giá trị hiện thời của chúng tại thời điểm của sự chuyển tiếp từ RUN sang STOP. Sau khi bật nguồn, các ngõ ra được đặt đến giá trị thay thế mặc định. Ta cấu hình trạng thái của các ngõ ra trong Device Configuration. Lựa chọn các thiết bị riêng lẻ và sử dụng thẻ “Properties” để cấu hình các ngõ ra cho mỗi thiết bị. Khi CPU chuyển từ RUN sang STOP, CPU giữ lại ảnh tiến trình và ghi các giá trị tương ứng cho cả các ngõ ra kiểu số và kiểu tương tự, dựa vào sự cấu hình.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 29

SIMATIC S7 - 1200

2.1.4. Bảo vệ bằng mật khẩu cho CPU S7-1200. CPU cung cấp 3 cấp độ bảo mật để hạn chế sự truy cập đến một số chức năng riêng biệt. Khi cấu hình cấp độ bảo mật và mật khẩu cho một CPU, ta giới hạn các chức năng và các vùng nhớ mà có thể truy cập không cần nhập vào mật khẩu. Để cấu hình mật khẩu ta làm theo các bước sau đây: 1. Trong mục “Device configuration”, lựa chọn CPU. 2. Trong cửa sổ kiểm tra, lựa chọn thẻ “Properties”. 3. Lựa chọn thuộc tính “Protection” để chọn cấp độ bảo vệ và để nhập vào mật khẩu. Mật khẩu là nhạy với loại chữ. Mỗi cấp độ cho phép các chức năng đã biết để có thể truy cập mà không cần một mật khẩu. Điều kiện mặc định cho CPU là phải không có sự hạn chế nào và không có một sự bảo vệ bằng mật khẩu nào. Để hạn chế việc truy xuất đến một CPU, ta cấu hình các thuộc tính của CPU và nhập vào mật khẩu. Việc nhập vào mật khẩu thông qua một mạng sẽ không làm giảm giá trị của sự bảo vệ bằng mật khẩu cho CPU. Một CPU được bảo vệ bằng mật khẩu chỉ cho phép một người dùng không bị hạn chế truy xuất tại một thời điểm. Sự bảo vệ bằng mật khẩu không áp dụng đến sự thực thi của tập lệnh chương trình người dùng bao gồm các hàm truyền thông. Việc nhập vào mật khẩu chính xác sẽ cung cấp truy xuất đến tất cả các chức năng. Truyền thông PLC đến PLC (sử dụng tập lệnh truyền thông trong các khối mã) là không bị hạn chế bởi cấp độ bảo mật trong CPU. Chức năng HMI cũng không bị hạn chế.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 30

SIMATIC S7 - 1200 Cấp độ bảo mật No protection

Những sự hạn chế truy cập Cho phép truy xuất toàn diện mà không cần bảo vệ bằng mật khẩu. Cho phép truy xuất HMI và tất cả các hình thức truyền thông PLC đến

Write protection

PLC mà không cần bảo vệ bằng mật khẩu. Mật khẩu được yêu cầu dành cho việc chỉnh sửa (ghi đến) CPU và cho việc thay đổi chế độ CPU (RUN/STOP). Cho phép truy xuất HMI và tất cả các hình thức truyền thông PLC đến

Read/write

PLC mà không cần bảo vệ bằng mật khẩu.

protection

Mật khẩu được yêu cầu dành cho việc đọc dữ liệu trong CPU, cho việc chỉnh sửa (ghi đến) và cho việc thay đổi chế độ CPU (RUN/STOP).

2.1.5. Sự phục hồi từ một mật khẩu bị mất. Nếu đã đánh mất mật khẩu của một CPU được bảo vệ bằng mật khẩu, ta sử dụng một thẻ chuyển trống để xóa đi chương trình được bảo vệ bằng mật khẩu. Thẻ chuyển trống sẽ xóa bộ nhớ nạp bên trong của CPU. Sau đó ta có thể tải xuống một chương trình người dùng mới từ phần mềm STEP 7 Basic đến CPU. CHÚ Ý Nếu ta lắp một thẻ chuyển vào trong một CPU đang chạy, CPU sẽ chuyển sang chế độ STOP. Các thiết bị điều khiển có thể rơi vào một điều kiện không an toàn, kết quả là sự vận hành không mong muốn của thiết bị được điều khiển. Một số các vận hành không mong muốn có thể gây hậu quả tử vong hay tổn thương nghiêm trọng đến con người, và/hoặc phá hủy thiết bị.

Ta phải lấy thẻ chuyển ra trước khi thiết lập CPU sang chế độ RUN.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 31

SIMATIC S7 - 1200

2.2.

Lƣu trữ dữ liệu, các vùng nhớ và việc ghi địa chỉ. CPU cung cấp một số các tùy chọn dành cho việc lưu trữ dữ liệu trong suốt sự

thực thi chương trình người dùng:  Global memory (bộ nhớ toàn cục): CPU cung cấp nhiều vùng nhớ chuyên môn hóa, bao gồm các ngõ vào (I), các ngõ ra (Q) và bộ nhớ bit (M). Bộ nhớ này là có thể truy xuất bởi tất cả các khối mã mà không có sự hạn chế nào.  Data block (DB – khối dữ liệu): ta có thể bao gồm các DB trong chương trình người dùng để lưu trữ dữ liệu cho các khối mã. Dữ liệu được lưu trữ vẫn duy trì khi sự thực thi của một khối mã có liên quan dần kết thúc.  Temp memory (bộ nhớ tạm thời): khi một khối mã được gọi, hệ điều hành của CPU phân bổ bộ nhớ tạm thời hay cục bộ (L) để sử dụng trong suốt sự thực thi của khối. Khi sự thực thi của khối hoàn thành, CPU sẽ phân bổ lại bộ nhớ cục bộ dành cho việc thực thi các khối mã khác. Mỗi vị trí bộ nhớ khác nhau có một địa chỉ đơn nhất. Chương trình người dùng sử dụng các địa chỉ này để truy xuất thông tin trong vị trí bộ nhớ. Vùng nhớ

Miêu tả

I

Được sao chép từ các ngõ vào vật lý tại

Ngõ vào ảnh tiến trình

điểm bắt đầu của chu trình quét

I_:P

Việc đọc ngay lập tức của các điểm ngõ

Ngõ vào vật lý

vào trên CPU, SB và SM

Q

Được sao chép đến các ngõ ra vật lý tại

Ngõ ra ảnh tiến trình

điểm bắt đầu của chu trình quét

Q_:P

Việc ghi ngay lập tức đến các điểm ngõ

Ngõ ra vật lý

ra vật lý trên CPU, SB và SM

M Bộ nhớ bit

Bộ nhớ dữ liệu và điều khiển

L

Dữ liệu tạm thời cho một khối, một bộ

Bộ nhớ tạm thời

phận của khối đó

DB

Bộ nhớ dữ liệu và còn là bộ nhớ thông số

Khối dữ liệu

dành cho các FB

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Ép buộc

Lƣu giữ

Không

Không



Không

Không

Không



Không

Không



Không

Không

Không



Trang 2 - 32

SIMATIC S7 - 1200

Mỗi vùng nhớ khác nhau có một địa chỉ đơn nhất. Chương trình người dùng sử dụng các địa chỉ này để truy xuất thông tin trong vị trí bộ nhớ. Hình dưới đây thể hiện cách thức truy xuất một bit (còn được gọi là ghi địa chỉ “byte.bit”). Trong ví dụ này, vùng bộ nhớ và địa chỉ byte (I = ngõ vào và 3 = byte 3) được theo sau bởi một dấu chấm (“.”) để ngăn cách địa chỉ bit (bit 4). A Bộ định danh vùng nhớ B Địa chỉ byte: byte 3 C Dấu ngăn cách D Vị trí bit của byte (bit 4 trong số 8 bit) E Các byte của vùng nhớ F Các bit của byte được chọn Ta có thể truy xuất dữ liệu trong hầu hết các vùng bộ nhớ (I, Q, M, DB và L) gồm các kiểu Byte, Word, hay Double Word bằng cách sử dụng định dạng “byte address”. Để truy xuất một dữ liệu Byte, Word, hay Double Word trong bộ nhớ, ta phải xác định địa chỉ theo cách giống như xác định địa chỉ cho một bit. Điều này bao gồm một bộ định danh vùng, ký hiệu kích thước dữ liệu, và địa chỉ byte bắt đầu của giá trị Byte, Word, hay Double Word. Các ký hiệu kích thước là B (Byte), W (Word) và D (Double Word), ví dụ IB0, MW20 hay QD8. Các tham chiếu như là I0.3 và Q1.7 sẽ truy xuất ảnh tiến trình. Để truy xuất ngõ vào hay ngõ ra vật lý, ta cộng thêm tham chiếu với ký tự “:P” (như là I0.3:P, Q1.7:P hay “Stop:P”).

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 33

SIMATIC S7 - 1200

Truy xuất dữ liệu trong các vùng nhớ của CPU Phần mềm STEP 7 Basic tạo điều kiện cho việc lập trình ký hiệu. Thông thường, các thẻ ghi được tạo ra cả trong thẻ ghi PLC, trong một khối dữ liệu hay trong giao diện tại phía trên của một OB, FC hay FB. Các thẻ ghi này bao gồm tên, kiểu dữ liệu, độ dịch chỉnh và chú giải. Ngoài ra, trong môt khối dữ liệu, một giá trị ban đầu có thể được xác lập. Ta có thể sử dụng các thẻ ghi này khi lập trình bằng cách nhập vào tên thẻ ghi tại thông số của lệnh. Một cách tùy chọn, ta cũng có thể nhập vào toán hạng độc lập (bộ nhớ, vùng nhớ, kích cỡ và độ dịch chỉnh) tại thông số lệnh. Các ví dụ trong phần sau đây cho thấy cách thức để nhập vào các toán hạng tuyệt đối. Ký tự % được tự động chèn vào trước toán hạng tuyệt đối bởi trình soạn thảo chương trình. Ta có thể lật chuyển kiểu xem trong trình soạn thảo chương trình đến một trong các kiểu sau: biểu tượng (Symbolic), biểu tượng và tuyệt đối (Symbolic and absolute) hay tuyệt đối (Absolute). I (ngõ vào ảnh tiến trình): CPU tiến hành lấy mẫu các điểm ngõ vào vật lý ngoại vi vừa trước khi thực thi OB chu trình của mỗi chu trình quét và ghi các giá trị này đến ảnh tiến trình ngõ vào. Ta có thể truy xuất đến ảnh tiến trình ngõ vào theo bit, byte, word hay double word. Cả truy xuất đọc và ghi đều được cho phép, nhưng thông thường, các ngõ vào ảnh tiến trình là chỉ đọc. Bit

I [địa chỉ byte].[địa chỉ bit]

I0.1

Byte, Word hay Double Word

I [kích thước].[địa chỉ byte khởi đầu]

IB4, IW5 hay ID12

Bằng cách cộng thêm “:P” đến một địa chỉ, ta có thể đọc ngay lập tức các ngõ vào kiểu số hay kiểu tương tự của CPU, SB hay SM. Sự khác biệt giữa một truy xuất sử dụng I_:P thay vì sử dụng I là ở chỗ dữ liệu sẽ đến một cách trực tiếp từ các điểm đang được truy xuất hơn là từ ảnh tiến trình ngõ vào. Truy xuất I_:P được tham chiếu đến một truy xuất “immediate read” vì dữ liệu được truy tìm ngay tức khắc từ nguồn thay vì từ một bản sao chép đã được tạo ra trong lần cuối mà ảnh tiến trình ngõ vào được cập nhật.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 34

SIMATIC S7 - 1200

Vì các điểm ngõ vào vật lý nhận các dữ liệu của chúng một cách trực tiếp từ các thiết bị trường được kết nối đến các điểm này, việc ghi đến các điểm này là bị cấm. Điều đó có nghĩa là, các truy xuất I_:P là chỉ đọc, trái với các truy xuất I có thể được đọc hay ghi. Các truy xuất I_:P còn có thể bị hạn chế theo kích thước của các ngõ vào được hỗ trợ bởi một CPU, SB hay SM đơn lẻ, được làm tròn lên đến byte gần nhất. Ví dụ, nếu các ngõ vào của một SB có 2 DI/ 2DQ được cấu hình để khởi động tại I4.0, khi đó các điểm ngõ vào có thể được truy xuất theo địa chỉ I4.0:P và I4.1:P hay theo IB4:P. Các truy xuất đến địa chỉ tính từ I4.2:P cho tới I4.7:P là không bị từ chối, nhưng không được nhận biết, vì các điểm này không được sử dụng. Các truy xuất đến địa chỉ IW4:P và ID4:P bị cấm bởi chúng vượt quá độ dịch chỉnh byte có liên quan với SB. Các truy xuất sử dụng I_:P không ảnh hưởng đến giá trị tương ứng được lưu trữ trong ảnh tiến trình ngõ vào. Bit

I [địa chỉ byte].[địa chỉ bit]:P

I0.1:P

Byte, Word hay Double Word

I [kích thước].[địa chỉ byte khởi đầu]:P

IB4:P, IW5:P hay ID12:P

Q (ngõ ra ảnh tiến trình): CPU sao chép các giá trị được lưu trữ trong ảnh tiến trình ngõ ra đến các điểm ngõ ra vật lý. Ta có thể truy xuất ảnh tiến trình ngõ ra theo bit, byte, word hay double word. Cả truy xuất đọc và ghi đều được cho phép đối với các ngõ ra ảnh tiến trình. Bit

Q [địa chỉ byte].[địa chỉ bit]

Byte, Word hay Double Word

Q [kích thước].[địa chỉ byte khởi đầu] QB5, QW10 hay QB40

Q0.1

Bằng cách cộng thêm “:P” đến một địa chỉ, ta có thể ghi ngay lập tức đến các ngõ ra kiểu số hay kiểu tương tự của CPU, SB hay SM. Sự khác biệt giữa một truy xuất sử dụng Q_:P thay vì sử dụng Q là ở chỗ dữ liệu sẽ di chuyển một cách trực tiếp đến các điểm đang được truy xuất bên cạnh đến ảnh tiến trình ngõ ra (ghi đến cả hai nơi). Truy xuất Q_:P đôi khi được tham chiếu đến như một truy xuất “immediate CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 35

SIMATIC S7 - 1200

write” vì dữ liệu được gửi ngay tức khắc đến điểm đích; điểm đích không phải chờ tới lần cập nhật kế tiếp từ ảnh tiến trình ngõ ra. Vì các điểm ngõ ra vật lý điều khiển trực tiếp các thiết bị trường được kết nối đến các điểm này, việc đọc từ các điểm này là bị cấm. Điều đó có nghĩa là, các truy xuất Q_:P là chỉ ghi, trái với các truy xuất Q có thể được đọc hay ghi. Các truy xuất Q_:P còn có thể bị hạn chế theo kích thước của các ngõ ra được hỗ trợ bởi một CPU, SB hay SM đơn lẻ, được làm tròn lên đến byte gần nhất. Ví dụ, nếu các ngõ ra của một SB có 2 DI/ 2DQ được cấu hình để khởi động tại Q4.0, khi đó các điểm ngõ ra có thể được truy xuất theo địa chỉ Q4.0:P và Q4.1:P hay theo QB4:P. Các truy xuất đến địa chỉ tính từ Q4.2:P cho tới Q4.7:P là không bị từ chối, nhưng không được nhận biết, vì các điểm này không được sử dụng. Các truy xuất đến địa chỉ QW4:P và QD4:P bị cấm bởi chúng vượt quá độ dịch chỉnh byte có liên quan với SB. Các truy xuất sử dụng Q_:P ảnh hưởng đến cả ngõ ra vật lý cũng như giá trị tương ứng được lưu trữ trong ảnh tiến trình ngõ ra. Q [địa chỉ byte].[địa chỉ bit]:P

Bit

Byte, Word hay Double Word

Q0.1:P

Q [kích thước].[địa chỉ byte khởi QB4:P, đầu]:P

QW5:P

QD12:P

M (vùng nhớ bit): ta sử dụng vùng nhớ bit (bộ nhớ M) dành cho cả các relay điều khiển và dữ liệu dùng để lưu trữ trạng thái tức thời của một sự vận hành hay của các thông tin điều khiển khác. Ta có thể truy xuất vùng bộ nhớ bit theo bit, byte, word hay double word. Cả vtruy xuất đọc và ghi đều được cho phép đối với bộ nhớ M. Bit

M [địa chỉ byte].[địa chỉ bit]

M26.7

Byte, Word hay Double Word

M [kích thước].[địa chỉ byte khởi đầu]

MB20, MW30, MD50

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 36

hay

SIMATIC S7 - 1200

Temp (bộ nhớ tạm): CPU phân bổ bộ nhớ tạm thời trên một nền tảng theo yêu cầu. CPU phân bổ bộ nhớ tạm thời cho khối mã tại thời điểm khi khối mã được bắt đầu (đối với một OB) hay được gọi (đối với một FC hay một FB). Sự phân bổ bộ nhớ tạm thời cho một khối mã có thể sử dụng lại cùng một vị trí bộ nhớ Temp được sử dụng trước đó bởi một OB, FC hay FB khác. CPU không thiết lập giá trị ban đầu cho bộ nhớ tạm thời tại thời điểm phân bổ và do đó bộ nhớ tạm thời có thể chứa bất kỳ giá trị nào. Bộ nhớ tạm thời giống với bộ nhớ M ngoại trừ một điểm chính: bộ nhớ M có một dải hợp lệ là “global” (tổng thể) còn bộ nhớ tạm thời có dải hợp lệ là “local” (cục bộ).  Bộ nhớ M: bất kỳ các OB, FC hay FB nào cũng có thể truy xuất dữ liệu trong bộ nhớ M, nghĩa là các dữ liệu trong bộ nhớ M là sẵn sàng một cách toàn diện cho tất cả các phần tử của chương trình người dùng.  Bộ nhớ Temp: truy xuất đến dữ liệu trong bộ nhớ tạm bị hạn chế đến OB, FC hay FB mà đã tạo ra hay khai báo vùng bộ nhớ tạm. Các vị trí bộ nhớ tạm giữ nguyên cục bộ và không được chia sẻ bởi các khối mã khác, ngay cả khi khối mã gọi một khối mã khác. Ví dụ: khi một OB gọi một FC, FC đó không thể truy xuất bộ nhớ tạm của OB đã gọi nó. CPU cung cấp bộ nhớ tạm (cục bộ) cho mỗi nhóm trong số 3 nhóm ưu tiên:  16 kB dành cho khởi động cà chu kỳ chương trình, bao gồm cả các FB và FC có liên quan.  4 kB cho các sự kiện ngắt tiêu chuẩn bao gồm cả các FB và các FC.  4 kB cho các sự kiện ngắt chẩn đoán bao gồm cả các FB và các FC. Ta chỉ truy xuất bộ nhớ tạm bằng cách ghi địa chỉ ký hiệu. DB (khối dữ liệu): ta sử dụng bộ nhớ DB dành cho việc lưu trữ các kiểu dữ liệu khác nhau, bao gồm trạng thái trung gian của một hoạt động hay các thông số về thông tin điều khiển khác cho các FB, và các cấu trúc dữ liệu cần thiết cho nhiều lệnh như các bộ định thì hay các bộ đếm. Ta có thể xác định một khối dữ liệu để được đọc/ghi hay là chỉ đọc. Ta có thể truy xuất bộ nhớ khối dữ liệu theo bit, byte, word hay

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 37

SIMATIC S7 - 1200

double word. Cả truy xuất đọc và truy xuất ghi đều được cho phép đối với các khối dữ liệu đọc/ghi. Chỉ truy xuất đọc là được cho phép đối với các khối dữ liệu chỉ đọc. DB [số hiệu khối dữ liệu].DBX [địa

Bit

chỉ byte].[địa chỉ bit]

Byte, Word hay Double Word

DB1.DBX2.3

DB [số hiệu khối dữ liệu].DB [kích DB1.DBB4, DB10.DBW2, cỡ].[địa chỉ byte bắt đầu]

DB20.DBD8

Ghi địa chỉ I/O trong CPU và các module I/O Khi ta thêm một CPU và các module I/O vào màn hình cấu hình, các địa chỉ I và Q được gán một cách tự động. Ta có thể thay đổi việc ghi địa chỉ mặc định bằng cách lựa chọn trường địa chỉ trong màn hình cấu hình và gõ vào các số hiệu mới. Các ngõ vào và ngõ ra kiểu số được gán theo một byte gồm 8 bit, dù cho module có sử dụng tất cả các điểm hay không. Các ngõ vào và ngõ ra kiểu tương tự được gán theo nhóm gồm 2 điểm (4 byte). Trong ví dụ này, ta có thể thay đổi địa chỉ của DI16 về 2 .. 3 thay vì 8 .. 9. Công cụ sẽ hỗ trợ bằng cách thay đổi các phạm vi địa chỉ nào sai kích thước hay xung đột với các địa chỉ khác. Hình trên thể hiện một ví dụ với một CPU cùng 2 SM.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 38

SIMATIC S7 - 1200

2.3.

Các kiểu dữ liệu. Các kiểu dữ liệu được sử dụng để xác định cả kích thước của một phần tử dữ

liệu cũng như cách thức mà dữ liệu được diễn dịch. Mỗi thông số lệnh hỗ trợ ít nhất một kiểu dữ liệu, và một số thông số còn hỗ trợ nhiều kiểu dữ liệu. Ta giữ con trỏ qua trường thông số của một lệnh để xem kiểu dữ liệu nào được hỗ trợ đối với một thông số đã cho. Một thông số chính thức là bộ định danh trên một lệnh đánh dấu vị trí của dữ liệu được sử dụng bởi lệnh đó (ví dụ: ngõ vào IN1 của một lệnh ADD). Thông số thực tế là vị trí bộ nhớ hay hằng số chứa dữ liệu dùng cho lệnh (ví dụ %MD400 “Number_of_Widgets”). Kiểu dữ liệu của thông số thực tế được chỉ định bởi người dùng phải phù hợp với một trong các kiểu dữ liệu được hỗ trợ của thông số chính thức được chỉ định bởi lệnh. Khi chỉ định một thông số thực tế, ta phải chỉ định cả một thẻ ghi (ký hiệu) hay một địa chỉ nhớ tuyệt đối. Các thẻ ghi có liên quan đến một tên ký hiệu (tên thẻ ghi) với một kiểu dữ liệu, một vùng nhớ, độ dịch chỉnh bộ nhớ, và dòng chú giải, và có thể được tạo ra cả trong trình soạn thảo thẻ ghi PLC hay trong trình soạn thảo Interface cho một khối (OB, FC, FB ay DB). Nếu nhập vào một địa chỉ tuyệt đối mà không có thẻ ghi liên quan, ta phải sử dụng một kích thước thích hợp phù hợp với kiểu dữ liệu được hỗ trợ, và một thẻ ghi mặc định sẽ được tạo ra dưới mục nhập vào. Ta còn có thể nhập vào giá trị hằng số cho nhiều thông số ngõ vào. Bảng sau đây miêu tả các kiểu dữ liệu cơ bản được hỗ trợ, gồm các ví dụ của mục nhập cố định. Tất cả các kiểu ngoại trừ kiểu String đều có sẵn trong trình soạn thảo các thẻ ghi PLC và trong trình soạn thảo Interface của khối. Kiểu String chỉ có sẵn trong trình soạn thảo Interface của khối. Bảng sau đây xác định các kiểu dữ liệu cơ bản.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 39

SIMATIC S7 - 1200

Kiểu dữ liệu

Kích thƣớc

Các ví dụ mục nhập vào

Phạm vi

cố định

(bit)

Bool

1

0 đến 1

TRUE, FALSE, 0, 1

Byte

8

16#00 đến 16#FF

16#12, 16#AB

Word

16

16#0000 đến 16#FFFF

16#ABCD, 16#0001

DWord

32

16#00000000 đến 16#FFFFFFFF

16#02468ACE

Char

8

16#00 đến 16#FF

„A‟, „t‟, „@‟

SInt

16

-128 đến 127

123, -123

Int

16

-32768 đến 32767

123, -123

DInt

32

-2147483648 đến 2147483647

123, -123

USInt

8

0 đến 255

123

UInt

16

0 đến 65535

123

UDInt

32

0 đến 4294967295

123

Real

32

+/- 1.18 x 10 -38 đến +/- 3.40 x 10 38

LReal

32

+/- 2.23 x 10 -308 đến +/- 1.79 x 10 308 T#-24d_20h_31m_23s_648ms

Time

32

đến

T#24d_20h_31m_23s_647ms Được lưu trữ dưới dạng : -2147483648 ms đến +2147483647 ms

String

Thay đổi

Các ký tự có kích thước 0 đến 254 byte

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

123456, -3.4, -1.2E+12, 3.4E-3 12345.123456789,

-

1.2E+40 T#5m_30s 5#-2d T#1d_2h_15m_30s_45ms „ABC‟

Trang 2 - 40

SIMATIC S7 - 1200

Mặc dù không có sẵn như một kiểu dữ liệu, định dạng số BCD sau đây được hỗ trợ bởi các lệnh chuyển đổi. Các ví dụ mục

Định dạng

Kích thƣớc (bit)

Phạm vi số

BCD16

16

-999 đến 999

123, -123

BCD32

32

-9999999 đến 9999999

1234567, -1234567

nhập cố định

Định dạng cho các số thực Các số thực (hay số có dấu chấm động) được hiển thị đưới dạng số với độ chính xác đơn 32 bit (Real) hay số độ chính xác kép 64 bit (LReal) như được miêu tả trong tiêu chuẩn ANSI/IEEE 754-1985. Các số dấu chấm động với độ chính xác đơn là chính xác đến tối đa 6 chữ số có nghĩa và các số dấu chấm động với độ chính xác kép là chính xác đến tối đa 15 chữ số có nghĩa. Ta có thể chỉ định tối đa 6 chữ số có nghĩa (kiểu Real) hay 15 chữ số có nghĩa (LReal) khi nhập vào một hằng số dấu chấm động để duy trì độ chính xác. Các tính toán có liên quan đến một chuỗi dài các giá trị gồm các số rất lớn hay rất nhỏ có thể tạo ra các kết quả không chính xác. Điều này có thể xuất hiện nếu các số hơn kém nhau đến 10 lũy thừa x, trong đó x > 6 (kiểu Real) hay x > 15(kiểu LReal). Ví dụ đối với kiểu Real: 100 000 000 + 1 = 100 000 000. Định dạng cho kiểu dữ liệu chuỗi CPU hỗ trợ kiểu dữ liệu String dành để lưu trữ một tuần tự các ký tự byte đơn lẻ. Kiểu dữ liệu String chứa một bộ đếm ký tự tổng (số lượng các ký tự trong chuỗi) và bộ đếm ký tự hiện thời. Kiểu String cung cấp tối đa 256 byte cho việc lưu trữ kết quả đếm ký tự tổng tối đa (chiếm 1 byte), kết quả đếm ký tự hiện thời (chiếm 1 byte) và tối đa 254 ký tự, trong đó mỗi ký tự được lưu trữ trong 1 byte. Ta có thể sử dụng các chuỗi trực kiện (hằng số) cho các thông số lệnh của kiểu IN bằng cách sử dụng các dấu nháy đơn. Ví dụ, một chuỗi gồm 3 ký tự „ABC‟ có thể được sử dụng như là ngõ vào cho thông số IN của lệnh S_CONV. Ta còn có thể tạo ra CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 41

SIMATIC S7 - 1200

các biến chuỗi bằng cách lựa chọn kiểu dữ liệu “String” trong trình soạn thảo giao diện khối cho OB, FC, FB và DB. Ta không thể tạo ra một chuỗi trong trình soạn thảo thẻ ghi của PLC. Ta có thể xác định kích thước chuỗi tối đa tính theo byte khi khai báo chuỗi, ví dụ, “MyString[10]” sẽ xác định kích thước tối đa là 10 byte cho MyString. Nếu không bao gồm dấu ngoặc vuông với bộ chỉ thị kích thước lớn nhất, giá trị 254 sẽ được cho. Ví dụ sau đây xác định một chuỗi với giá trị đếm ký tự tối đa bằng 10 và giá trị đếm ký tự hiện thời bằng 3. Điều này có nghĩa là hiện thời chuỗi chứa 3 ký tự 1 byte, nhưng có thể được mở rộng để chứa tối đa 10 ký tự 1 byte. Bộ đếm ký tự

Bộ đếm ký tự

tổng

hiện thời

10

3

Byte 0

Byte 1

Ký tự 1 Ký tự 2 Ký tự 3 „C‟

„A‟

„T‟

(16#43) (16#41) (16#54) Byte 2

Byte 3

Byte 4



Ký tự 10



-



Byte 11

Các mảng Ta có thể tạo ra một mảng chứa nhiều phần tử của một kiểu cơ bản. Các mảng có thể được tạo ra trong trình soạn thảo gian diện khối dành cho OB, FC, FB và DB. Ta không thể tạo ra một mảng trong trình soạn thảo thẻ ghi PLC. Để tạo ra một mảng từ trình soạn thảo giao diện khối, ta chọn kiểu dữ liệu “Array [lo…hi] of type”, sau đó chỉnh sửa “lo”, “hi” và “type” như sau:  lo – chỉ số bắt đầu (thấp nhất) của mảng  hi – chỉ số kết thúc (cao nhất) của mảng  type – một trong các kiểu dữ liệu cơ bản, như là Bool, SInt, UDInt Các chỉ số âm đều được hỗ trợ. Ta có thể đặt tên mảng trong cột Name của trình soạn thảo giao diện khối. Bảng sau đây cho thấy các ví dụ của các mảng như chúng có thể xuất hiện trong trình soạn thảo giao diện khối.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 42

SIMATIC S7 - 1200 Tên

Kiểu dữ liệu

Chú giải

My_Bits

Array [1 .. 10] đối với kiểu Bool

My_Data

Array [-5 .. 5] đối với kiểu SInt

Mảng này chứa 10 giá trị Boolean Mảng này chứa 11 giá trị SInt, bao gồm chỉ mục 0

Ta tham chiếu các phần tử của mảng trong chương trình bằng cách sử dụng cú pháp sau:  Array_name[i], trong đó i là chỉ mục mong muốn. Các ví dụ có thể xuất hiện trong trình soạn thảo chương trình như một ngõ vào thông số:  #My_Bits[3] – tham chiếu bit thứ 3 của mảng “My_Bits”  #My_Data[-2] – tham chiếu bit thứ 4 của mảng “My_Data” Ký hiệu # được chèn vào một cách tự động bởi trình soạn thảo chương trình. Kiểu dữ liệu DTL (Data and Time Long) Kiểu dữ liệu DTL là một cấu trúc gồm 12 byte lưu trữ thông tin trên ngày và giờ trong một cấu trúc được xác định trước. Ta xác có thể xác định một DTL cả trong bộ nhớ tạm Temp của khối hay trong một DB. Độ dài (byte)

Định dạng Đếm thời gian và lịch (Year-

12

Month:Hour:Minute:Second .Nanosecond)

Phạm vi giá trị Tối

thiểu:

DTL#1970-01-01-

:00:00:00.0 Tối

đa:

DTL#2554-12-31-

:23:59:59.999999999

Ví dụ về ngõ vào giá trị DTL#2008-121620:30:20.250

Mỗi phần của DTL chứa một kiểu dữ liệu khác nhau và phạm vi của các giá trị. Kiểu dữ liệu của một giá trị được định trước phải phù hợp với kiểu dữ liệu của các thành phần tương ứng. CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 43

SIMATIC S7 - 1200 Byte 0

Thành phần

Kiểu dữ liệu

Phạm vi giá trị

Year

UInt

1970 đến 2554

2

Month

USInt

1 đến 12

3

Day

USInt

1 đến 31

4

Day of week

USInt

5

Hour

USInt

0 đến 23

6

Minute

USInt

0 đến 59

7

Second

USInt

0 đến 59

8

Nanosecond

UDInt

0 đến 999 999 999

1

1 (Chủ nhật) đến 2 (thứ bảy) Ngày trong tuần không cần chú ý trong mục nhập giá trị

9 10 11

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 44

SIMATIC S7 - 1200

2.4.

Sử dụng thẻ nhớ.

GHI CHÚ CPU chỉ hỗ trợ thẻ nhớ SIMATIC được định dạng trước. Nếu ta sử dụng một phần mềm định dạng của Windows để định dạng lại thẻ nhớ SIMATIC, CPU không thể sử dụng thẻ nhớ đã được định dạng lại này. Trước khi sao chép bất kỳ chương trình nào đến thẻ nhớ đã được định dạng, ta phải xóa tất cả chương trình đã được lưu trước đó khỏi thẻ nhớ.

Ta sử dụng thẻ nhớ đóng vai trò vừa là thẻ chuyển vừa là thẻ chương trình. Bất kỳ chương trình nào mà ta sao chép đến thẻ nhớ đều chứa tất cả các khối hàm và khối dữ liệu, các đối tượng công nghệ và cấu hình thiết bị. Chương trình không chứa các giá trị ép buộc.  Ta sử dụng một thẻ chuyển để sao chép một chương trình đến bộ nhớ nạp bên trong của CPU mà không cần sử dụng phần mềm STEP 7 Basic. Sau khi lắp thẻ chuyển vào, CPU trước tiên sẽ xóa chương trình người dùng và xóa mọi giá trị ép buộc khỏi bộ nhớ nạp bên trong, và sau đó sao chép chương trình từ thẻ chuyển đến bộ nhớ nạp bên trong. Khi quá trình chuyển đổi hoàn tất, ta phải lấy thẻ chuyển ra. Ta có thể sử dụng một thẻ chuyển trống để truy xuất một CPU được bảo vệ bằng mật khẩu khi ta đánh mất hay quên mật khẩu này. Khi lắp một thẻ chuyển còn trống, chương trình được bảo vệ bằng mật khẩu trong bộ nhớ nạp bên trong của CPU sẽ bị xóa đi. Sau đó ta có thể tải xuống một chương trình mới vào CPU.  Ta sử dụng một thẻ chương trình đóng vai trò là bộ nhớ nạp ngoại vi cho CPU. Việc lắp thẻ chương trình vào CPU sẽ xóa đi toàn bộ bộ nhớ nạp bên trong của CPU (bao gồm chương trình người dùng và các giá trị ép buộc). Sau đó CPU sẽ thực thi chương trình người dùng trong bộ nhớ nạp ngoại vi (tức là trong thẻ chương trình). Việc tải xuống đến một CPU mà CPU đó có một thẻ chương trình sẽ chỉ cập nhật bộ nhớ nạp ngoại vi (thẻ chương trình).

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 45

SIMATIC S7 - 1200

Vì bộ nhớ nạp bên trong của CPU đã được xóa khi ta lắp thẻ chương trình vào, nên thẻ chương trình phải được giữ nguyên trong CPU. Nếu lấy thẻ chương trình ra, CPU sẽ chuyển sang chế độ STOP. (Đèn LED báo lỗi nhấp nháy để chỉ thị rằng thẻ chương trình đã bị lấy ra.) Chương trình trên một thẻ nhớ bao gồm các khối mã, các khối dữ liệu, các đối tượng công nghệ và cấu hình thiết bị. Thẻ nhớ không chứa bất kỳ các giá trị ép buộc nào. Các giá trị ép buộc không phải là một phần của chương trình, nhưng được lưu trữ trong bộ nhớ nạp, hoặc là trong bộ nhớ nạp bên trong của CPU, hoặc là trong bộ nhớ nạp ngoại vi (một thẻ chương trình). Nếu một thẻ chương trình được lắp vào trong CPU, phần mềm STEP 7 Basic sẽ chỉ áp dụng các giá trị ép buộc đến bộ nhớ nạp ngoại vi trên thẻ chương trình.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 46

SIMATIC S7 - 1200

2.4.1. Lắp một thẻ nhớ vào CPU. KHUYẾN CÁO Nếu ta lắp một thẻ nhớ (thẻ nhớ được cấu hình như một thẻ chương trình hay một thẻ chuyển) vào trong một CPU đang chạy, CPU chuyển sang chế độ STOP ngay lập tức. Các thiết bị điều khiển có thể rơi vào một điều kiện không an toàn, gây nên sự vận hành không mong muốn của thiết bị được điều khiển. Các vận hành không mong muốn có thể gây tử vong hay tổn thương nghiêm trọng đến con người, và/hoặc gây phá hủy thiết bị. Luôn luôn lắp đặt mạch dừng khẩn cấp cho ứng dụng hay quy trình.

CHÚ Ý Hiện tượng nạp tĩnh điện có thể phá hủy thẻ nhớ hay nơi cắm trên CPU. Thực hiện việc tiếp xúc với một tấm đế được nối đất và/hoặc đeo một vòng dây cổ tay được nối đất khi ta cầm thẻ nhớ. Cất thẻ nhớ trong một hộp chứa có tính dẫn điện.

Để lắp một thẻ nhớ, ta mở tấm che phía trên của CPU và lắp thẻ nhớ vào trong rãnh. Kiểu kết nối nhấn – nhấn cho phép ta lắp vào và lấy ra một cách dễ dàng. Thẻ nhớ được khóa lại nếu ta lắp vào đúng cách.

Cần kiểm tra rằng thẻ nhớ không được bảo vệ ghi. Trượt công tắc bảo vệ ra khỏi vị trí “Lock”.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 47

SIMATIC S7 - 1200

Chú ý Nếu ta lắp vào thẻ nhớ khi CPU ở trong chế độ STOP, bộ đệm chẩn đoán sẽ hiển thị một thông điệp mà sự định trị thẻ nhớ đã được khởi chạy. Hãy đừng lưu tâm đến thông điệp này. Sự định trị thẻ nhớ sẽ không khởi động cho đến khi ta chuyển CPU sang chế độ RUN, hoặc đặt lại bộ nhớ CPU bằng một lệnh MRES, hay đến chu trình cấp nguồn cho CPU.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 48

ĐỒ ÁN HỌC PHẦN 2A

GVHD: ThS HOÀNG ĐÌNH KHÔI

2.4.2. Cấu hình các thông số khởi động cho CPU trước khi sao chép đề án đến thẻ nhớ. Khi ta sao chép một chương trình đến thẻ chuyển hay thẻ chương trình, chương trình sẽ bao gồm các thông số khởi động cho CPU. Trước khi sao chép chương trình vào thẻ nhớ, luôn luôn chắc chắn rằng ta đã cấu hình chế độ vận hành cho CPU theo một chu trình cấp nguồn. Lựa chọn khi nào CPU khởi động trong chế độ STOP, chế độ RUN hay trong chế độ trước đó (trước chu trình cấp nguồn).

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 49

SIMATIC S7 - 1200

2.4.3. Thẻ chuyển. CHÚ Ý Hiện tượng nạp tĩnh điện có thể phá hủy thẻ nhớ hay nơi cắm trên CPU. Thực hiện việc tiếp xúc với một tấm đế được nối đất và/hoặc đeo một vòng dây cổ tay được nối đất khi ta cầm thẻ nhớ. Cất thẻ nhớ trong một hộp chứa có tính dẫn điện.

Tạo ra một thẻ chuyển Luôn luôn nhớ cấu hình thông số khởi động của CPU trước khi sao chép một chương trình đến thẻ chuyển. Để tạo ra một thẻ chuyển, làm theo các bước sau đây: 1. Lắp một thẻ nhớ trống vào trong bộ đọc/bộ ghi thẻ được gắn kèm với thiết bị lập trình. (Nếu không phải là thẻ nhớ trống, ta xóa thư mục “SIMATIC.S7S” và tập tin “S7_JOB.S7S” trên thẻ nhớ bằng cách sử dụng một ứng dụng ví dụ như Windows Explorer.) 2. Trong Project tree (kiểu xem Project), mở rộng thư mục “SIMATIC Card Reader” và lựa chọn thẻ nhớ. 3. Hiển thị hộp thoại “Memory card” bằng cách nhấp chuột phải lên thẻ nhớ trong bộ đọc thẻ và lựa chọn “Properties” từ trình đơn ngữ cảnh. 4. Trong hộp thoại “Memory card”, lựa chọn “Transfer” từ trình đơn thả xuống. Tại đây, phần mềm STEP 7 Basic tạo ra một thẻ chuyển trống. Nếu ta tạo ra một thẻ chuyển trống, ví dụ như để khôi phục từ một mật khẩu CPU bị mất, hãy lấy thẻ chuyển ra khỏi bộ đọc thẻ.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 50

SIMATIC S7 - 1200

5. Thêm chương trình bằng cách lựa chọn thiết bị CPU (ví dụ như PLC_1 [CPU 1214 DC/DC/DC]) trong Project tree và kéo thiết bị CPU đến thẻ nhớ. (Một phương pháp khác là sao chép thiết bị CPU và dán vào thẻ nhớ). Việc sao chép thiết bị CPU đến thẻ nhớ sẽ mở ra hộp thoại “Load preview”. 6. Trong hộp thoại “Load preview”, nhấp vào nút “Load” để sao chép thiết bị CPU đến thẻ nhớ. 7. Khi hộp thoại hiển thị một thông điệp rằng thiết bị CPU (chương trình) đã được nạp mà không xảy ra lỗi, ta nhấp vào nút “Finish”. Sử dụng một thẻ chuyển Để chuyển chương trình đến một CPU, ta làm theo các bước sau: 1. Lắp thẻ chuyển vào trong CPU. Nếu CPU đang ở chế độ RUN, CPU sẽ chuyển sang chế độ STOP. (LED bảo dưỡng nhấp nháy để chỉ thị rằng thẻ nhớ cần được định trị.) 2. Sử dụng một trong các tùy chọn sau để định trị cho thẻ nhớ: -

Chu trình cấp nguồn CPU.

-

Thực hiện một sự chuyển đổi từ STOP sang RUN.

-

Thực hiện một sự đặt lại bộ nhớ (MRES).

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 51

SIMATIC S7 - 1200

3. Sau khi khởi động lại và định trị thẻ nhớ, CPU sẽ sao chép chương trình vào bộ nhớ nạp bên trong của CPU. Khi hoạt động sao chép hoàn tất, CPU nhấp nháy LED bảo dưỡng để chỉ thị rằng thẻ chuyển có thể được lấy ra. 4. Lấy thẻ chuyển ra khỏi CPU. 5. Sử dụng một trong số các tùy chọn sau để định trị chương trình mới được chuyển đến bộ nhớ nạp bên trong: -

Chu trình cấp nguồn CPU.

-

Thực hiện một sự chuyển đổi từ STOP sang RUN.

-

Thực hiện một sự đặt lại bộ nhớ (MRES). CPU sau đó sẽ chuyển sang chế độ khởi động (RUN hay STOP) mà ta đã cấu

hình cho đề án.

Lƣu ý Ta phải lấy thẻ chuyển ra trước khi thiết lập CPU sang chế độ RUN.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 52

SIMATIC S7 - 1200

2.4.4. Thẻ chương trình. CHÚ Ý Hiện tượng nạp tĩnh điện có thể phá hủy thẻ nhớ hay nơi cắm trên CPU. Thực hiện việc tiếp xúc với một tấm đế được nối đất và/hoặc đeo một vòng dây cổ tay được nối đất khi ta cầm thẻ nhớ. Cất thẻ nhớ trong một hộp chứa có tính dẫn điện.

Kiểm tra rằng thẻ nhớ không được bảo vệ ghi. Trượt công tắc bảo vệ ra khỏi vị trí “Lock”. Trước khi sao chép bất kỳ các phần tử chương trình vào thẻ chương trình, ta phải xóa các chương trình được lưu trước đó ra khỏi thẻ nhớ. Tạo ra một thẻ chƣơng trình Khi được sử dụng với vai trò là một thẻ chương tình, thẻ nhớ trở thành bộ nhớ nạp ngoại vi của CPU. Nếu ta lấy thẻ chương trình ra, bộ nhớ nạp bên trong của CPU sẽ trống rỗng.

Lƣu ý Nếu ta lắp một thẻ nhớ trống vào trong CPU và thực hiện định trị thẻ nhớ bằng chu trình cấp nguồn cho CPU, bằng việc thực hiện một chuyển đổi từ STOP sang RUN, hay thực hiện một sự đặt lại bộ nhớ (MRES), chương trình và các giá trị ép buộc trong bộ nhớ nạp bên trong của CPU sẽ được sao chép đến thẻ nhớ. (Thẻ nhớ bây giờ là một thẻ chương trình.) Sau khi việc sao chép đã hoàn tất, chương trình trong bộ nhớ nạp bên trong của CPU sẽ bị xóa. CPU sẽ chuyển sang chế độ khởi động được cấu hình (RUN hay STOP).

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 53

SIMATIC S7 - 1200

Luôn luôn nhớ cấu hình thông số khởi động của CPU trước khi sao chép một chương trình đến thẻ chương trình. Để tạo ra một thẻ chương trình với STEP 7 Basic, làm theo các bước sau đây: 1. Lắp một thẻ nhớ trống vào trong bộ đọc/bộ ghi thẻ được gắn kèm với thiết bị lập trình. (Nếu không phải là thẻ nhớ trống, ta xóa thư mục “SIMATIC.S7S” và tập tin “S7_JOB.S7S” trên thẻ nhớ bằng cách sử dụng một ứng dụng ví dụ như Windows Explorer.) 2. Trong Project tree (kiểu xem Project), mở rộng thư mục “SIMATIC Card Reader” và lựa chọn thẻ nhớ. 3. Hiển thị hộp thoại “Memory card” bằng cách nhấp chuột phải lên thẻ nhớ trong bộ đọc thẻ và lựa chọn “Properties” từ trình đơn ngữ cảnh. 4. Trong hộp thoại “Memory card”, lựa chọn “Program” từ trình đơn thả xuống. Tại đây, phần mềm STEP 7 Basic tạo ra một thẻ chuyển trống. Nếu ta tạo ra một thẻ chuyển trống, ví dụ như để khôi phục từ một mật khẩu CPU bị mất, hãy lấy thẻ chuyển ra khỏi bộ đọc thẻ.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 54

SIMATIC S7 - 1200

5. Thêm chương trình bằng cách lựa chọn thiết bị CPU (ví dụ như PLC_1 [CPU 1214 DC/DC/DC]) trong Project tree và kéo thiết bị CPU đến thẻ nhớ. (Một phương pháp khác là sao chép thiết bị CPU và dán vào thẻ nhớ). Việc sao chép thiết bị CPU đến thẻ nhớ sẽ mở ra hộp thoại “Load preview”. 6. Trong hộp thoại “Load preview”, nhấp vào nút “Load” để sao chép thiết bị CPU đến thẻ nhớ. 7. Khi hộp thoại hiển thị một thông điệp rằng thiết bị CPU (chương trình) đã được nạp mà không xảy ra lỗi, ta nhấp vào nút “Finish”. Sử dụng một thẻ chƣơng trình nhƣ bộ nhớ nạp cho CPU CHÚ Ý Nếu ta lắp một thẻ nhớ vào trong một CPU, CPU sẽ chuyển sang chế độ STOP. Nếu ta thực hiện chu trình cấp nguồn cho CPU, thay đổi CPU từ chế độ STOP sang RUN, hay đặt lại bộ nhớ CPU (MRES), CPU sẽ sao chép bộ nhớ nạp bên trong đến thẻ nhớ (cấu hình thẻ nhớ như là một thẻ chương trình) và xóa đi chương trình khỏi bộ nhớ nạp bên trong. Nếu ta lấy thẻ chương trình ra, CPU sẽ không có chương trình trong bộ nhớ nạp bên trong.

Để sử dụng một thẻ chương trình với CPU, ta làm theo các bước sau: 1. Lắp thẻ chương trình vào trong CPU. Nếu CPU đang ở chế độ RUN, CPU sẽ chuyển sang chế độ STOP. LED bảo dưỡng nhấp nháy để chỉ thị rằng thẻ nhớ cần được định trị. 2. Sử dụng một trong các tùy chọn sau để định trị cho thẻ nhớ: -

Chu trình cấp nguồn CPU.

-

Thực hiện một sự chuyển đổi từ STOP sang RUN.

-

Thực hiện một sự đặt lại bộ nhớ (MRES).

3. CPU sẽ tự động khởi động lại. Sau khi khởi động lại và định trị thẻ chương trình, CPU xóa đi bộ nhớ nạp bên trong.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 55

SIMATIC S7 - 1200

CPU sau đó sẽ chuyển sang chế độ khởi động (RUN hay STOP) mà ta đã cấu hình. Thẻ chương trình phải giữ nguyên trong CPU. Việc lấy thẻ chương trình ra sẽ không để lại trong bộ nhớ nạp bên trong CPU một chương trình nào. KHUYẾN CÁO Nếu ta lấy thẻ chương trình ra, CPU sẽ mất đi bộ nhớ nạp ngoại vi của nó và sinh ra một lỗi. CPU chuyển sang chế độ STOP và làm nhấp nháy LED báo lỗi. Các thiết bị điều khiển có thể rơi vào một điều kiện không an toàn, gây nên sự vận hành không mong muốn của thiết bị được điều khiển. Các vận hành không mong muốn có thể gây tử vong hay tổn thương nghiêm trọng đến con người, và/hoặc gây phá hủy thiết bị.

CHƢƠNG 2: CÁC KHÁI NIỆM VỀ PLC

Trang 2 - 56

SIMATIC S7 - 1200

Chƣơng 3 Cấu hình thiết bị

CHƢƠNG 3: CẤU HÌNH THIẾT BỊ

Trang 3 - 1

SIMATIC S7 - 1200

Ta tạo ra cấu hình thiết bị cho PLC bằng cách thêm một CPU và các module bổ sung vào đề án.

 Module truyền thông (CM): tối đa là 3, được chèn vào các khe số 101, 102 và 103  CPU: khe số 1  Cổng Ethernet của CPU  Bảng tín hiệu (SB): tối đa là 1, được chèn vào CPU  Module tín hiệu (SM) dành cho I/O tương tự hay số: tối đa là 8, được chèn vào trong các khe từ 2 đến 9 (CPU 1214C khởi động 8 SM, CPU 1212C khởi động 2 SM còn CPU 1211C không khởi động CM nào) Để tạo ra cấu hình của thiết bị, thêm một thiết bị vào đề án.  Trong kiểu xem Portal, chọn “Device & Networks” và nhấp vào “Add device”.  Trong kiểu xem Project, dưới cây đề án nhấp đôi chuột vào “Add new device”.

CHƢƠNG 3: CẤU HÌNH THIẾT BỊ

Trang 3 - 2

SIMATIC S7 - 1200

3.1.

Chèn một CPU. Người dùng tạo ra cấu hình cho thiết bị bằng cách chèn một CPU vào đề án.

Việc lựa chọn CPU từ hộp thoại “Add new device” sẽ tạo ra thanh đỡ (rack) và CPU. Hộp thoại “Add new device”

Device view của cấu hình phần cứng

CHƢƠNG 3: CẤU HÌNH THIẾT BỊ

Trang 3 - 3

SIMATIC S7 - 1200

Việc lựa chọn CPU trong mục Device view sẽ hiển thị các thuộc tính của CPU trong cửa sổ kiểm tra.

Lƣu ý CPU không có một địa chỉ IP được cấu hình trước. Một cách thủ công, người dùng phải gán giá trị địa chỉ IP cho CPU trong suốt việc cấu hình thiết bị. Nếu CPU được kết nối đến một bộ định tuyến (router) trong mạng, người dùng còn phải nhập vào địa chỉ IP cho router đó.

CHƢƠNG 3: CẤU HÌNH THIẾT BỊ

Trang 3 - 4

SIMATIC S7 - 1200

3.2.

Nhận biết cấu hình của một CPU chƣa xác định.

Tải lên dễ dàng một cấu hình phần cứng đƣợc tạo sẵn Nếu được kết nối đến một CPU, người dùng có thể tải lên cấu hình của CPU đó đến đề án, bao gồm bất kỳ các module nào. Thường là tạo ra một đề án mới và lựa chọn “Unspecified CPU” thay vì lựa chọn một CPU xác định. Người dùng hoàn toàn có thể bỏ qua việc cấu hình thiết bị bằng cách lựa chọn mục “Create a PLC program” từ “First Steps”. Phần mềm STEP 7 Basic sau đó sẽ tự động tạo ra một CPU chưa được xác định. Từ trình soạn thảo chương trình, lựa chọn lệnh “Hardware detection” trong trình đơn “Online”. Từ trình soạn thảo cấu hình thiết bị, lựa chọn tùy chọn cho việc phát hiện cấu hình của thiết bị được kết nối.

CHƢƠNG 3: CẤU HÌNH THIẾT BỊ

Trang 3 - 5

SIMATIC S7 - 1200

Sau khi người dùng lựa chọn CPU từ hộp thoại trực tuyến, STEP 7 Basic tải lên cấu hình phần cứng từ CPU, bao gồm bất kỳ module nào (SM, SB hay CM). Người dùng sau đó có thể cấu hình các thông số của CPU và các module.

3.3.

Cấu hình sự hoạt động của CPU. Để cấu hình các thông số vận hành của CPU, lựa chọn CPU trong phần Device

view (viền xanh dương quanh CPU đó), và sử dụng thẻ “Properties” của cửa sổ kiểm tra.

Chỉnh sửa các thuốc tính để cấu hình các thông số sau đây:  Giao diện PROFINET: thiết lập địa chỉ IP cho CPU và sự đồng bộ hóa thời gian  DI, DO và AI: cấu hình cách xử lý của I/O kiểu số và kiểu tương tự cục bộ (tích hợp)  Các bộ đếm tốc độ cao và các máy phát xung: khởi động và cấu hình các bộ đếm tốc độ cao (HSC) và các máy phát xung được sử dụng cho các vận hành chuỗi xung (PTO) và bộ điều chế độ rộng xung (PWM). CHƢƠNG 3: CẤU HÌNH THIẾT BỊ

Trang 3 - 6

SIMATIC S7 - 1200

Khi người dùng cấu hình các ngõ ra của CPU hay của bảng tín hiệu như các máy phát xung (để sử dụng với PWM hay các lệnh điều khiển chuyển động cơ bản), các địa chỉ ngõ ra tương ứng (Q0.0, Q0.1, Q4.0 và Q4.1) được di chuyển khỏi bộ nhớ Q và không thể được sử dụng cho các mục đích khác trong chương trình người dùng. Nếu chương trình người dùng ghi một giá trị đến một ngõ ra được dùng như một máy phát xung, CPU sẽ không ghi giá trị đó đến ngõ ra vật lý.  Startup: lựa chọn cách xử lý của CPU theo một sự chuyển đổi từ OFF sang ON, ví dụ như khởi động trong chế độ STOP hay chuyển sang chế độ RUN sau một sự khởi động lại nóng.  Time of delay: thiết lập thời gian, múi giờ và thời gian tiết kiệm ánh sáng ngày.  Protection: thiết lập bảo vệ đọc/ghi và mật khẩu cho việc truy xuất CPU.  System and clock memory: khởi động một byte của các hàm “system memory” (đối với bit “first scan”, bit “always on” và bit “always off”) và khởi động một byte của các chức năng “clock memory” (ở đó mỗi bit đảo chiều ON và OFF tại một tần số được xác định trước).  Cycle time: xác định thời gian chu kỳ tối đa hay một thời gian chu kỳ tối thiểu không đổi.  Communication load: định vị một tỷ lệ phần trăm của thời gian CPU để chuyên dụng cho các nhiệm vụ truyền thông.

CHƢƠNG 3: CẤU HÌNH THIẾT BỊ

Trang 3 - 7

SIMATIC S7 - 1200

3.4.

Thêm các module vào cấu hình.

Sử dụng danh mục phần cứng để thêm các module vào CPU. Có 3 kiểu module:  Các module tín hiệu (SM): cung cấp các điểm I/O bổ sung kiểu số hay kiểu tương tự. Các module này được kết nối bên phải CPU.  Bảng tín hiệu (SB): cung cấp chỉ một vài điểm I/O bổ sung cho CPU. SB được lắp đặt ở mặt trước của CPU.  Các module truyền thông (CM): cung cấp một cổng truyền thông bổ sung (RS232 hay RS485) cho CPU. Các module này được kết nối bên trái CPU. Để chèn một module vào trong cấu hình phần cứng, lựa chọn module trong danh mục phần cứng và nhấp đôi chuột hay kéo module đó đến khe được tô sáng.

CHƢƠNG 3: CẤU HÌNH THIẾT BỊ

Trang 3 - 8

SIMATIC S7 - 1200

Tên module

Lựa chọn module

Chèn module

Kết quả

SM

SB

CM

CHƢƠNG 3: CẤU HÌNH THIẾT BỊ

Trang 3 - 9

SIMATIC S7 - 1200

3.5.

Cấu hình các thông số của các module. Để cấu hình các thông số vận hành cho các module, lựa chọn module trong

Device view và sử dụng thẻ “Properties” của cửa sổ kiểm tra để cấu hình các thông số cho module. Cấu hình một module tín hiệu (SM) hay một bảng tín hiệu (SB)  I/O kiểu số: các ngõ vào có thể được cấu hình cho việc phát hiện ngưỡng tăng hay ngưỡng giảm (mỗi ngưỡng liên quan với một sự kiện và ngắt phần cứng) và còn cho việc “bắt giữ xung” (để lưu lại sau một xung tức thời) cho đến cập nhật kế tiếp của ảnh tiến trình ngõ vào. Các ngõ ra có thể sử dụng một giá trị ngừng phát triển hay một giá trị thay thế.

 I/O kiểu tương tự: đối với các ngõ vào riêng lẻ, cấu hình các thông số, như là kiểu đại lượng đo (điện áp hay dòng điện), phạm vi và sự làm trơn, và để khởi động các chẩn đoán tràn dưới hay tràn ra. Các ngõ ra cung cấp các thông số như là kiểu ngõ ra (điện áp hay dòng điện) và dành cho các chẩn đoán, ví dụ như ngắn mạch (đối với ngõ ra điện áp) hay các chẩn đoán giới hạn dưới/trên.

 Các địa chỉ chẩn đoán I/O: cấu hình địa chỉ khởi đầu dành cho thiết lập của các ngõ vào và ngõ ra của module.

CHƢƠNG 3: CẤU HÌNH THIẾT BỊ

Trang 3 - 10

SIMATIC S7 - 1200

Việc cấu hình một module truyền thông (CM)  Cấu hình cổng: cấu hình các thông số truyền thông, như tốc độ baud, tính chẵn lẻ, các bit dữ liệu, các bit dừng, điều khiển dòng, các ký tự XON và XOFF, và thời gian chờ.  Cấu hình thông điệp truyền phát: khởi động và cấu hình các tùy chọn có liên quan đến truyền phát.  Cấu hình thông điệp thu nhận: khởi động và cấu hình các thông số khởi đầu thông điệp và kết thúc thông điệp.

Các thông số cấu hình này có thể được thay đổi bởi chương trình.

CHƢƠNG 3: CẤU HÌNH THIẾT BỊ

Trang 3 - 11

SIMATIC S7 - 1200

3.6.

Tạo ra một kết nối mạng. Người dùng sử dụng “Network view” trong Device Configuration để tạo ra các

kết nối mạng giữa các thiết bị trong đề án. Sau khi tạo ra kết nối mạng, sử dụng thẻ “Properties” của cửa sổ kiểm tra để cấu hình các thông số của mạng. Hoạt động

Kết quả

Lựa chọn “Network view” để hiển thị các thiết bị dùng để kết nối

Lựa chọn cổng trên một thiết bị và kéo kết nối đến cổng trên thiết bị thứ hai

Thả chuột để tạo ra kết nối mạng

CHƢƠNG 3: CẤU HÌNH THIẾT BỊ

Trang 3 - 12

SIMATIC S7 - 1200

3.7.

Cấu hình một địa chỉ IP trong đề án.

Việc cấu hình giao diện PROFINET Sau khi cấu hình CPU trên thanh đỡ, người dùng có thể cấu hình các thông số cho giao diện PROFINET. Để làm điều này, nhấp vào hộp PROFINET màu xanh lá cây trên CPU để lựa chọn cổng PROFINET. Thẻ “Properties” trong cửa sổ kiểm tra sẽ hiển thị cổng PROFINET.

 Cổng PROFINET Việc cấu hình địa chỉ IP Địa chỉ Ethernet (MAC): trong một mạng PROFINET, mỗi thiết bị được gán một địa chỉ MAC (Media Access Control: điều khiển truy xuất truyền thông) bởi nhà sản xuất nhằm nhận dạng. Một địa chỉ MAC bao gồm 6 nhóm gồm 2 ký chữ số thập lục phân, được ngăn cách bằng các dấu gạch nối (-) hay các dấu hai chấm (:), theo thứ tự truyền phát, ví dụ 01-23-45-67-89-AB hay 01:23:45:67:89:AB. Địa chỉ IP: mỗi thiết bị còn cần phải có một địa chỉ IP (Internet Protocol: giao thức mạng quốc tế). Địa chỉ này cho phép thiết bị chuyển giao dữ liệu trên một mạng phức hợp hơn và được định tuyến. Mỗi địa chỉ IP được chia thành 4 đoạn 8 bit và được thể hiện theo định dạng thập phân có dấu chấm, ví dụ 211.154.184.16. Phần đầu tiên của địa chỉ IP được dùng cho Network ID (loại mạng đang sử dụng), và phần thứ hai là cho Host ID (đơn nhất đối với mỗi thiết bị trên mạng). Một địa chỉ IP dưới dạng 192.168.x.y là một ký hiệu tiêu chuẩn được nhận biết như một phần của mạng riêng mà không được định tuyến trên Internet. CHƢƠNG 3: CẤU HÌNH THIẾT BỊ

Trang 3 - 13

SIMATIC S7 - 1200

Màn chắn mạng con: mạng con là một sự kết nhóm theo logic gồm các thiết bị mạng được kết nối. Các điểm nút trên một mạng con có khuynh hướng được định vị với một khoảng cách vật lý gần với nhau trên một mạng cục bộ (LAN: Local Area Network). Một màn chắn (đóng vai trò là màn chắn mạng con hay màn chắn mạng) sẽ xác định các vùng biên của một mạng con IP. Một màn chắn mạng con 255.255.255.0 thông thường thích hợp cho một mạng cục bộ loại nhỏ. Điều này có nghĩa là tất cả các địa chỉ IP trên mạng này đều có 3 trường 8 bit đầu tiên là giống nhau, và các thiết bị khác nhau trên mạng sẽ được định danh bằng 8 bit cuối cùng. Ví dụ minh họa cho điều này là để gán một màn chắn mạng con 255.255.255.0 và một địa chỉ IP nằm từ 192.168.2.0 đến 182.169.2.255 đến các thiết bị trên một mạnh cục bộ loại nhỏ. Chỉ kết nối giữa các mạng con khác nhau là thông qua một bộ định tuyến. Nếu các mạng con được sử dụng, một bộ định tuyến IP phải được dùng. Bộ định tuyến IP: các bộ định tuyến là liên kết giữa các mạng LAN. Việc sử dụng một bộ định tuyến, một máy tính trong mạng LAN có thể gửi đi các thông điệp đến bất kỳ các mạng nào khác mà có thể có các mạng LAN khác theo sau chúng. Nếu đích đến của dữ liệu không nằm trong mạng LAN, bộ định tuyến sẽ chuyển tiếp dữ liệu đến một mạng khác hay một nhóm các mạng mà dữ liệu có thể được chuyển giao đến. Các bộ định tuyến dựa vào các địa chỉ IP để chuyển giao và thu nhận các gói dữ liệu.

CHƢƠNG 3: CẤU HÌNH THIẾT BỊ

Trang 3 - 14

SIMATIC S7 - 1200

Các thuộc tính địa chỉ IP: trong cửa sổ Properties, lựa chọn mục nhập cấu hình “Ethernet address”. TIA Portal sẽ hiển thị hộp thoại cấu hình địa chỉ Ethernet, có liên quan đến đề án phần mềm với địa chỉ IP của CPU sẽ nhận đề án đó.

Lƣu ý CPU không có địa chỉ IP được cấu hình trước. Người dùng phải gán một địa chỉ IP cho CPU một cách thủ công. Nếu CPU được kết nối đến một bộ định tuyến trên một mạng, người dùng còn phải nhập vào địa chỉ IP của bộ định tuyến này. Tất cả các địa chỉ IP được cấu hình khi người dùng tải xuống đề án.

Bảng sau đây xác định các thông số của địa chỉ IP: Thông số

Miêu tả Tên của mạng con mà thiết bị được kết nối đến. Nhấp vào nút “Add new subnet” để tạo ra một mạng con mới. Mặc định là “Not connected”.

Mạng con

Hai kiểu kết nối có thể dùng: 

Mặc định “Not connected” cung cấp một kết nối cục bộ



Một mạng con được yêu cầu khi mạng có nhiều hơn từ hai thiết bị

Địa chỉ IP

Địa chỉ IP được gán cho CPU

Màn chắn mạng con

Màn chắn mạng con được gán

Giao thức IP

Mục đích của bộ định tuyến IP Địa chỉ bộ định tuyến

CHƢƠNG 3: CẤU HÌNH THIẾT BỊ

Nhấp vào hộp chọn để chỉ ra mục đích của một bộ định tuyến IP Địa chỉ IP được gán cho bộ định tuyến, nếu áp dụng được

Trang 3 - 15

SIMATIC S7 - 1200

Chƣơng 4 Khái niệm lập trình

CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH

Trang 4 - 1

SIMATIC S7 - 1200

4.1.

Các hƣớng dẫn để thiết kế một hệ thống PLC. Khi thiết kế một hệ thống PLC, ta có thể chọn từ nhiều phương pháp và chỉ tiêu

khác nhau. Các hướng dẫn chung sau đây có thể áp dụng đến nhiều đề án thiết kế. Tất nhiên, ta phải theo các lệnh dẫn của các thủ tục của riêng công ty và các áp dụng được chấp nhận đối với việc huấn luyện cũng như khu vực của mình. Các bƣớc

Các nhiệm vụ

đề nghị Phân vùng tiến

trình

hay bộ máy

Phân chia tiến trình hay bộ máy thành các khâu có mức độ phụ thuộc vào nhau. Các phân vùng này xác định các vùng biên giữa các bộ điều khiển, sự ảnh hưởng các đặc tính kỹ thuật miêu tả chức năng, và sự phân nhiệm của các tài nguyên. Ghi các miêu tả vận hành đối với mỗi công đoạn trong chu trình hay bộ máy,

Tạo ra các đặc

tính

chức năng

như các điểm I/O, miêu tả chức năng của việc vận hành, các trạng thái phải được đạt đến trước khi cho phép sự hoạt động đối với mỗi cơ cấu (như một cuộn dây nam châm, động cơ hay một bộ điều khiển), một sự miêu tả giao diện điều khiển, và bất kỳ các giao diện nào với các công đoạn khác của tiến trình hay bộ máy. Nhận dạng bất kỳ thiết bị nào có thể yêu cầu logic gắn cứng để an toàn. Hãy nhớ rằng các thiết bị điều khiển có thể hư hỏng khi phương pháp không an toàn, điều này có thể sinh ra sự khởi động hay sự thay đổi không mong muốn trong quá trình hoạt động của máy móc. Tại nơi mà sự vận hành không chính xác hay không được mong muốn của thiết bị có thể gây ra hậu quả về mặt tổn thương vật lý đến con người hay sự hủy hoại tài sản đáng kể, cần cân

Thiết kế các mạch toàn

an

nhắc đến việc thực thi của việc khống chế bằng điện cơ. Các nhiệm vụ sau đây nên được cài đặt sẵn trong thiết kế của các mạch an toàn: 

Nhận dạng bất kỳ sự vận hành không bình thường hay không mong muốn của các cơ cấu mà có thể nguy hiểm.



Nhận dạng các điều kiện sẽ bảo đảm sự vận hành không nguy hiểm, và xác định làm cách nào để phát hiện các điều kiện này một cách độc lập với PLC.



Nhận dạng bằng cách nào mà PLC tác động đến tiến trình khi đặt vào

CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH

Trang 4 - 2

SIMATIC S7 - 1200 hay gỡ bỏ nguồn điện, và còn nhận dạng bằng cách nào và khi nào mà các lỗi được phát hiện. Chỉ sử dụng thông tin này dành cho việc thiết kế sự vận hành bình thường hay bất bình thường theo mong muốn. Ta không nên phụ thuộc vào viễn cảnh của tình huống tốt nhất này đối với các mục đích an toàn. 

Thiết kế việc khống chế an toàn bằng tay hay bằng điện cơ mà ngăn chặn sự vận hành nguy hiểm một cách độc lập với PLC.



Cung cấp thông tin trạng thái thích hợp từ các mạch độc lập đến PLC để mà chương trình và bất kỳ các giao diện điều khiển khác có được thông tin cần thiết.



Nhận dạng bất kỳ các yêu cầu có liên quan đến an toàn khác dành cho sự hoạt động an toàn của tiến trình.

Dựa trên những yêu cầu của các thông số kỹ thuật chức năng, tạo ra các bản vẽ sau của các trạm điều hành: Xác

định

các

trạm

điều hành



Bản vẽ tổng quan thể hiện vị trí của mỗi trạm điều hành theo quan hệ đến tiến trình hay bộ máy.



Bản vẽ bố trí máy móc của các thiết bị dành cho trạm điều hành, như bộ hiển thị, các chuyển mạch và đèn.



Bản vẽ điện với I/O có liên quan của PLC và các module tín hiệu.

Dựa trên những yêu cầu của các thông số kỹ thuật chức năng, tạo ra các bản vẽ cấu hình của thiết bị điều khiển:  Tạo ra các bản vẽ về cấu hình

Bản vẽ tổng quan thể hiện vị trí của mỗi PLC theo quan hệ đến tiến trình hay bộ máy.



Bản vẽ bố trí máy móc của mỗi PLC và bất kỳ các module I/O, bao gồm các tủ máy và thiết bị khác.



Bản vẽ điện cho mỗi PLC và bất kỳ các module I/O, bao gồm các số hiệu mẫu của thiết bị, các địa chỉ truyền thông và các địa chỉ I/O.

Tạo ra một danh

sách

các tên gọi ký hiệu

Tạo ra một danh sách các tên gọi ký hiệu cho các địa chỉ tuyệt đối. Bao gồm không chỉ các tín hiệu I/O vật lý mà còn các phần tử khác (như các tên thẻ ghi) để được sử dụng trong chương trình.

CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH

Trang 4 - 3

SIMATIC S7 - 1200

4.2.

Việc cấu trúc chƣơng trình ngƣời dùng. Khi tạo ra một chương trình người dùng cho các nhiệm vụ về tự động, ta chèn

các lệnh của chương trình vào trong các khối mã:  Khối tổ chức (OB), đáp ứng một sự kiện xác định trong CPU và có thể ngắt sự thực thi của chương trình. Mặc định đối với thực thi theo chu trình của chương trình người dùng (OB 1) cung cấp cấu trúc cơ bản dành cho chương trình và chỉ là khối mã được yêu cầu đối với chương trình. Nếu ta bao hàm các OB khác trong chương trình, các OB này sẽ ngắt sự thực thi của OB 1. Các OB khác thực hiện các hàm đặc trưng, ví dụ như cho các tác vụ khởi động, cho việc xử lý các ngắt và lỗi, hay cho việc thực thi mã chương trình đặc trưng tại các khoảng thời gian dừng riêng biệt.  Khối chức năng (FB), là một đoạn chương trình con được thực thi khi nó được gọi từ khối mã khác (OB, FB hay FC). Khối đang gọi chuyển tiếp các thông số đến FB và còn nhận dạng một khối dữ liệu đặc trưng mà khối dữ liệu đó lưu trữ dữ liệu cho lần gọi riêng hay cho giá trị mẫu của FB đó. Việc thay đổi DB mẫu cho phép một FB chung điều khiển sự hoạt động của một tổ hợp các thiết bị. Ví dụ, một FB có thể điều khiển một vài máy bơm hay van, với các DB mẫu chứa các thông số vận hành riêng biệt của mỗi máy bơm hay van.  Mã chức năng (FC), là một chương trình con mà được thực thi khi nó được gọi từ một khối mã khác (OB, FB hay FC). FC không có một DB mẫu có liên quan. Khối đang gọi chuyển tiếp các thông số đến FC. Các giá trị ngõ ra từ FC phải được ghi đến một địa chỉ nhớ hay đến một DB toàn cục. Việc chọn kiểu cấu trúc cho chƣơng trình ngƣời dùng Dựa trên các yêu cầu của ứng dụng, ta có thể chọn cấu trúc thẳng hay cấu trúc kiểu khối kết cấu để tạo ra chương trình.  Chương trình thẳng thực thi tất cả các lệnh của tác vụ về tự động theo tuần tự, lệnh này theo sau lệnh kia. Thông thường, chương trình thẳng đặt tất cả các lệnh chương trình vào trong OB dành cho việc thực thi theo chu trình của chương trình (OB 1). CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH

Trang 4 - 4

SIMATIC S7 - 1200

 Chương trình khối kết cấu sẽ gọi các khối mã đặc trưng mà khối mã đó thực hiện các tác vụ riêng biệt. Để tạo ra một cấu trúc theo khối kết cấu, ta chia tác vụ thành nhiều tác vụ phụ nhỏ hơn phù hợp với các chức năng về mặt kỹ thuật của tiến trình. Mỗi khối mã cung cấp đoạn chương trình cho mỗi tác vụ phụ. Ta cấu trúc chương trình bằng cách gọi một trong số các khối mã từ một khối khác. Cấu trúc thẳng

Cấu trúc khối kết cấu

Bằng cách tạo ra các khối mã chung có thể được tái sử dụng trong chương trình người dùng, ta có thể đơn giản hóa thiết kế và sự thực thi chương trình. Việc sử dụng các khối mã chung có một số các lợi ích sau:  Ta có thể tạo ra các khối hàm sử dụng lại được dành cho các tác vụ tiêu chuẩn, như dành cho điều khiển một máy bơm hay một động cơ. Ta còn có thể lưu trữ các khối hàm chung này trong một thư viện có thể được sử dụng bởi các ứng dụng hay các giải pháp khác.  Khi ta cấu trúc chương trình vào trong các thành phần kiểu kết cấu có liên quan đến các tác vụ chức năng, thiết kế của chương trình có thể hiểu và quản lý dễ dàng hơn. Các thành phần kiểu kết cấu không chỉ giúp tiêu chuẩn hóa thiết kế chương trình mà còn giúp thực hiện việc cập nhật hay chỉnh sửa mã chương trình nhanh hơn và dễ dàng hơn.  Việc tạo ra các thành phần kiểu kết cấu làm đơn giản việc gỡ rối chương trình. Bằng cách cấu trúc chương trình hoàn chỉnh như một tổ hợp các bộ phận của chương trình kiểu kết cấu, ta có thể kiểm tra chức năng của mỗi khối mã hàm khi nó được phát triển.  Việc tạo ra các thành phần kiểu kết cấu có liên quan đến các chức năng về công nghệ đặc trưng có thể giúp làm đơn giản và rút gọn thời gian dành cho thực hiện một ứng dụng hoàn chỉnh. CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH

Trang 4 - 5

SIMATIC S7 - 1200

4.3.

Sử dụng các khối để cấu trúc chƣơng trình. Bằng cách thiết kế các FB và FC để thực hiện các tác vụ chung, ta tạo ra các

khối mã kiểu kết cấu. Sau đó cấu trúc chương trình bằng cách làm cho các khối mã khác gọi những module có thể sử dụng lại này. Khối đang gọi sẽ chuyển tiếp các thông số đặc trưng của thiết bị đến khối được gọi. A Khối đang gọi B Khối được gọi (hay đang ngắt)  Sự thực thi chương trình  Sự vận hành gọi một khối khác  Sự thực thi chương trình  Kết thúc khối (trở lại khối đang gọi) Khi một khối mã gọi khối mã khác, CPU thực thi mã chương trình trong khối được gọi. Sau khi sự thực thi của khối được gọi đã hoàn thành, CPU khôi phục lại sự thực thi của khối đang gọi. Việc xử lý tiếp tục với sự thực thi của lệnh theo sau việc gọi khối. Ta có thể xếp các việc gọi khối lồng vào nhau đối với cấu trúc kiểu kết cấu phức tạp hơn.  Khởi động chu trình  Độ sâu lồng vào nhau

Tạo ra các khối mã sử dụng lại đƣợc

CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH

Trang 4 - 6

SIMATIC S7 - 1200

Sử dụng hộp thoại “Add new block” ở dưới mục “Program blocks” trong điều hướng chương trình để tạo ra các OB, FB, FC và các DB toàn cục. Khi tạo ra khối mã, ta lựa chọn ngôn ngữ lập trình cho khối. Không lựa chọn ngôn ngữ lập trình cho DB vì nó chỉ lưu trữ dữ liệu.

4.3.1. Khối tổ chức (OB). Các khối tổ chức cung cấp cấu trúc cho chương trình. Chúng đóng vai trò như một giao diện giữa hệ điều hành và chương trình người dùng. Các OB được điều khiển theo sự kiện. Một sự kiện, ví dụ như một ngắt chẩn đoán hay một khoảng thời gian dừng, sẽ làm cho CPU thực hiện một OB. Một vài OB có các sự kiện khởi động cách hoạt động được định trước. OB chu kỳ chương trình chứa chương trình chính của người dùng. Ta có thể bao gồm nhiều hơn một OB chu kỳ chương trình trong chương trình. Trong suốt chế độ RUN, các OB chu kỳ chương trình thực thi tại mức ưu tiên thấp nhất và có thể bị ngắt bởi tất cả các việc xử lý chương trình khác. OB khởi động không ngắt OB chu kỳ chương trình bởi vì CPU thực thi OB khởi động trước khi đi vào chế độ RUN. Sau khi hoàn thành việc xử lý các OB chu kỳ chương trình, CPU ngay lập tức thực thi một lần nữa các OB chu kỳ chương trình. Việc xử lý theo chu kỳ này là dạng “bình thường” của kiểu xử lý được sử dụng cho các bộ điều khiển logic khả trình. Đối với nhiều ứng dụng, chương trình người dùng toàn bộ được định vị trong OB chu kỳ chương trình đơn lẻ. Ta có thể tạo ra các OB khác để thực hiện các hàm đặc trưng, ví dụ như các tác vụ khởi động, dành cho việc xử ký các ngắt và các lỗi, hay dành cho thực thi mã CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH

Trang 4 - 7

SIMATIC S7 - 1200

chương trình đặc trưng tại các khoảng thời gian dừng riêng biệt. Các OB này ngắt việc thực thi các OB chu kỳ chương trình. Sử dụng hộp thoại “Add new block” để tạo ra các OB mới trong chương trình. Tùy thuộc vào các mức độ ưu tiên tương ứng, một DB có thể ngắt một OB khác. Việc xử lý ngắt luôn luôn được điều khiển theo sự kiện. Khi một sự kiện xuất hiện, CPU ngắt sự thực thi của chương trình người dùng và gọi OB đã vừa được cấu hình để thực thi sự kiện đó. Sau khi hoàn thành sự thực thi của OB đang ngắt, CPU khôi phục sự thực thi chương trình người dùng tại điểm ngắt. CPU xác định mệnh lệnh dành cho việc xử lý các sự kiện ngắt bằng một mức ưu tiên được gán đến mỗi OB. Mỗi sự kiện ngắt có một mức ưu tiên phục vụ riêng biệt. Một vài sự kiện ngắt có thể được tổ hợp vào trong các lớp ưu tiên. Tạo ra một OB bổ sung nằm trong một lớp OB Ta có thể tạo ra nhiều OB dành cho chương trình, cả cho chu kỳ chương trình và các lớp OB khởi động. Sử dụng hộp thoại “Add new block” để tạo ra một OB. Nhập vào tên cho OB và nhập vào một số hiệu OB lớn hơn 200. Nếu ta tạo ra nhiều OB chu kỳ chương trình dành cho chương trình, COU thực thi mỗi OB chu kỳ chương trình theo trình tự bằng số, bắt đầu với OB chu kỳ chương trình chính (mặc định: OB 1). Ví dụ: sau khi OB chu kỳ chương trình đầu tiên (OB 1) hoàn thành, CPU thực thi OB chu kỳ chương trình thứ hai (ví dụ OB 200). Cấu hình sự hoạt động của một OB

CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH

Trang 4 - 8

SIMATIC S7 - 1200

Ta có thể chỉnh sửa các thông số vận hành của một OB. Ví dụ, có thể cấu hình thông số thời gian cho một OB trì hoãn thời gian hay cho một OB theo chu trình.

CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH

Trang 4 - 9

SIMATIC S7 - 1200

4.3.2. Hàm (FC). Một hàm (FC) là một khối mã mà thông thường nó thực hiện một sự vận hành đặc trưng trên một hệ thống các giá trị ngõ vào. FC lưu trữ các kết quả của hoạt động này trong các vùng nhớ. Sử dụng các FC để thực hiện các tác vụ sau đây:  Để thực hiện các hoạt động tiêu chuẩn và có thể tái sử dụng, ví dụ như dành cho các phép toán.  Để thực hiện các hàm về công nghệ, ví dụ như dành cho điều khiển cá thể sử dụng phép logic về bit. Một FC có thể được gọi nhiều lần tại các điểm khác nhau trong chương trình. Việc sử dụng lại này làm đơn giản hóa sự lập trình các tác vụ lặp lại một cách thường xuyên. Một FC không có khối dữ liệu (DB) mẫu liên quan. FC sử dụng nhóm dữ liệu cục bộ dành cho các dữ liệu tạm thời được sử dụng để tính toán. Dữ liệu tạm thời không được lưu lại. Để lưu trữ dữ liệu lâu dài, gán giá trị ngõ ra đến một khu vực nhớ toàn cục, như bộ nhớ M hay đến một DB toàn cục.

CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH

Trang 4 - 10

SIMATIC S7 - 1200

4.3.3. Khối hàm (FB). Khối hàm là một khối mã sử dụng một khối dữ liệu mẫu cho các thông số và dữ liệu tĩnh của nó. Các FB có bộ nhớ biến được đặt trong một khối dữ liệu (DB), hay DB “mẫu”. DB mẫu cung cấp một khối bộ nhớ có liên quan đến giá trị mẫu (hay lần gọi) của FB đó và lưu trữ dữ liệu sau khi FB hoàn thành. Ta có thể kết hợp các DB mẫu khác nhau với những lần gọi FB khác nhau. Các DB mẫu cho phép ta sử dụng một FB chung để điều khiển nhiều các thiết bị. Ta cấu trúc chương trình bằng cách cho một khối mã thực hiện một việc gọi đến một FB và một DB mẫu. CPU sau đó sẽ thực thi mã chương trình trong FB đó, và lưu trữ các thông số khối và dữ liệu cục bộ tĩnh trong DB mẫu. Khi sự thực thi của FB hoàn thành, CPU trả về khối mã đã gọi FB. DB mẫu giữ lại các giá trị cho giá trị mẫu đó của FB. Các giá trị này có sẵn cho các lần gọi theo tuần tự đến khối hàm cả trong cùng chu kỳ quét hay trong các chu kỳ quét khác nhau. Các khối mã có thể sử dụng lại với bộ nhớ có liên quan Thông thường ta sử dụng một FB để điều khiển sự vận hành của các tác vụ mà chúng không hoàn thành việc vận hành chỉ trong một chu kỳ quét. Để lưu trữ các thông số vận hành để từ đó chúng có thể được truy xuất một cách dễ dàng từ một lần quét đến lần quét tiếp theo, mỗi FB trong chương trình người dùng có một hay nhiều hơn các DB mẫu. Khi gọi một FB, ta còn chỉ rõ một DB mẫu chứa các thông số khối và dữ liệu cục bộ tĩnh cho việc gọi đó hay cho “mẫu” của FB. DB mẫu vẫn duy trì các dữ liệu này sau khi FB hoàn tất sự thực thi. Bằng cách thiết kế FB cho các tác vụ điều khiển chung, ta có thể sử dụng lại FB cho nhiều thiết bị bằng cách lựa chọn các DB mẫu khác nhau đối với các lần gọi FB khác nhau. Một FB lưu trữ các thông số ngõ vào (IN), thông số ngõ ra (OUT) và thông số vào/ra (IN_OUT) trong một DB mẫu. Gán các giá trị ban đầu Nếu các thông số ngõ vào, ngõ ra hay vào/ra của một khối hàm (FB) không được gán các giá trị, khi đó các giá trị được lưu trữ trong khối dữ liệu (DB) mẫu sẽ được sử dụng. Trong một vài trường hợp, ta phải gán giá trị các thông số. CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH

Trang 4 - 11

SIMATIC S7 - 1200

Ta có thể gán các giá trị ban đầu vào các thông số trong giao diện FB. Các giá trị này được truyền đi đến DB mẫu có liên quan. Nếu ta không gán giá trị các thông số, các giá trị hiện thời được lưu trữ trong DB mẫu sẽ được sử dụng. Sử dụng một FB đơn lẻ với các DB Hình sau đây thể hiện một OB mà OB đó gọi một FB 3 lần, bằng cách sử dụng một khối dữ liệu khác nhau cho mỗi lần gọi. Cấu trúc này cho phép một FB chung điều khiển nhiều thiết bị giống nhau, ví dụ như các động cơ, bằng cách gán mỗi khối dữ liệu mẫu khác nhau cho mỗi lần gọi các thiết bị khác nhau. Mỗi DB mẫu lưu trữ các dữ liệu (như tốc độ, thời gian tăng lên, và tổng thời gian hoạt động) cho mỗi thiết bị riêng lẻ. Trong ví dụ này, FB 22 điều khiển 3 thiết bị riêng biệt, với DB 201 lưu trữ dữ liệu hoạt động cho thiết bị đầu tiên, DB 202 lưu trữ dữ liệu hoạt động cho thiết bị thứ hai, và DB 202 lưu trữ dữ liệu hoạt động cho thiết bị thứ ba.

CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH

Trang 4 - 12

SIMATIC S7 - 1200

4.3.4. Khối dữ liệu (DB). Ta tạo ra các khối dữ liệu (DB) trong chương trình người dùng để lưu trữ dữ liệu cho các khối mã. Tất cả các khối chương trình đều có thể truy xuất dữ liệu trong một DB toàn cục, nhưng một DB mẫu thì chỉ lưu trữ dữ liệu cho một khối hàm (FB) đặc trưng. Ta có thể xác định một DB đóng vai trò chỉ đọc. Các dữ liệu được lưu trữ trong một DB sẽ không bị xóa khi sự thực thi của khối mã có liên quan kết thúc. Có hai kiểu DB:  DB toàn cục lưu trữ dữ liệu cho các khối mã trong chương trình. Bất kỳ OB, FB hay FC đều có thể truy xuất dữ liệu trong một DB toàn cục.  DB mẫu lưu trữ dữ liệu cho một FB đặc trưng. Cấu trúc của dữ liệu trong một DB mẫu phản ánh các thông số (IN, OUT và IN_OUT) và dữ liệu tĩnh của FB. (Bộ nhớ Temp cho FB thì không được lưu trữ trong DB mẫu).

Lƣu ý Mặc dù DB mẫu phản ánh các dữ liệu cho một FB đặc trưng, tuy nhiên bất kỳ mã hàm nào cũng có thể truy xuất dữ liệu trong một DB mẫu.

CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH

Trang 4 - 13

SIMATIC S7 - 1200

4.4.

Hiểu dữ liệu một cách thống nhất. CPU duy trì các dữ liệu một cách thống nhất cho tất cả các kiểu dữ liệu cơ bản

(ví dụ như kiểu Word hay DWord) và tất cả các cấu trúc được xác định trong hệ thống (ví dụ IEC_TIMERS hay DTL). Việc đọc hay ghi giá trị không thể bị ngắt. (Ví dụ, CPU bảo vệ việc truy xuất đến một giá trị DWord cho đến khi 4 byte DWord đã vừa được đọc hay ghi). Để đảm bảo rằng các OB chu kỳ chương trình và các OB ngắt không thể ghi vào cùng một vị trí nhớ tại cùng thời điểm, CPU sẽ không thực thi một OB ngắt cho đến khi hoạt động đọc hay ghi ở trong OB chu kỳ chương trình đã hoàn thành. Nếu chương trình chia sẻ nhiều dữ liệu trong bộ nhớ giữa một OB chu kỳ chương trình và một OB ngắt, chương trình phải còn đảm bảo rằng các dữ liệu này được chỉnh sửa hay được đọc một cách thống nhất. Ta có thể sử dụng các lệnh DIS_AIRT và EN_AIRT trong OB chu kỳ chương trình để bảo vệ bất kỳ truy xuất nào đến các dữ liệu được chia sẻ.  Chèn vào một lệnh DIS_AIRT trong khối mã để đảm bảo rằng một OB ngắt không thể được thực thi trong suốt quá trình hoạt động đọc hay ghi.  Chèn vào các lệnh đọc hay ghi các giá trị mà có thể được thay đổi bởi một OB ngắt.  Chèn vào một lệnh EN_AIRT tại điểm kết thúc của dãy tuần tự để bỏ qua lệnh DIS_AIRT và cho phép sự thực thi của OB ngắt. Một yêu cầu truyền thông từ một thiết bị HMI hay CPU khác còn có thể ngắt sự thực thi của OB chu kỳ chương trình. Các yêu cầu truyền thông còn có thể gây ra các ban hành dữ liệu nhất quán. CPU đảm bảo rằng các kiểu dữ liệu cơ bản luôn luôn được đọc và được ghi một cách nhất quán bởi các lệnh chương trình người dùng. Vì chương trình được ngắt một cách định kỳ bằng việc truyền thông, nó không thể bảo đảm rằng tất cả các giá trị trong CPU sẽ được cập nhật tại cùng thời điểm bởi HMI. Ví dụ, các giá trị được hiển thị trên một màn hình HMI đã cho có thể là từ các chu kỳ quét khác của CPU.

CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH

Trang 4 - 14

SIMATIC S7 - 1200

Các lệnh PtP, và các lệnh PROFINET (như TSEND_C và TRCV_C) truyền các bộ đệm dữ liệu mà có thể bị ngắt. Đảm bảo dữ liệu nhất quán cho các bộ đệm dữ liệu bằng cách tránh bất kỳ hoạt động đọc hay ghi đến các bộ đệm trong cả OB chu kỳ chương trình và OB ngắt. Nếu cần thiết chỉnh sửa các giá trị đệm cho các lệnh này trong một OB ngắt, sử dụng lệnh DIS_AIRT để trì hoãn bất kỳ sự ngắt nào (một OB ngắt hay một ngắt truyền thông từ một HMI hay một CPU khác) cho đến khi một lệnh EN_AIRT được thực thi.

Lƣu ý Việc sử dụng lệnh DIS_AIRT trì hoãn sự xử lý của các OB ngắt cho đến khi lệnh EN_AIRT được thực thi, ảnh hưởng đến độ trễ ngắt (thời điểm tính từ sự kiện đến thời điểm khi OB ngắt được thực thi) của chương trình người dùng.

CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH

Trang 4 - 15

SIMATIC S7 - 1200

4.5.

Lựa chọn ngôn ngữ lập trình. Ta có tùy chọn trong việc lựa chọn cả ngôn ngữ lập trình LAD (ladder logic)

hay FBD (Function Block Diagram). Ngôn ngữ lập trình LAD LAD là một ngôn ngữ lập trình kiểu đồ họa. Sự hiển thị được dựa trên các sơ đồ mạch điện. Các phần tử của một sơ đồ mạch điện, như các tiếp điểm thường đóng hay thường mở, và các cuộn dây được nối với nhau để tạo thành các mạng. Để tạo ra sơ đồ logic cho các thực thi phức tạp, ta có thể chèn vào các nhánh để tạo ra các mạch logic song song. Các nhánh song song được mở ra theo hướng xuống hay được kết nối trực tiếp đến thanh dẫn tín hiệu. Ta kết thúc các nhánh theo hướng lên trên. Cần chú ý đến các quy tắc sau đây khi tạo ra một mạng LAD:  Mỗi mạng LAD phải kết thúc bằng một cuộn dây hay một lệnh dạng hộp. Không được kết thúc một mạng với cả lệnh so sánh (Compare) hay lệnh phát hiện ngưỡng (ngưỡng dương hay ngưỡng âm).  Ta không thể tạo ra một nhánh mà có thể đưa lại kết quả là một dòng tín hiệu theo chiều ngược lại.

 Ta không thể tạo ra một nhánh mà có thể gây nên ngắn mạch.

CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH

Trang 4 - 16

SIMATIC S7 - 1200

Ngôn ngữ lập trình FBD Giống như ngôn ngữ LAD, ngôn ngữ FBD cũng là một ngôn ngữ lập trình kiểu đồ họa. Sự hiển thị của mạch logic được dựa trên các biểu tượng logic đồ họa sử dụng trong đại số Boolean. Các hàm toán học và các hàm phức khác có thể được thể hiện một cách trực tiếp trong sự kết hợp với các hộp logic. Để tạo ra logic cho các vận hành phức tạp, ta chèn các nhánh song song giữa các hộp. Việc hiểu biết về EN và ENO cho các lệnh “hộp” Cả ngôn ngữ LAD và FBD đều sử dụng “dòng tín hiệu” (EN và ENO) đối với một vài lệnh “hộp”. Các lệnh cố định (như lệnh toán học và lệnh di chuyển) hiển thị các thông số cho EN và ENO. Các thông số này liên quan đến dòng tín hiệu và xác định khi nào lệnh được thực thi trong suốt lần quét đó.  EN (Enable In) là một ngõ vào Boolean cho các hộp trong ngôn ngữ LAD và FBD. Dòng tín hiệu (EN = 1) phải được hiện diện tại ngõ vào này để cho lệnh hộp được thực thi. Nếu ngõ vào EN của một hộp LAD được kết nối trực tiếp đến thanh dẫn tín hiệu bên trái, hộp sẽ luôn luôn được thực thi.  ENO (Enable Out) là một ngõ ra Boolean cho các hộp trong ngôn ngữ LAD và FBD. Nếu hộp có dòng tín hiệu tại ngõ vào EN và hộp thực thi các chức năng của nó mà không có lỗi, khi đó ngõ ra ENO sẽ cho dòng tín hiệu (ENO = 1) đi qua đến phần tử kế tiếp. Nếu một lỗi được phát hiện trong quá trình thực thi của lệnh hộp, dòng tín hiệu sau đó sẽ bị ngắt (ENO = 0) tại hộp lệnh đã sinh ra lỗi.

CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH

Trang 4 - 17

SIMATIC S7 - 1200 Trình soạn thảo

Các ngõ

chƣơng trình

vào/ngõ ra

Toán hạng

Kiểu dữ liệu

LAD

EN, ENO

Power Flow (dòng tín hiệu)

Bool

FBD

EN

I, I:P, Q, M, DB, Temp, Power Flow

Bool

ENO

Power Flow

Bool

CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH

Trang 4 - 18

SIMATIC S7 - 1200

4.6.

Bảo vệ chống sao chép. Bảo vệ chống sao chép hay bảo

vệ “bí quyết” cho phép ta ngăn một hay nhiều khối mã (OB, FB, hay FC) trong chương trình khỏi việc truy cập không được phép. Ta tạo ra một mật khẩu để giới hạn việc truy xuất đến khối mã. Khi ta cấu hình một khối để bảo vệ “bí quyết”, mã nằm trong khối đó sẽ không thể được truy xuất ngoại trừ sau khi nhập vào mật khẩu. Để bảo vệ chống sao chép một khối, lựa chọn lệnh “Know how protection” từ trình đơn “Edit”. Sau đó ta nhập vào một mật khẩu cho phép truy xuất đến khối. Sự bảo vệ bằng mật khẩu sẽ ngăn chặn việc đọc hay chỉnh sửa không được cho phép một khối hàm. Nếu không có mật khẩu, ta chỉ có thể đọc các thông tin sau đây về khối mã:  Tiêu đề khối, chú giải khối và các thuộc tính của khối.  Các thông số truyền (IN, OUT, IN_OUT, Return)  Cấu trúc gọi của chương trình  Các thẻ ghi tổng thể trong các tham chiếu chéo (không có thông tin trên điểm sử dụng), nhưng các thẻ ghi cục bộ bị ẩn.

CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH

Trang 4 - 19

SIMATIC S7 - 1200

4.7.

Tải xuống các phần tử của chƣơng trình. Ta có thể tải xuống các phần tử của đề án từ các thiết bị lập trình đến CPU. Khi

ta tải xuống một đề án, CPU sẽ lưu trữ chương trình người dùng (các OB, FC, FB và DB) trong bộ nhớ thường trực. Ta có thể tải xuống đề án từ một thiết bị lập trình đến CPU từ bất kỳ trong các khu vực sau:  “Project tree”: nhấp chuột phải lên phần tử chương trình, sau đó nhấp vào mục chọn “Download” phụ thuộc vào ngữ cảnh.  Trình đơn “Online”: nhấp vào mục

chọn

“Download

to

device”.  Thanh công cụ: nhấp vào biểu tượng “Download to device”.

CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH

Trang 4 - 20

SIMATIC S7 - 1200

4.8.

Tải lên các phần tử của chƣơng trình. Ta có thể tải lên tất cả các khối chương trình và bảng thẻ ghi từ một CPU trực

tuyến (online) đến một đề án ngoại tuyến (offline), nhưng không thể tải lên cấu hình thiết bị hay các bảng quan sát. Ta không thể tải lên vào trong một đề án trống, mà phải có một CPU ngoại tuyến có thể tải lên. Ta không thể tải lên một khối đơn lẻ, mà chỉ có thể tải lên toàn bộ chương trình. Nếu một việc tải lên được thực hiện, CPU ngoại tuyến sẽ “bị xóa” (tất cả các khối và bảng thẻ ghi sẽ bị xóa) trước việc tải lên sau một câu hỏi kiểm tra. Ta không thể chỉnh sửa một khối trong vùng trực tuyến, mà trước tiên phải tải lên nó đến một vùng ngoại tuyến, sau đó chỉnh sửa tại đó và cuối cùng tải lại trở về PLC. Có hai cách để thực hiện việc tải lên: kéo và thả vào cây Project, hay đồng bộ hóa trong trình soạn thảo Compare. Kéo và thả vào cây đề án 1. Tạo ra một đề án mới. 2. Thêm một thiết bị CPU phù hợp với CPU mà ta đang tải lên từ đó. 3. Mở rộng nút của CPU một lần để thư mục “Program blocks” nhìn thấy được. 4. Từ cây Project, mở rộng nút “Online access”, mở rộng nút cho mạng muốn có, và nhấp đôi chuột lên “Update accessible devices”. 5. Sau khi các CPU có sẵn được liệt kê, mở rộng nút của CPU mà ta quan tâm. 6. Nhấp chuột trái và giữ thư mục “Program blocks” từ vùng “Online access” và kéo nó đến thư mục “Program blocks” từ vùng ngoại tuyến, sau đó thả chuột. Con trỏ của chuột phải chuyển sang “+” khi ta đi qua vùng hiệu chỉnh. 7. Nên xem hộp thoại “Upload preview” mở. Nhấp vào hộp “Continue” và sau đó nhấp vào “Upload from device”. 8. Cho phép việc tải lên hoàn thành. Lúc này nên xem tất cả các khối chương trình, các khối công nghệ và các thẻ ghi trong vùng ngoại tuyến. 9. Do cấu hình thiết bị không thể được tải lên, sử dụng “Device configuration” để thiết lập các thuộc tính của CPU một cách thủ công, bao gồm cả địa chỉ IP mong muốn, và để thêm vào các thiết bị khác đến đề án ngoại tuyến.

CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH

Trang 4 - 21

SIMATIC S7 - 1200

Ta còn có thể kéo từ vùng trực tuyến đến vùng “Program blocks” của một chương trình được tạo sẵn. Điều đó có nghĩa là, vùng ngoại tuyến “Program blocks” không bắt buộc phải trống. Trong trường hợp này, chương trình được tạo sẵn sẽ bị xóa và được thay thế bởi chương trình trực tuyến. Đồng bộ hóa trong trình soạn thảo so sánh 1. Mở đề án. 2. Trong cây Project, lựa chọn CPU ngoại tuyến để so sánh. 3. Mở trình soạn thảo “Compare” bằng cách nhấp chuột phải lên CPU ngoại tuyến, hay bằng cách lựa chọn lệnh “Compare offline/online” từ trình đơn “Menu”. 4. Trình soạn thảo Compare liệt kê các khác biệt ở dưới thư mục “Program blocks”. Nhấp vào biểu tượng trong cột thao tác. Để tải lên đề án, lựa chọn “Upload from device”. 5. Nhấp vào nút “Synchronize online and offline” để sao chép đề án từ CPU trực tuyến đến CPU ngoại tuyến.

CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH

Trang 4 - 22

SIMATIC S7 - 1200

4.9.

Gỡ rối và kiểm tra chƣơng trình. Ta sử dụng “các bảng quan sát” để giám sát và chỉnh sửa các giá trị của một

chương trình người dùng đang được thực thi bởi CPU trực tuyến. Ta có thể tạo ra và lưu các bảng quan sát khác nhau trong đề án để hỗ trợ một loạt các môi trường kiểm tra. Điều này cho phép tái thực hiện các kiểm tra trong suốt việc thử nghiệm hay cho các mục đích phục vụ và bảo trì. Với một bảng quan sát, ta có thể giám sát và tương tác với CPU khi nó thực thi chương trình người dùng. Ta có thể hiển thị hay thay đổi các giá trị không chỉ đối với các thẻ ghi của khối hàm và khối dữ liệu, mà còn đối với các vùng nhớ của CPU, bao gồm các ngõ vào và ngõ ra (I và Q), các ngõ vào và ngõ ra ngoại vi (I:P và Q:P), bộ nhớ bit (M) và các khối dữ liệu (DB). Với bảng quan sát, ta có thể kích hoạt các ngõ ra vật lý (Q:P) của một CPU trong chế độ STOP. Ví dụ, ta có thể gán các giá trị đặc trưng đến các ngõ ra khi kiểm tra việc nối dây đối với CPU. Bảng quan sát còn cho phép ta “bắt buộc” hay thiết lập một thẻ ghi đến một giá trị đặc trưng.

CHƢƠNG 4: KHÁI NIỆM LẬP TRÌNH

Trang 4 - 23

SIMATIC S7 - 1200

Chƣơng 5. Tập lệnh lập trình

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-1

SIMATIC S7 - 1200

5.1.

Tập lệnh cơ bản. 5.1.1. Bit logic.

Các tiếp điểm ladder (LAD)

Ta có thể kết nối các tiếp điểm với nhau và tạo ra mạch logic kết nối. Nếu bit ngõ vào mà ta chỉ rõ sử dụng bộ định danh I (ngõ vào) hay Q (ngõ ra), giá trị bit sẽ được đọc từ một thanh ghi ảnh tiến trình. Các tín hiệu tiếp điểm vật lý trong tiến trình điều khiển được nối đến các đầu cực I trên PLC. CPU quét các tín hiệu ngõ vào được nối và cập nhật liên tục các giá trị tương ứng trong thanh ghi ngõ vào ảnh tiến trình. Ta có thể ghi rõ một kết quả tức thời của một ngõ vào vật lý bằng cách sử dụng “:P” theo sau sự dịch chỉnh I (ví dụ: “%I3.4:P”). Đối với một kết quả tức thời, các giá trị dữ liệu bit được đọc một cách trực tiếp từ ngõ vào vật lý thay vì từ ảnh tiến trình. Một kết quả tức thời thì không cập nhật ảnh tiến trình. Thông số

Kiểu dữ liệu

Miêu tả

IN

Bool

Bit được gán giá trị

 Tiếp điểm thường hở NO (Normally Open) được đóng lại (ON) khi giá trị bit được gán bằng 1.  Tiếp điểm thường đóng NC (Normally Closed) được đóng lại (ON) khi giá trị bit được gán bằng 0.  Các tiếp điểm được nối nối tiếp sẽ tạo ra mạch logic AND.  Các tiếp điểm được nối song song sẽ tạo ra mạch logic OR.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-2

SIMATIC S7 - 1200

Các hộp FBD: AND, OR và XOR Trong lập trình FBD, các mạng tiếp điểm LAD được chuyển đổi thành các mạng dùng các khối logic AND (&), OR (> = 1) và OR loại trừ (XOR) mà ta có thể chỉ rõ các giá trị bit cho các ngõ vào và ngõ ra của hộp. Ta còn có thể kết nối đến các hộp logic khác và tạo ra một tổ hợp liên hợp logic riêng. Sau khi hộp được đặt trong mạng, ta có thể kéo công cụ “Insert binary input” từ thanh công cụ “Favorites” hay từ cây lệnh và sau đó thả nó lên trên phía đầu vào của hộp để thêm nhiều ngõ vào. Ta còn có thể nhấp chuột phải lên bộ kết nối ngõ vào của hộp và chọn “Insert input”. Các ngõ vào và ngõ ra của hộp có thể được kết nối đến một hộp logic khác, hay ta có thể nhập vào một địa chỉ bit hay tên ký hiệu bit đối với một ngõ vào chưa được kết nối. Khi lệnh trong hộp được thực thi, trạng thái ngõ vào hiện tại được áp dụng cho mạch logic hộp nhị phân và nếu đúng thì ngõ ra của hộp sẽ là đúng.

Thông số

Kiểu dữ liệu

Miêu tả

IN1, IN2

Bool

Bit ngõ vào

 Tất cả các ngõ vào của hộp AND phải là “TRUE” để ngõ ra là “TRUE”.  Bất kỳ ngõ vào nào của hộp OR phải là “TRUE” để ngõ ra là “TRUE”.  Một số lẻ các ngõ vào của hộp XOR phải là “TRUE” để ngõ ra là “TRUE”.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-3

SIMATIC S7 - 1200

Bộ đảo logic NOT Đối với lập tình FBD, ta có thể kéo công cụ “Negate binary input” từ thanh công cụ “Favorites” hay từ cây lệnh và sau đó thả nó lên một ngõ vào hay ngõ ra để tạo ra một bộ đảo logic trên bộ kết nối của hộp đó.

Tiếp điểm NOT (LAD) chuyển đổi trạng thái logic của đầu vào dòng tín hiệu.  Nếu không có dòng tín hiệu vào trong tiếp điểm NOT, sẽ có dòng tín hiệu đi ra.  Nếu có dòng tín hiệu vào trong tiếp điểm NOT, sẽ không có dòng tín hiệu đi ra. Cuộn dây ngõ ra (LAD)

Lệnh xuất cuộn dây sẽ ghi một giá trị cho một bit ngõ ra. Nếu bit ngõ ra ta chỉ ra sử dụng định danh bộ nhớ Q, thì sau đó CPU sẽ chuyển bit ngõ ra trong thanh ghi ảnh tiến trình về on hoặc off, thiết lập giá trị bit được gán bằng với trạng thái luồng tín hiệu. Các tín hiệu ngõ ra cho cơ cấu điều khiển được nối đến các đầu cực Q của S7 – 1200. Trong chế độ RUN, hệ thống CPU quét một cách liên tục các tín hiệu ngõ vào, xử lý các trạng thái ngõ vào theo chương trình logic, và sau đó tác động trở lại bằng cách thiết lập các giá trị trạng thái ngõ ra mới trong thanh ghi ngõ ra ảnh tiến trình. Sau mỗi chu trình thực thi chương trình, hệ thống CPU chuyển phản ứng trạng thái ngõ ra mới được lưu trữ trong thanh ghi ảnh tiến trình đến các đầu cực nối dây ngõ ra. Ta có thể xác định một kết quả ghi tức thời của một ngõ ra vật lý bằng cách sử dụng “:P” theo sau độ dịch chuyển Q (ví dụ “%Q3.4:P”). Đối với một kết quả ghi tức CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-4

SIMATIC S7 - 1200

thời, các giá trị dữ liệu bit được ghi đến ngõ ra ảnh tiến trình và trực tiếp đến ngõ ra vật lý. Thông số

Kiểu dữ liệu

Miêu tả

OUT

Bool

Bit được gán giá trị

 Nếu có luồng tín hiệu chạy qua một cuộn dây ngõ ra, bit ngõ ra được đặt lên 1.  Nếu không có luồng tín hiệu chạy qua một cuộn dây ngõ ra, bit ngõ ra được đặt về 0.  Nếu có luồng tín hiệu chạy qua một cuộn dây ngõ ra đảo, bit ngõ ra được đặt về 0.  Nếu không có luồng tín hiệu chạy qua một cuộn dây ngõ ra đảo, bit ngõ ra được đặt lên 1. Hộp gán ngõ ra (FBD) Trong lập trình FBD, các cuộn dây LAD được chuyển đổi thành các hộp gán (= và /=) mà ta có thể định rõ một địa chỉ bit cho hộp ngõ ra. Các ngõ vào và ngõ ra của hộp có thể được kết nối với khối logic khác hay ta có thể nhập vào một địa chỉ bit.

Thông số

Kiểu dữ liệu

Miêu tả

OUT

Bool

Bit được gán giá trị

 Nếu tín hiệu vào của hộp ngõ ra là 1, bit OUT được đặt lên 1.  Nếu tín hiệu vào của hộp ngõ ra là 0, bit OUT được đặt về 0.  Nếu tín hiệu vào của hộp ngõ ra đảo là 1, bit OUT được đặt về 0.  Nếu tín hiệu vào của hộp ngõ ra đảo là 0, bit OUT được đặt lên 1. CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-5

SIMATIC S7 - 1200

5.1.1.1.

Các lệnh Set (đặt) và Reset (đặt lại).

S và R: Set và Reset 1 bit  Khi lệnh S (Set) được kích hoạt, giá trị dữ liệu ở địa chỉ OUT được đặt lên 1. Khi lệnh S không được kích hoạt, ngõ ra OUT không bị thay đổi.  Khi lệnh R (Reset) được kích hoạt, giá trị dữ liệu ở địa chỉ OUT được đặt về 0. Khi lệnh R không được kích hoạt, ngõ ra OUT không bị thay đổi.  Những lệnh này có thể được đặt tại bất cứ vị trí nào trong mạch.

Thông số

Kiểu dữ liệu

Miêu tả

IN

Bool

Vị trí bit được giám sát

OUT

Bool

Vị trí bit được đặt hoặc đặt lại

SET_BF và RESET_BF: Set và Reset một trƣờng bit

Thông số

Kiểu dữ liệu

n

Constant

OUT

Phần tử của một mảng Boolean

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Miêu tả Số lượng các bit để ghi Phần tử bắt đầu của một trường bit được đặt hay đặt lại. Ví dụ #MyArray[3]

Trang 5-6

SIMATIC S7 - 1200

 Khi SET_BF được kích hoạt, một giá trị dữ liệu bằng 1 được gán cho “n” bit bắt đầu tại địa chỉ OUT. Khi SET_BF không được kích hoạt, địa chỉ OUT không bị thay đổi.  RESET_BF ghi một giá trị dữ liệu bằng 0 đến “n” bit bắt đầu tại địa chỉ OUT. Khi RESET_BF không được kích hoạt, địa chỉ OUT không bị thay đổi.  Những lệnh này phải là lệnh nằm về bên phải trong một nhánh. RS và SR: các mạch chốt của bit set trội và reset trội

RS là một mạch chốt set trội mà set chiếm ưu thế. Nếu tín hiệu set (S1) và reset (R) đều là đúng, địa chỉ ngõ ra OUT sẽ bằng 1. SR là một mạch chốt reset trội mà reset chiếm ưu thế. Nếu tín hiệu set (S) và reset (R1) đều là đúng thì địa chỉ ngõ ra OUT sẽ là 0. Thông số OUT định rõ địa chỉ bit được set hay reset. Ngõ ra OUT tùy chọn (Q ) phản ánh trạng thái tín hiệu của địa chỉ OUT. Thông số

Kiểu dữ liệu

S, S1

Bool

Ngõ vào set; số “1” biểu thị sự ưu thế

R, R1

Bool

Ngõ vào reset; số “1” biểu thị sự ưu thế

OUT

Bool

Ngõ ra của bit được gán “OUT”

Q

Bool

Trạng thái kèm theo của bit “OUT”

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Miêu tả

Trang 5-7

SIMATIC S7 - 1200 Lệnh

S1

R

Bit “OUT”

0

0

Trạng thái kề trước

0

1

0

1

0

1

1

1

1

S

R1

0

0

Trạng thái kề trước

0

1

0

1

0

1

1

1

0

RS

Bit “OUT”

SR

5.1.1.2.

Các lệnh ngưỡng dương và âm.

Các bộ dò quá độ dƣơng và âm

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-8

SIMATIC S7 - 1200 Thông số

Kiểu dữ liệu

Miêu tả

M_BIT

Bool

Bit nhớ trong đó trạng thái kề trước của ngõ vào được lưu trữ

IN

Bool

Bit ngõ vào mà ngưỡng quá độ của nó là dùng để phát hiện

OUT

Bool

Bit ngõ ra, cho biết một ngưỡng quá độ đã được phát hiện

CLK

Bool

Q

Bool

Luồng tín hiệu hay bit ngõ vào mà ngưỡng quá độ của chúng là dùng để phát hiện Ngõ ra biểu thị một ngưỡng đã được phát hiện

Tiếp điểm P (LAD): trạng thái của tiếp điểm này là “TRUE” khi một sự quá độ dương (từ OFF sang ON) được phát hiện trên bit “IN” được gán. Trạng thái logic của tiếp điểm sau đó được kết hợp với dòng tín hiệu trong mạch để thiết lập trạng thái ngõ ra của dòng tín hiệu. Tiếp điểm P có thể được định vị tại bất kỳ vị trí nào trong mạch, ngoại trừ vị trí kết thúc của một nhánh. Tiếp điểm N (LAD): trạng thái của tiếp điểm này là “TRUE” khi một sự quá độ âm (từ ON sang OFF) được phát hiện trên bit được gán. Trạng thái logic của tiếp điểm sau đó được kết hợp với dòng tín hiệu trong mạch để thiết lập trạng thái ngõ ra của dòng tín hiệu. Tiếp điểm N có thể được định vị tại bất kỳ vị trí nào trong mạch, ngoại trừ vị trí kết thúc của một nhánh. Hộp P (FBD): trạng thái logic ngõ ra là “TRUE” khi một sự quá độ dương (từ OFF sang ON) được phát hiện trên bit ngõ vào được gán. Hộp P chỉ có thể được định vị tại vị trí bắt đầu của một nhánh. Hộp N (FBD): trạng thái logic ngõ ra là “TRUE” một sự quá độ âm (từ ON sang OFF) được phát hiện trên bit ngõ vào được gán. Hộp N chỉ có thể được định vị tại vị trí bắt đầu của một nhánh. Cuộn dây P (LAD): bit được gán “OUT” là “TRUE” khi một sự quá độ dương (từ OFF sang ON) được phát hiện trên dòng tín hiệu đi vào cuộn dây. Dòng tín hiệu trong mạch luôn chạy xuyên qua cuộn dây, đóng vai trò như trạng thái ngõ ra dòng tín hiệu. Cuộn dây P có thể được định vị tại bât kỳ vị trí nào trong mạch. CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-9

SIMATIC S7 - 1200

Cuộn dây N (LAD): bit được gán “OUT” là “TRUE” khi một sự quá độ âm (từ ON sang OFF) được phát hiện trên dòng tín hiệu đi vào cuộn dây. Dòng tín hiệu trong mạch luôn chạy xuyên qua cuộn dây, đóng vai trò như trạng thái ngõ ra dòng tín hiệu. Cuộn dây N có thể được định vị tại bât kỳ vị trí nào trong mạch. Hộp P= (FBD): bit được gán “OUT” là “TRUE” khi một sự quá độ dương (từ OFF sang ON) được phát hiện trên trạng thái logic tại kết nối ngõ vào của hộp hoặc trên sự gán bit ngõ vào, nếu hộp này được định vị tại điểm khởi đầu của một nhánh. Trạng thái logic ngõ vào luôn chạy xuyên qua hộp giống như trạng thái logic ngõ ra. Hộp P= có thể được định vị tại bất kỳ vị trí nào trong nhánh. Hộp N= (FBD): bit được gán “OUT” là “TRUE” khi một sự quá độ âm (từ ON sang OFF) được phát hiện trên trạng thái logic tại kết nối ngõ vào của hộp hoặc trên sự gán bit ngõ vào, nếu hộp này được định vị tại điểm khởi đầu của một nhánh. Trạng thái logic ngõ vào luôn chạy xuyên qua hộp giống như trạng thái logic ngõ ra. Hộp N= có thể được định vị tại bất kỳ vị trí nào trong nhánh. P_TRIG (LAD/FBD): dòng tín hiệu ngõ ra Q hoặc trạng thái logic là “TRUE” khi một sự quá độ dương (từ OFF sang ON) được phát hiện trên trạng thái ngõ vào CLK (FBD) hay trên dòng tín hiệu CLK (LAD). Trong ngôn ngữ LAD, lệnh P_TRIG không thể được định vị tại vị trí khởi đầu hay kết thúc của một mạch. Trong ngôn ngữ FBD, lệnh P_TRIG có thể được định vị tại bất kỳ vị trí nào, ngoại trừ vị trí cuối của một nhánh. N_TRIG (LAD/FBD): dòng tín hiệu ngõ ra Q hoặc trạng thái logic là “TRUE” khi một sự quá độ âm (từ ON sang OFF) được phát hiện trên trạng thái ngõ vào CLK (FBD) hay trên dòng tín hiệu CLK (LAD). Trong ngôn ngữ LAD, lệnh N_TRIG không thể được định vị tại vị trí khởi đầu hay kết thúc của một mạch. Trong ngôn ngữ FBD, lệnh N_TRIG có thể được định vị tại bất kỳ vị trí nào, ngoại trừ vị trí cuối của một nhánh. Tất cả các lệnh ngưỡng sử dụng một bit nhớ (M_BIT) để lưu trữ trạng thái kề trước của tín hiệu ngõ vào đang được giám sát. Một ngưỡng được phát hiện bằng cách so sánh trạng thái của tín hiệu ngõ vào với trạng thái của bit nhớ. Nếu các trạng thái cho biết rằng một sự thay đổi của tín hiệu theo hướng cần quan tâm thì sau đó một CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-10

SIMATIC S7 - 1200

ngưỡng được thuật lại bằng việc ghi giá trị ngõ ra “TRUE”. Nếu không, ngõ ra được ghi là “FALSE”.

Lƣu ý Các lệnh ngưỡng sẽ đánh giá các giá trị của ngõ vào và bit nhớ trong mỗi lần chúng được thực thi, kể cả lần thực thi đầu tiên. Ta phải tính đến các trạng thái ban đầu của ngõ vào và bit nhớ trong thiết kế chương trình để cho phép hay để tránh sự phát hiện ngưỡng trên lần quét đầu tiên. Do bit nhớ phải được duy trì từ một lần thực thi đến lần thực thi tiếp theo, ta nên dùng một bit đơn nhất cho mỗi lệnh ngưỡng, và không nên dùng bit này tại bất kỳ vị trí nào khác trong chương trình. Ngoài ra ta còn nên tránh bộ nhớ tạm thời và bộ nhớ mà có thể bị tác động đến bởi những hàm hệ thống khác, ví dụ như một cập nhật I/O. Chỉ sử dụng bộ nhớ M, bộ nhớ DB tổng thể hay bộ nhớ Static (trong DB mẫu) cho việc gán vùng nhớ M_BIT.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-11

SIMATIC S7 - 1200

5.1.2. Các bộ định thì (Timer). Ta sử dụng các lệnh định thì để tạo ra các trì hoãn thời gian được lập trình.  TP

: bộ định thì xung phát ra một xung với bề rộng xung được đặt trước.

 TON : ngõ ra của bộ định thì ON – delay Q được đặt lên ON sau một sự trì hoãn thời gian đặt trước.  TOF : ngõ ra Q của bộ định thì OFF – delay được đặt lại về OFF sau một sự trì hoãn thời gian đặt trước.  TONR : ngõ ra bộ định thì có khả năng nhớ ON – delay được đặt lên ON sau một trì hoãn thời gian đặt trước. Thời gian trôi qua được tích lũy qua nhiều giai đoạn định thì cho đến khi ngõ vào R được sử dụng để đặt lại thời gian trôi qua.  RT

: đặt lại một bộ định thì bằng cách xóa dữ liệu thời gian được lưu trữ

trong khối dữ liệu tức thời của bộ định thì xác định. Mỗi bộ định thì sử dụng một cấu trúc được lưu trữ trong một khối dữ liệu nhằm duy trì dữ liệu định thì. Ta gán giá trị khối dữ liệu khi lệnh định thì được đặt trong trình soạn thảo. Khi ta đặt các lệnh định thì trong một khối hàm, ta có thể lựa chọn tùy chọn khối dữ liệu Multi – instance, các tên cấu trúc định thì có thể khác nhau với những cấu trúc dữ liệu riêng biệt, nhưng dữ liệu định thì được chứa trong một khối dữ liệu đơn và không cần một khối dữ liệu riêng biệt cho mỗi bộ định thì. Điều này làm giảm thời gian xử lý và nơi lưu trữ cần thiết cho việc xử lý các bộ định thì. Không có mối tương tác giữa những cấu trúc dữ liệu định thì trong khối dữ liệu Multi – instance được chia sẻ. Các bộ định thì TP, TON và TOF có các thông số ngõ vào và ngõ ra giống nhau.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-12

SIMATIC S7 - 1200

Bộ định thì TONR có thông số ngõ vào đặt lại được thêm vào R. Ta tạo ra một “Timer name” riêng chỉ định Data Block định thì và miêu tả mục đích của bộ định thì này trong chu trình.

Lệnh RT đặt lại dữ liệu định thì cho bộ định thì được chỉ định.

Thông số

Kiểu dữ liệu

Miêu tả

IN

Bool

Ngõ vào bộ định thì cho phép

R

Bool

Đặt lại thời gian trôi qua của TONR về 0

PT

Bool

Ngõ vào giá trị thời gian đặt trước

Q

Bool

Ngõ ra bộ định thì

ET

Time

Ngõ ra giá trị thời gian trôi qua

Khối dữ liệu định thì

DB

Chỉ ra bộ định thì nào để đặt lại với lệnh RT

Thông số IN khởi động và dừng các bộ định thì:  Sự quá độ từ 0 lên 1 của thông số IN làm khởi động các bộ định thì TP, TON và TONR.  Sự quá độ từ 1 về 0 của thông số IN làm khởi động bộ định thì TOF. Bảng dưới đây thể hiện tác động của những sự thay đổi giá trị trong các thông số PT và IN.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-13

SIMATIC S7 - 1200 Bộ định thì

TP

TON

Những thay đổi trong các thông số PT và IN 

Thay đổi PT không có ảnh hưởng trong khi bộ định thì vận hành.



Thay đổi IN không có ảnh hưởng trong khi bộ định thì vận hành.



Thay đổi PT không có ảnh hưởng trong khi bộ định thì vận hành.



Thay đổi IN sang “FALSE”, trong khi bộ định thì vận hành, sẽ đặt lại và dừng bộ định thì.

TOF



Thay đổi PT không có ảnh hưởng trong khi bộ định thì vận hành.



Thay đổi IN sang “TRUE”, trong khi bộ định thì vận hành, sẽ đặt lại và dừng bộ định thì.



Thay đổi PT không có ảnh hưởng trong khi bộ định thì vận hành, nhưng có ảnh hưởng khi định thì khôi phục lại.

TONR



Thay đổi IN sang “FALSE”, trong khi bộ định thì vận hành, sẽ dừng bộ định thì nhưng không đặt lại bộ định thì. Thay đổi IN trở lại sang “TRUE” sẽ làm bộ định thì bắt đầu tính toán thời gian từ giá trị thời gian được tích lũy.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-14

SIMATIC S7 - 1200

Các giá trị TIME. Các giá trị PT (preset time – thời gian đặt trước) và ET (elapsed time – thời gian đã trôi qua) được lưu trữ trong bộ nhớ như các số nguyên double có dấu, tượng trưng cho những mili giây thời gian. Dữ liệu TIME sử dụng bộ định danh T# và có thể được nhập vào như một đơn vị thời gian thuần túy “T#200ms” hay như các đơn vị thời gian phức hợp “T#2s_200ms”. Kiểu dữ liệu

Kích cỡ

Phạm vi số hợp lệ T#-24d_20h_31m_23s_648ms

TIME

32 bit

đến

T#24d_20h_31m_23s_647ms – 2.147.483.648 ms đến + 2.147.483.647 ms

Lƣu ý Vùng giá trị âm của kiểu dữ liệu TIME được thể hiện ở trên không thể được sử dụng với các lệnh định thì. Các giá trị PT (thời gian đặt trước) âm được đặt về 0 khi lệnh định thì được thực thi. ET (thời gian đã trôi qua) luôn luôn là một giá trị dương.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-15

SIMATIC S7 - 1200

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-16

SIMATIC S7 - 1200

5.1.3. Các bộ đếm (Counter). 5.1.3.1.

Các bộ đếm.

Ta sử dụng các lệnh bộ đếm để đếm các sự kiện chương trình bên trong và các sự kiện xử lý bên ngoài:  CTU: bộ đếm đếm lên.  CTD: bộ đếm đếm xuống.  CTUD: bộ đếm đếm lên và xuống. Mỗi bộ đếm sử dụng một cấu trúc được lưu trữ trong một khối dữ liệu nhằm duy trì dữ liệu đếm. Ta gán giá trị khối dữ liệu khi lệnh đếm được đặt trong trình soạn thảo. Các lệnh này sử dụng các bộ đếm phần mềm với tốc độ đếm cực đại bị giới hạn bởi tốc độ sự thực thi của OB mà nó được chứa trong đó. OB mà các lệnh được đặt trong nó phải được thực thi thường xuyên đủ để phát hiện tất cả các chuyển đổi của các ngõ vào CU hay CD. Khi đặt các lệnh bộ đếm vào trong một khối hàm, ta có thể lựa chọn tùy chọn khối dữ liệu Multi – instance, các tên gọi cấu trúc bộ đếm có thể khác với các cấu trúc dữ liệu riêng biệt, nhưng dữ liệu bộ đếm thì được chứa trong một khối dữ liệu đơn và không cần một khối dữ liệu riêng biệt cho mỗi bộ đếm. Điều này làm giảm thời gian xử lý và giảm nơi lưu trữ dữ liệu cần cho các bộ đếm. Không có mối tương tác nào giữa những cấu trúc dữ liệu bộ đếm trong khối dữ liệu Multi – instance được chia sẻ. Lựa chọn kiểu dữ liệu giá trị đếm từ danh sách thả xuống dưới tên hộp.

Ta tạo ra một “Counter name” riêng chỉ định Data Block bộ đếm và miêu tả mục đích của bộ đếm này trong chu trình.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-17

SIMATIC S7 - 1200

Thông số

Kiểu dữ liệu

Miêu tả

CU, CD

Bool

Đếm lên hay đếm xuống, bởi một lần đếm

R (CTU, CTUD)

Bool

Đặt lại giá trị đếm về 0

LOAD (CTD, CTUD)

Bool

Nạp điều khiển cho giá trị đặt trước

SInt,

PV

Int,

DInt,

USInt, UInt, UDInt

Giá trị đếm đặt trước

Q, QU

Bool

Đúng nếu CV >= PV

QD

Bool

Đúng nếu CV <= 0

CV

SInt,

Int,

DInt,

USInt, UInt, UDInt

Giá trị đếm hiện thời

Phạm vi số của các giá trị đếm bằng số phụ thuộc vào kiểu dữ liệu mà ta lựa chọn. Nếu giá trị đếm là một kiểu số nguyên không dấu, ta có thể đếm xuống về 0 hoặc đếm lên đến giới hạn của phạm vi. Nếu giá trị đếm là một số nguyên có dấu, ta có thể đếm xuống đến giới hạn số nguyên âm và đếm lên đến giới hạn số nguyên dương. CTU: CTU đếm lên 1 đơn vị khi giá trị của thông số CU thay đổi từ 0 lên 1. Nếu giá trị của thông số CV (Current count value – giá trị đếm hiện thời) lớn hơn hoặc bằng giá trị thông số PV (Preset count value – giá trị đếm đặt trước) thì thông số ngõ ra của bộ đếm Q = 1. Nếu giá trị của thông số đặt lại R thay đổi từ 0 lên 1, giá trị đếm hiện thời được xóa về 0. Hình dưới đây thể hiện một giản đồ định thì CTU với một giá trị đếm là số nguyên không dấu (với PV = 3).

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-18

SIMATIC S7 - 1200

CTD: CTD đếm xuống 1 đơn vị khi giá trị của thông số CD thay đổi từ 0 lên 1. Nếu giá trị của thông số CV (Current count value – giá trị đếm hiện thời) nhỏ hơn hoặc bằng 0 thì thông số ngõ ra của bộ đếm Q = 1. Nếu giá trị của thông số LOAD thay đổi từ 0 lên 1, giá trị tại thông số PV (Preset count value – giá trị đặt trước) được nạp đến bộ đếm như một giá trị CV mới. Hình dưới đây thể hiện một giản đồ định thì CTD với một giá trị đếm là số nguyên không dấu (với PV = 3).

CTUD: CTUD đếm lên hay xuống 1 đơn vị theo sự quá độ từ 0 lên 1 của ngõ vào đếm lên (Count up – CU) hay đếm xuống (Count down – CD). Nếu giá trị của thông số CV (giá trị đếm hiện thời) lớn hơn hoặc bằng giá trị thông số PV (giá trị đếm đặt trước) thì thông số ngõ ra của bộ đếm QU = 1. Nếu giá trị của thông số CV nhỏ hơn hay bằng 0, thông số ngõ ra của bộ đếm QD = 1. Nếu giá trị của thông số LOAD thay đổi từ 0 lên 1, giá trị tại thông số PV được nạp đến bộ đếm như một giá trị CV mới. Nếu giá trị của thông số đặt lại R thay đổi từ 0 lên 1, giá trị đếm hiện thời sẽ được xóa về 0. Hình dưới đây cho thấy một biểu đồ đếm thời gian CTUD với một giá trị đếm số nguyên không dấu (với PV = 4). CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-19

SIMATIC S7 - 1200

5.1.3.2.

Lệnh CTRL_HSC.

Lệnh CTRL_HSC điều khiển các bộ đếm tốc độ cao được sử dụng để đếm các sự kiện xuất hiện nhanh hơn tốc độ thực thi OB. Tốc độ đếm của các lệnh bộ đếm CTU, CTD và CTUD bị giới hạn bởi tốc độ thực thi của OB mà chúng được chứa trong đó. Một ứng dụng thông dụng của các bộ đếm tốc độ cao là đếm các xung được sinh ra bởi một máy phát xung có trục điều khiển chuyển động. Mỗi lệnh CTRL_HSC sử dụng một cấu trúc đsược lưu trữ trong một khối dữ liệu để duy trì dữ liệu. Ta gán giá trị khối dữ liệu khi lệnh CTRL_HSC được đặt

trong

trình

soạn

thảo

.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-20

SIMATIC S7 - 1200 Kiểu

Kiểu dữ

thông số

liệu

HSC

IN

HW_HSC

DIR

IN

Bool

1 = yêu cầu hướng đếm mới

CV

IN

Bool

1 = yêu cầu đặt một giá trị đếm mới

RV

IN

Bool

1 = yêu cầu đặt một giá trị tham chiếu mới

PERIOD

IN

Bool

NEW_DIR

IN

Int

NEW_CV

IN

Dint

Giá trị đếm mới

NEW_RV

IN

Dint

Giá trị tham chiếu mới

NEW_PERIOD

IN

Int

BUSY

OUT

Bool

Chức năng bận

STATUS

OUT

Word

Mã điều kiện thực thi

Thông số

Miêu tả Bộ định danh HSC

1 = yêu cầu đặt một giá trị chu kỳ mới (chỉ dành cho chế độ đo tần số) Hướng đếm mới: 1 = tiến; – 1 = lùi

Giá trị chu kỳ mới (s): .01, .1 hay 1 (chỉ dành cho chế độ đo tần số)

Ta phải cấu hình các bộ đếm tốc độ cao trong thiết lập sự cấu hình thiết bị PLC cho đề án trước khi có thể sử dụng các bộ đếm tốc độ cao trong chương trình. Việc thiết lập cấu hình thiết bị HSC lựa chọn các chế độ đếm, các kết nối I/O, phân vùng ngắt, và sự vận hành như một bộ đếm tốc độ cao hoặc như một thiết bị dùng đo tần số xung. Ta có thể vận hành bộ đếm tốc độ cao với có hay không có điều khiển chương trình. Nhiều thông số cấu hình bộ đếm tốc độ cao chỉ được thiết lập trong cấu hình thiết bị cho đề án. Một vài thông số bộ đếm tốc độ cao được khởi chạy trong cấu hình thiết bị đề án, nhưng không thể được chỉnh sửa về sau dưới sự điều khiển chương trình. Các thông số của lệnh CTRL_HSC cung cấp sự điều khiển chương trình của tiến trình đếm: CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-21

SIMATIC S7 - 1200

 Thiết lập hướng đếm đến một giá trị NEW_DIR.  Thiết lập giá trị đếm hiện thời đến một giá trị NEW_CV.  Thiết lập giá trị tham chiếu đến một giá trị NEW_RV.  Thiết lập giá trị chu kỳ (cho chế độ đo tần số) đến một giá trị NEW_PERIOD. Nếu các giá trị cờ boolean sau đây được đặt lên 1 khi lệnh CTRL_HSC được thực thi, giá trị NEW_xxx tương ứng được nạp đến bộ đếm. Nhiều yêu cầu (tức là có nhiều hơn một cờ được đặt tại cùng một thời điểm) được xử lý trong một sự thực thi đơn thuần của lệnh CTRL_HSC.  DIR = 1: yêu cầu nạp một giá trị NEW_DIR; DIR = 0: không thay đổi.  CV = 1: yêu cầu nạp một giá trị NEW_CV; CV = 0: không thay đổi.  RV = 1: yêu cầu nạp một giá trị NEW_RV; RV = 0: không thay đổi.  PERIOD = 1: yêu cầu nạp một giá trị NEW_PERIOD; PERIOD = 0: không thay đổi. Lệnh CTRL_HSC thường được đặt trong một OB ngắt phần cứng, OB này được thực hiện khi sự kiện ngắt phần cứng bộ đếm được kích hoạt. Lấy ví dụ, nếu một sự kiện CV = RV kích hoạt việc ngắt bộ đếm, một khối mã OB ngắt phần cứng sau đó sẽ thực thi lệnh CTRL_HSC và có thể thay đổi giá trị tham chiếu bằng cách nạp một giá trị NEW_RV. Giá trị đếm hiện thời thì không có sẵn trong các thông số của CTRL_HSC. Địa chỉ ảnh tiến trình lưu trữ giá trị đếm hiện thời được gán giá trị trong suốt sự cấu hình phần cứng bộ đếm tốc độ cao. Ta có thể sử dụng chương trình logic để đọc trực tiếp giá trị đếm và giá trị được trả lại chương trình sẽ là một số đếm đúng trong lúcmà bộ đếm đã được đọc. Bộ đếm sẽ tiếp tục đếm các sự kiện tốc độ cao. Vì vậy, giá trị đếm thực tế có thể thay đổi trước khi chương trình hoàn thành một chu trình sử dụng một giá trị đếm cũ. Các chi tiết thông số CTRL_HSC:  Nếu một cập nhật của một giá trị thông số không được yêu cầu, các giá trị ngõ vào tương ứng sẽ bị bỏ qua.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-22

SIMATIC S7 - 1200

 Thông số DIR chỉ có hợp lệ nếu mệnh lệnh đếm đã cấu hình được đặt về “User program (internal direction control)”. Ta xác định sử dụng thông số này trên cấu hình thiết bị HSC như thế nào.  Đối với một HSC S7 – 1200 trên CPU hay trên Signal Board, thông số BUSY luôn luôn mang giá trị là 0. Các mã điều kiện: trong trường hợp có lỗi, ENO được đặt về 0 và ngõ ra STATUS chứa một mã điều kiện. Giá trị STATUS

Miêu tả

(W#16#...) 0

Không có lỗi

80A1

Nhận dạng HSC không ghi địa chỉ HSC

80B1

Giá trị không phù hợp trong NEW_DIR

80B2

Giá trị không phù hợp trong NEW_CV

80B3

Giá trị không phù hợp trong NEW_RV

80B4

Giá trị không phù hợp trong NEW_PERIOD

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-23

SIMATIC S7 - 1200

5.1.3.3.

Hoạt động của bộ đếm tốc độ cao.

Một bộ đếm tốc độ cao (HSC) có thể được sử dụng như một ngõ vào cho một bộ mã hóa trục tăng. Bộ mã hóa trục cung cấp một số lượng xác định sự đếm trên mỗi vòng quay và một xung đặt lại xuất hiện chỉ một lần cho mỗi vòng. Xung đồng hồ và xung đặt lại từ bộ mã hóa trục cung cấp các ngõ vào đến HSC. Một HSC được nạp với thiết lập trước đầu tiên trong số các thiết lập trước (preset), và các ngõ ra được kích hoạt cho chu trình thời gian mà ở đó giá trị đếm hiện thời nhỏ hơn thiết lập trước hiện thời. HSC mang lại một sự ngắt khi giá trị đếm hiện thời bằng với giá trị thiết lập trước, khi sự đặt lại xuất hiện, và còn khi có một thay đổi định hướng. Vì mỗi sự kiện ngắt với giá trị đếm hiện thời bằng với giá trị đặt trước xuất hiện, một sự đặt lại mới được nạp và trạng thái kế tiếp của các ngõ ra được thiết lập. Khi sự kiện ngắt đặt lại xuất hiện, sự đặt lại đầu tiên và các trạng thái ngõ ra đầu tiên được thiết lập, và chu trình được lặp lại. Do các ngắt xuất hiện với một tốc độ thấp hơn nhiều so với tốc độ đếm của HSC, việc điều khiển chính xác của các vận hành với tốc độ cao có thể được thực thi với ảnh hưởng nhỏ một cách tương đối đến chu trình quét của CPU. Phương pháp với phần ngắt kèm theo cho phép mỗi lần nạp một thiết lập trước được thực hiện trong một đoạn chương trình ngắt riêng để điều khiển trạng thái dễ dàng. (Như một sự lựa chọn, tất cả các sự kiện ngắt có thể được thực thi trong một đoạn chương trình ngắt đơn thuần.) Lựa chọn chức năng cho bộ đếm tốc độ cao HSC Tất cả các HSC hoạt động theo cách thức giống nhau đối với một chế độ bộ đếm tương ứng trong vận hành. Có 4 kiểu cơ bản của HSC:  Bộ đếm một pha với điều khiển định hướng bên trong  Bộ đếm một pha với điều khiển định hướng bên ngoài  Bộ đếm hai pha với 2 ngõ vào đồng hồ đếm (clock)  Bộ đếm trạng thái vuông pha A/B CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-24

SIMATIC S7 - 1200

Ta có thể sử dụng mỗi kiểu HSC với có/không có ngõ vào đặt lại. Khi ta kích hoạt ngõ vào đặt lại (với một vài hạn chế, xem ở bảng dưới đây), giá trị hiện thời được xóa và được giữ trống cho đến khi ta giải hoạt ngõ vào đặt lại.  Chức năng tần số: một chế độ HSC cho phép HSC được cấu hình (kiểu đếm) để báo cáo lại tần số thay vì giá trị đếm hiện tại các xung. Có sẵn 3 thời kỳ đo tần số khác nhau: 0,01, 0,1 và 1,0 giây. Thời kỳ đo tần số xác định mức độ HSC thường xuyên tính toán và báo cáo một giá trị tần số mới. Tần số được báo cáo là một giá trị trung bình được xác định bởi tổng số lượng sự đếm trong thời kỳ đo cuối cùng. Nếu tần số thay đổi một cách nhanh chóng, giá trị được báo cáo sẽ là một trung gian giữa tần số cao nhất và thấp nhất xuất hiện trong suốt thời kỳ đo. Tần số luôn được xác định theo Hertz (số lượng xung trong mỗi giây) bất chấp sự thiết lập thời kỳ đo tần số.  Các chế độ và các ngõ vào của bộ đếm: bảng dưới đây thể hiện các ngõ vào được sử dụng cho đồng hồ, điều khiển định hướng và các chức năng đặt lại liên quan đến HSC. Một ngõ vào giống nhau không thể được sử dụng cho hai chức năng khác nhau, nhưng bất kỳ ngõ vào nào mà đang không được sử dụng bởi chế độ hiện thời HSC của nó thì có thể được sử dụng cho một mục đích khác. Ví dụ, nếu HSC1 ở trong chế độ sử dụng các ngõ vào gắn liền nhưng không sử dụng đặt lại bên ngoài (I0.3) thì I0.3 có thể được sử dụng cho các ngắt ở ngưỡng hoặc cho HSC2.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-25

SIMATIC S7 - 1200 Gán ngõ vào mặc định

Miêu tả Tích hợp hay HSC1

Signal Board hay màn hình PTO 0

1

Tích hợp hay HSC:

Signal Board hay màn hình PTO 1

HSC

1

I0.0

I0.1

I4.0

I4.1

Xung PTO Mệnh lệnh 0

PTO 0

I0.2

I0.3

I4.2

I4.3

Xung PTO Mệnh lệnh 1

I4.3 _

I0.1 I4.1 _

Tích hợp I0.4

I0.5

I0.7

HSC43

Tích hợp I0.6

I0.7

I0.5

Tích hợp hay I1.0

I1.1

I1.2

Signal Board I4.0

I4.1

I4.3

Tích hợp hay I1.3

I1.4

I1.5

Signal Board I4.2

I4.3

I4.1

_

_

Đếm hay tần số

Reset

Đếm

_

Đếm hay tần số

Reset

Đếm

_

Đếm hay tần số

Reset

Đếm

_

Đếm hay tần số

Pha Z

Đếm

_

Đếm

HSC64

Bộ đếm một pha với điều Đồng hồ khiển định hướng bên trong

đếm

Bộ đếm một pha với điều Đồng hồ khiển định hướng bên ngoài Bộ đếm hai pha với 2 tín hiệu vào clock

Mệnh lệnh

đếm Đồng hồ

Đồng hồ đếm

đếm lên

xuống

Bộ đếm trạng thái vuông pha Pha A

Pha B

A/B Giám sát các tín hiệu ra Đồng hồ chuỗi xung (PTO)1

1

I0.3

HSC32

HSC54

Chế độ

PTO 1

Chức năng

đếm

Mệnh lệnh

Việc giám sát các ngõ ra chuỗi xung luôn luôn sử dụng đồng hồ đếm và mệnh lệnh.

Nếu ngõ ra PTO tương ứng chỉ được cấu hình cho xung, ngõ ra của lệnh thông thường được thiết lập cho việc đếm giá trị dương.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-26

SIMATIC S7 - 1200 2

HSC3 với một ngõ vào đặt lại thì không dùng được cho CPU 1211C vốn chỉ hỗ trợ 6

ngõ vào tích hợp. 3

HSC4 không dùng được cho CPU 1211C vốn chỉ hỗ trợ 6 ngõ vào tích hợp.

4

HSC5 và HSC6 chỉ được hỗ trợ bởi CPU 1211C và CPU 1212C khi một bảng mạch

tín hiệu được lắp đặt. Truy xuất giá trị hiện thời cho HSC CPU lưu trữ giá trị hiện thời của mỗi HSC trong một địa chỉ ngõ vào (I). Bảng dưới đây thể hiện các địa chỉ mặc định được gán cho giá trị hiện hành của mỗi HSC. Ta có thể thay đổi địa chỉ I của giá trị hiện thời bằng cách chỉnh sửa các thuộc tính của CPU trong mục Device Configuration. Bộ đếm tốc độ cao

Kiểu dữ liệu

Địa chỉ mặc định

HSC1

DInt

ID1000

HSC2

DInt

ID1004

HSC3

DInt

ID1008

HSC4

DInt

ID1012

HSC5

DInt

ID1016

HSC6

DInt

ID1020

Các điểm I/O số đƣợc gán đến các thiết bị HSC không thể bị tác động. Các điểm I/O số được sử dụng bởi các thiết bị đếm tốc độ cao được gán giá trị trong suốt sự cấu hình thiết bị. Khi các địa chỉ điểm I/O được gán đến những thiết bị này, giá trị của các địa chỉ điểm I/O đó không thể được chỉnh sửa bởi hàm tác động bảng Watch.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-27

SIMATIC S7 - 1200

5.1.3.4.

Cấu hình cho HSC.

CPU cho phép ta cấu hình đến 6 bộ đếm tốc độ cao. Để cấu hình các thông số cho mỗi HSC riêng biệt, ta chỉnh sửa phần “Properties” của CPU. Sau khi kích hoạt HSC, ta cấu hình các thông số khác như chức năng đếm, các giá trị ban đầu, các tùy chọn đặt lại và các sự kiện ngắt. Sau khi cấu hình HSC, ta sử dụng lệnh CTRL_HSC trong chương trình để điều khiển sự vận hành của HSC.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-28

SIMATIC S7 - 1200

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-29

SIMATIC S7 - 1200

5.1.4. So sánh.

Ta sử dụng các lệnh so sánh để so sánh hai giá trị của cùng một kiểu dữ liệu. Khi việc so sánh tiếp điểm LAD là “TRUE”, tiếp điểm này được kích hoạt. Khi việc so sánh hộp FBD là “TRUE”, ngõ ra của hộp sẽ là “TRUE”. Sau khi nhấp chuột lên lệnh trong trình soạn thảo chương trình, ta có thể lựa chọn kiểu so sánh và kiểu dữ liệu từ các trình đơn thả xuống. Sự so sánh là đúng nếu:

Kiểu quan hệ ==

IN1 bằng IN2

<>

IN1 không bằng IN2

>=

IN1 lớn hơn hay bằng IN2

<=

IN1 nhỏ hơn hay bằng IN2

>

IN1 lớn hơn IN2

<

IN1 nhỏ hơn IN2

Thông số IN1, IN2

Kiểu dữ liệu SInt, Int, Dint, USInt, UInt, UDInt, Real, LReal, String, Char, Time, DTL, Constant

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Miêu tả Các giá trị để so sánh

Trang 5-30

SIMATIC S7 - 1200

Các lệnh “IN_RANGE” và “OUT_RANGE” Ta

sử

dụng

các

lệnh

IN_RANGE



OUT_RANGE để kiểm tra trong trường hợp một giá trị ngõ vào nằm trong hay nằm ngoài mức giá trị được định sẵn. Nếu sự so sánh là “TRUE” thì ngõ ra của hộp là “TRUE”.

Các thông số ngõ vào MIN, VAL và MAX phải có cùng kiểu dữ liệu. Sau khi nhấp chuột lên lệnh trong trình soạn thảo chương trình, ta có thể lựa chọn kiểu dữ liệu từ các trình đơn thả xuống. Sự so sánh là đúng nếu:

Kiểu quan hệ IN_RANGE OUT_RANGE

MIN <= VAL <= MAX VAL< MIN hoặc VAL > MAX

Thông số MIN, VAL, MAX

Kiểu dữ liệu SInt, Int, DInt, USInt, UDInt, Real, Constant

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Miêu tả Các ngõ vào phần tử so sánh

Trang 5-31

SIMATIC S7 - 1200

Các lệnh “OK” và “NOT_OK”

Ta sử dụng các lệnh OK và NOT_OK để kiểm tra xem một sự tham chiếu dữ liệu ngõ vào có phải là một số thực hợp lệ hay không theo tiêu chuẩn IEE 754. Khi tiếp điểm LAD là “TRUE”, tiếp điểm được kích hoạt và cho dòng tín hiệu đi qua. Khi hộp FBD là “TRUE”, ngõ ra của hộp nhận giá trị “TRUE”. Một giá trị Real hay LReal là không hợp lệ nếu nó là +/– INF (infinity: vô cùng), NaN (not a number: không phải một số), hay nếu nó là một giá trị không được chuẩn hóa. Giá trị không được chuẩn hóa ở đây là một con số rất gần với 0. CPU thay thế bằng số 0 đối với một con số không được chuẩn hóa trong tính toán. Lệnh OK NOT_OK

Sự kiểm tra số thực là “TRUE” nếu: Giá trị ngõ vào là một số thực hợp lệ Giá trị ngõ vào không phải là một số thực hợp lệ

Thông số

Kiểu dữ liệu

Miêu tả

IN

Real, LReal

Dữ liệu ngõ vào

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-32

SIMATIC S7 - 1200

5.1.5. Phép toán. Các lệnh cộng, trừ, nhân và chia

Ta sử dụng một lệnh hộp phép toán để lập trình các vận hành phép toán cơ bản:  ADD : phép cộng (IN1 + IN2

= OUT)

 SUB : phép trừ

(IN1 – IN2

= OUT)

 MUL : phép nhân (IN1 * IN2

= OUT)

 DIV

= OUT)

: phép chia

(IN1 / IN2

Một hoạt động chia số nguyên sẽ cắt bỏ phần phân số của thương số để tạo ra một tín hiệu ra số nguyên. Ta nhấp vào phía dưới tên hộp và lựa chọn một kiểu dữ liệu từ trình đơn thả xuống.

Lƣu ý Các thông số lệnh phép toán cơ bản IN1, IN2 và OUT phải có kiểu dữ liệu giống nhau.

Thông số IN1, IN2 OUT

Kiểu dữ liệu

Miêu tả

SInt, Int, DInt, UInt, UDInt, Real, LReal, Constant Các ngõ vào phép toán SInt, Int, DInt, UInt, UDInt, Real, LReal

Ngõ ra phép toán

Khi được cho phép (EN = 1), lệnh phép toán thực hiện hoạt động được định rõ trên các giá trị ngõ vào (IN1 và IN2) và lưu trữ kết quả trong địa chỉ nhớ được xác CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-33

SIMATIC S7 - 1200

định bởi thông số ngõ ra (OUT). Sau một sự hoàn tất thành công phép toán, lệnh sẽ đặt ENO = 1. Trạng

Miêu tả

thái ENO 1

Không có lỗi Giá trị kết quả tính toán có thể đã vượt quá phạm vi hợp lệ của kiểu dữ liệu

0

được chọn. Phần trọng số thấp nhất trong kết quả mà vừa với kích thước nơi đến thì được trả về.

0 0

0

0

0

0

Phép chia cho 0 (IN2 = 0): kết quả không được xác định và số 0 được trả lại. Real/LReal: nếu một trong các giá trị ngõ vào là NaN (không phải một số) thì NaN được trả lại. ADD Real/LReal: nếu cả hai giá trị IN đều là INF với dấu khác nhau, đây là một phép toán không hợp lệ và NaN được trả lại. SUB Real/LReal: nếu cả hai giá trị IN đều là INF và cùng dấu, đây là một phép toán không hợp lệ và NaN được trả lại. MUL Real/LReal: nếu một giá trị IN là 0 còn giá trị kia là INF, đây là một phép toán không hợp lệ và NaN được trả lại. DIV Real/LReal: nếu cả hai giá trị IN là 0 hoặc là INF, đây là một phép toán không hợp lệ và NaN được trả lại.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-34

SIMATIC S7 - 1200

5.1.5.1.

Lệnh MOD.

Ta sử dụng lệnh MOD (modulo) cho phép toán IN1 modulo IN2. Phép toán IN1 MOD IN2 = IN1 – (IN1/IN2) = thông số OUT. Ta nhấp vào phía dưới tên hộp và chọn một kiểu dữ liệu từ trình đơn thả xuống.

Lƣu ý Các thông số IN1, IN2 và OUT phải có kiểu dữ liệu giống nhau.

Thông số IN1 và IN2 OUT

Kiểu dữ liệu

Miêu tả

Int, DInt, USInt, UInt, UDInt, Constant

Các ngõ vào modulo

Int, DInt, USInt, UInt, UDInt

Ngõ ra modulo

Trạng thái ENO

Miêu tả

1

Không có lỗi

0

Giá trị IN2 = 0, OUT được gán giá trị bằng 0

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-35

SIMATIC S7 - 1200

Lệnh NEG

Ta sử dụng lệnh NEG (phép đảo) để đảo ngược dấu số học của giá trị tại thông số IN và lưu trữ kết quả trong thông số OUT. Ta nhấp vào phía dưới tên hộp và chọn một kiểu dữ liệu từ trình đơn thả xuống.

Lƣu ý Các thông số IN và OUT phải có kiểu dữ liệu giống nhau.

Thông số IN OUT

Kiểu dữ liệu SInt, Int, DInt, Real, LReal, Constant

Ngõ vào phép toán

SInt, Int, DInt, Real, LReal

Ngõ ra phép toán

Trạng

Miêu tả

thái ENO 1

Miêu tả

Không có lỗi Giá trị kết quả vượt quá phạm vi hợp lệ của kiểu dữ liệu được chọn. Ví dụ đối

0

với SInt: NEG (– 128) cho kết quả + 128 vượt quá giá trị tối đa của kiểu dữ liệu này.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-36

SIMATIC S7 - 1200

Các lệnh tăng và giảm Ta sử dụng các lệnh INC và DEC để:  Tăng giá trị một số nguyên có dấu hoặc không dấu. INC: giá trị thông số IN/OUT + 1 = giá trị thông số IN/OUT.  Giảm giá trị một số nguyên có dấu hoặc không dấu. DEC: giá trị thông số IN/OUT – 1 = giá trị thông số IN/OUT. Ta nhấp vào phía dưới tên hộp và chọn một kiểu dữ liệu từ trình đơn thả xuống.

Thông số

Kiểu dữ liệu

IN/OUT

SInt, Int, DInt, USInt, UDInt

Trạng

Ngõ vào và ngõ ra phép toán

Miêu tả

thái ENO 1

Miêu tả

Không có lỗi Giá trị kết quả vượt quá phạm vi hợp lệ của kiểu dữ liệu được chọn. Ví dụ đối

0

với SInt: INC (127) cho kết quả + 128 vượt quá giá trị tối đa của kiểu dữ liệu này.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-37

SIMATIC S7 - 1200

Lệnh giá trị tuyệt đối

Ta sử dụng lệnh ABS để nhận được giá trị tuyệt đối của một số nguyên có dấu hoặc một số thực tại thông số IN và lưu trữ kết quả trong thông số OUT. Ta nhấp vào phía dưới tên hộp và chọn một kiểu dữ liệu từ trình đơn thả xuống.

Lƣu ý Các thông số IN và OUT phải có kiểu dữ liệu giống nhau.

Thông số

Kiểu dữ liệu

Miêu tả

IN

SInt, Int, DInt, Real, LReal

Ngõ vào phép toán

OUT

SInt, Int, DInt, Real, LReal

Ngõ ra phép toán

Trạng thái

Miêu tả

ENO 1

Không có lỗi Giá trị kết quả phép toán vượt quá phạm vi hợp lệ của kiểu dữ liệu được

0

chọn. Ví dụ đối với SInt: ABS (– 128) cho kết quả + 128 vượt quá giá trị tối đa của kiểu dữ liệu này.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-38

SIMATIC S7 - 1200

Lệnh MIN và MAX Ta sử dụng lệnh MIN (minimum: cực tiểu) và MAX (maximum: cực đại) như sau:  Lệnh MIN so sánh giá trị của hai thông số IN1 và IN2 và gán giá trị cực tiểu (nhỏ hơn) cho thông số OUT.  Lệnh MAX so sánh giá trị của hai thông số IN1 và IN2 và gán giá trị cực đại (lớn hơn) cho thông số OUT. Ta nhấp vào phía dưới tên hộp và chọn một kiểu dữ liệu từ trình đơn thả xuống.

Lƣu ý Các thông số IN và OUT phải có kiểu giá trị giống nhau.

Thông số IN1, IN2 OUT

Kiểu dữ liệu

SInt, Int, DInt, USInt, UDInt, Real, Constant Các ngõ vào phép toán SInt, Int, DInt, USInt, UDInt, Real

Trạng thái

Ngõ ra phép toán

Miêu tả

ENO 1

Miêu tả

Không có lỗi (Chỉ đối với dữ liệu kiểu Real)

0



Một hay cả hai ngõ vào không phải là một số thực (NaN).



Kết quả OUT là +/– INF (vô cùng)

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-39

SIMATIC S7 - 1200

Lệnh giới hạn Ta sử dụng lệnh LIMIT để kiểm tra xem giá trị của thông số IN có nằm bên trong phạm vi giá trị xác định bởi các thông số MIN và MAX hay không. Giá trị OUT được giữ lại tại giá trị MIN hay MAX, nếu giá trị IN nằm ngoài phạm vi này.  Nếu giá trị thông số IN nằm trong phạm vi xác định, giá trị IN được lưu trữ trong thông số OUT.  Nếu giá trị thông số IN nằm ngoài phạm vi xác định, giá trị OUT sẽ là giá trị của thông số MIN (nếu IN nhỏ hơn MIN) hoặc sẽ là giá trị của thông số MAX (nếu IN lớn hơn MAX). Ta nhấp vào phía dưới tên hộp và chọn một kiểu dữ liệu từ trình đơn thả xuống.

Lƣu ý Các thông số MIN, IN, MAX và OUT phải có kiểu giá trị giống nhau.

Thông số

Kiểu dữ liệu

MIN, IN và MAX OUT

SInt, Int, DInt, USInt, UInt, UDInt, Real, Constant SInt, Int, DInt, USInt, UInt, UDInt, Real

Trạng thái

0 0

Các ngõ vào phép toán Ngõ ra phép toán

Miêu tả

ENO 1

Miêu tả

Không có lỗi Real: nếu một hay nhiều hơn các giá trị của MIN, IN và MAX là NaN (không phải một số) thì NaN sẽ được trả về. Nếu MIN lớn hơn MAX, giá trị IN được gán đến OUT.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-40

SIMATIC S7 - 1200

Các lệnh toán học dấu phẩy động Ta sử dụng các lệnh dấu phẩy động để lập trình việc vận hành toán học sử dụng kiểu dữ liệu Real hay LReal:  SQR : bình phương (IN2 = OUT)  SQRT : căn bậc hai ( IN  OUT )  LN

: logarite tự nhiên (LN(IN) = OUT)

 EXP : lũy thừa tự nhiên (eIN = OUT) với cơ số e = 2,71828182845904523536  SIN

: hàm sin (sin(IN radian) = OUT)

 COS : hàm cos (cos(IN radian) = OUT)  TAN : hàm tan (tan(IN radian) = OUT)  ASIN : sin ngược (arcsin (IN) = OUT)  ACOS : cos ngược (arccos (IN) = OUT)  ATAN: tan ngược (arctan (IN) = OUT)  FRAC : phân số (phần phân số của số có dấu phẩy động IN = OUT)  EXPT : lũy thừa tổng quát (IN1IN2 = OUT) Ta nhấp vào phía dưới tên hộp và chọn một kiểu dữ liệu từ trình đơn thả xuống. Các thông số EXPT là IN1 và OUT luôn luôn là Real. Ta có thể lựa chọn kiểu dữ liệu cho thông số số mũ IN2.

Thông số IN, IN1 IN2 OUT

Kiểu dữ liệu Real, LReal, Constant SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, Constant Real, LReal

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Miêu tả Các ngõ vào Ngõ vào số mũ EXPT Ngõ ra Trang 5-41

SIMATIC S7 - 1200 Trạng

1

Điều kiện

Lệnh

thái ENO

Tất cả

Không có lỗi Kết quả vượt quá phạm vi Real/LReal hợp

SQR

lệ

Kết quả (OUT) Kết quả hợp lệ + INF

IN là +/– NaN (không phải số)

+ NaN

IN âm

– NaN

IN là +/– INF hay +/– NaN

+/– INF hay +/– NaN

IN bằng 0, số âm, – INF hay – NaN

– NaN

IN là + INF hay + NaN

+ INF hay + NaN

SQRT

LN Kết quả vượt quá phạm vi Real/LReal hợp EXP

SIN, COS, TAN

lệ IN là +/– NaN

+/– NaN

IN là +/– INF hay +/– NaN

+/– INF hay +/– NaN

IN nằm ngoài phạm vi hợp lệ từ – 1 đến +

0 ASIN, ACOS

+ INF

1

+ NaN

IN là +/– NaN

+/– NaN

ATAN

IN là +/– NaN

+/– NaN

FRAC

IN là +/– INF hay +/– NaN

+ NaN

IN1 là + INF và IN2 không phải là – INF

+ INF + NaN nếu IN2 là

IN1 âm hay bằng – INF EXPT

Real/ LReal; – INF với trường hợp khác

IN1 hay IN2 là +/– NaN

+ NaN

IN1 bằng 0 và IN2 (chỉ) là Real/LReal

+ NaN

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-42

SIMATIC S7 - 1200

5.1.6. Di chuyển. Các lệnh di chuyển và di chuyển khối

Ta sử dụng các lệnh di chuyển để sao chép các phần tử dữ liệu đến một địa chỉ nhớ mới và chuyển đổi từ một kiểu dữ liệu này sang kiểu khác. Dữ liệu nguồn không bị thay đổi trong quá trình di chuyển.  MOVE: sao chép một phần tử dữ liệu được lưu trữ tại một địa chỉ xác định đến một địa chỉ mới.  MOVE_BLK: di chuyển có thể ngắt mà sao chép một khối các phần tử dữ liệu đến một địa chỉ mới.  UMOVE_BLK: di chuyển không ngắt được mà sao chép một khối các phần tử dữ liệu đến một địa chỉ mới. MOVE Thông số IN

OUT

Kiểu dữ liệu

Miêu tả

SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, Byte, Word, DWord, Char, Array, Struct, DTL, Time SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, Byte, Word, DWord, Char, Array, Struct, DTL, Time

Địa chỉ nguồn Địa chỉ đích

MOVE_BLK, UMOVE_BLK Thông số IN

COUNT

OUT

Kiểu dữ liệu

Miêu tả

SInt, Int, DInt, USInt, UInt, UDInt, Real, Byte, Địa Word, DWord UInt SInt, Int, DInt, USInt, UInt, UDInt, Real, Byte, Word, DWord

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

chỉ

bắt

đầu

nguồn Số lượng phần tử dữ liệu để sao chép Địa chỉ bắt đầu đích

Trang 5-43

SIMATIC S7 - 1200

Lƣu ý Các quy tắc đối với hoạt động sao chép dữ liệu:  Để sao chép kiểu dữ liệu Bool, sử dụng SET_BF, RESET_BF, R, S hoặc cuộn dây ngõ ra (LAD).  Để sao chép một kiểu dữ liệu cơ bản đơn lẻ, sử dụng MOVE.  Để sao chép một mảng kiểu dữ liệu cơ bản, sử dụng MOVE_BLK hay UMOVE_BLK.  Để sao chép một cấu trúc, sử dụng MOVE.  Để sao chép một chuỗi, sử dụng S_CONV.  Để sao chép một ký tự đơn lẻ trong một chuỗi, sử dụng MOVE  Lệnh MOVE_BLK và UMOVE_BLK không thể được dùng để sao chép các mảng hay cấu trúc đến các vùng nhớ I, Q hay M.

Lệnh MOVE sao chép một phần tử dữ liệu đơn lẻ từ một địa chỉ nguồn được xác định bởi thông số IN đến địa chỉ đích được xác định bởi thông số OUT. Lệnh MOVE_BLK và UMOVE_BLK có một thông số thêm vào là COUNT. Thông số COUNT chỉ ra có bao nhiêu phần tử dữ liệu được sao chép. Số lượng các byte trong mỗi phần tử được sao chép phụ thuộc vào kiểu dữ liệu được gán cho tên gắn nhãn của thông số IN và OUT trong bảng gắn nhãn PLC. Các lệnh MOVE_BLK và UMOVE_BLK khác nhau ở cách thức mà các ngắt được thực hiện:  Các sự kiện ngắt đƣợc xếp hàng và đƣợc xử lý trong suốt việc thực thi MOVE_BLK. Sử dụng lệnh MOVE_BLK khi dữ liệu tại địa chỉ di chuyển đích không được sử dụng bên trong một chương trình con OB ngắt, hoặc nếu nó được sử dụng thì dữ liệu đích không bắt buộc phải là nhất quán. Nếu một hoạt động MOVE_BLK bị ngắt, phần tử dữ liệu sau cùng được di chuyển sẽ hoàn tất và nhất quán tại địa chỉ đích. Hoạt động MOVE_BLK được khôi phục lại sau khi thực thi OB ngắt hoàn tất. CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-44

SIMATIC S7 - 1200

 Các sự kiện ngắt đƣợc xếp hàng nhưng không đƣợc xử lý cho đến khi thực thi UMOVE_BLK hoàn tất. Sử dụng lệnh MOVE_BLK khi hoạt động di chuyển phải được hoàn tất và dữ liệu đích nhất quán, trước sự thực thi của một chương trình con OB ngắt. ENO luôn luôn đúng theo sự thực thi của lệnh MOVE. Trạng thái ENO 1

Điều kiện Không có lỗi

Kết quả Tất cả phần tử COUNT đã được sao chép thành công.

Cả phạm vi nguồn (IN) hay Các phần tử phù hợp được sao 0

phạm vi đích (OUT) vượt quá chép. Các phần tử lẻ ra không được vùng nhớ có sẵn

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

sao chép.

Trang 5-45

SIMATIC S7 - 1200

Các lệnh lấp đầy Ta sử dụng các lệnh FILL_BLK và UFILL_BLK như sau:  FILL_BLK: lệnh lấp đầy có thể ngắt sẽ lấp đầy một phạm vi địa chỉ bằng các bản sao của một phần tử dữ liệu xác định.  UFILL_BLK: lệnh lấp đầy không ngắt được sẽ lấp đầy một phạm vi địa chỉ bằng các bản sao của một phần tử dữ liệu xác định. Thông số IN

COUNT

OUT

Kiểu dữ liệu SInt, Int, DInt, USInt, UDInt, Real, Byte, Word, DWord USInt, UInt SInt, Int, DInt, USInt, UDInt, Real, Byte, Word, DWord

Miêu tả Địa chỉ nguồn dữ liệu Số lượng các phần tử dữ liệu để sao chép Địa chỉ đích dữ liệu

Lƣu ý: Các quy tắc đối với việc thực thi lắp đầy  Để lấp đầy với kiểu dữ liệu Bool, sử dụng SET_BF, RESET, R, S, hay cuộn dây ngõ ra (LAD).  Để lấp đầy với kiểu dữ liệu cơ bản đơn lẻ, sử dụng MOVE.  Để lấp đầy với một mảng kiểu dữ liệu cơ bản, sử dụng FILL_BLK hay UFILL_BLK.  Để lấp đầy một ký tự đơn lẻ trong một chuỗi, sử dụng MOVE.  Các lệnh FILL_BLK và UFILL_BLK không thể được sử dụng để lấp đầy các mảng trong các vùng nhớ I, Q, hay M.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-46

SIMATIC S7 - 1200

Các lệnh FIll_BLK và UFILL_BLK sao chép phần tử dữ liệu nguồn IN đến đích tại đó địa chỉ ban đầu được xác định bởi thông số OUT. Tiến trình sao chép lặp lại và một khối các địa chỉ kế cận nhau được lấp đầy cho đến khi số lượng các bản sao bằng với thông số COUNT. Các lệnh FILL_BLK và UFILL_BLK khác nhau ở cách thức mà các ngắt được thực hiện:  Các sự kiện ngắt đƣợc xếp hàng và đƣợc xử lý trong suốt việc thực thi FILL_BLK. Sử dụng lệnh FILL_BLK khi dữ liệu tại địa chỉ đích di chuyển thì không được sử dụng bên trong một chương trình con OB ngắt, hoặc nếu nó được sử dụng thì dữ liệu đích không buộc phải nhất quán.  Các sự kiện ngắt đƣợc xếp hàng nhưng không đƣợc xử lý cho đến khi thực thi UFILL_BLK hoàn tất. Sử dụng lệnh UFILL_BLK khi hoạt động di chuyển phải được hoàn tất và dữ liệu đích nhất quán, trước sự thực thi của một chương trình con OB ngắt.

Trạng thái ENO 1

0

Điều kiện Không có lỗi. Phạm vi đích (OUT) vượt quá vùng nhớ có sẵn.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Kết quả Phần tử IN đã được sao chép thành công đến tất cả các đích đến COUNT. Các phần tử phù hợp được sao chép. Các phần tử lẻ ra không được sao chép.

Trang 5-47

SIMATIC S7 - 1200

5.1.6.1.

Lệnh tráo đổi. Ta sử dụng lệnh SWAP để đảo ngược trật tự byte cho các phần tử dữ liệu 2 byte và 4 byte. Không có sự thay đổi nào được thực hiện đến trật tự bit trong phạm vi mỗi byte.

ENO luôn luôn nhận giá trị “TRUE” theo sự thực thi của lệnh SWAP. Ta nhấp vào phía dưới tên hộp và chọn một kiểu dữ liệu từ trình đơn thả xuống. Thông số

Kiểu dữ liệu

IN

Word, DWord

Các byte dữ liệu được sắp xếp IN

OUT

Word, DWord

Đảo ngược các byte dữ liệu được sắp xếp OUT

Địa chỉ

Miêu tả

Ví dụ: thông số IN = MB0

Ví dụ: thông số OUT = MB4

trƣớc sự thực thi SWAP

sau sự thực thi SWAP

MB0

MB1

MB4

MB5

12

34

34

12

Word

MSB

LSB

MSB

LSB

Địa chỉ

MB0

MB

MB2

MB3

MB4

MB5

MB6

MB7

12

34

56

78

78

56

34

12

LSB

MSB

W#16#1234

DW#16#12345678 DWord

MSB

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

LSB

Trang 5-48

SIMATIC S7 - 1200

5.1.7. Chuyển đổi. Lệnh chuyển đổi Ta sử dụng lệnh CONVERT để chuyển đổi một phần tử dữ liệu từ một kiểu dữ liệu này sang một kiểu dữ liệu khác. Ta nhấp vào phía dưới tên hộp và chọn các kiểu dữ liệu IN và OUT từ danh sách thả xuống. Sau khi ta lựa chọn kiểu dữ liệu để chuyển đổi, một danh sách những sự chuyển đổi có khả năng sẽ được cho thấy trong danh sách thả xuống chuyển đổi đến. Những sự chuyển đổi từ/đến BCD16 bị hạn chế đối với kiểu dữ liệu Int. Những sự chuyển đổi từ/đến BCD32 bị hạn chế đối với kiểu dữ liệu DInt. Ta nhấp vào phía dưới tên hộp và chọn các kiểu dữ liệu từ trình đơn thả xuống. Thông số IN

OUT

Kiểu dữ liệu

Miêu tả

SInt, Int, DInt, USInt, UInt, UDInt, Byte, Word, DWord, Real, LReal, BCD16, BCD32

Giá trị IN

SInt, Int, DInt, USInt, UInt, UDInt, Byte, Giá trị IN được chuyển đổi Word, DWord, Real, LReal, BCD16, BCD32

Trạng thái

Miêu tả

ENO

sang một kiểu dữ liệu mới

Kết quả OUT

1

Không có lỗi

Kết quả hợp lệ

0

IN là +/– INF hay +/– NaN

+/– INF hay +/– NaN

0

Kết quả vượt quá phạm vi hợp lệ OUT được đặt về các byte có trọng của kiểu dữ liệu OUT

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

số thấp nhất của IN

Trang 5-49

SIMATIC S7 - 1200

Các lệnh làm tròn và cắt bỏ Lệnh ROUND chuyển đổi một số thực thành một số nguyên. Phần phân số của số thực được làm tròn đến giá trị số nguyên gần nhất (IEEE – làm tròn đến gần nhất). Nếu số thực nằm chính xác ở giữa vùng giữa 2 số nguyên thì số thực này được làm tròn đến số nguyên chẵn. Ví dụ: ROUND(10,5) = 10 và ROUND(11,5) = 12.

Lệnh TRUNC chuyển đổi một số thực thành một số nguyên. Phần phân số của số thực được cắt bỏ thành 0 (IEEE – làm tròn thành 0). Thông số IN

Kiểu dữ liệu

Ngõ vào dấu phẩy động

Real, LReal SInt, Int, DInt, USInt, UInt, UDInt, Real,

OUT

LReal

Trạng thái ENO

Miêu tả

Miêu tả

Ngõ ra được làm tròn hay cắt bỏ

Kết quả OUT

1

Không có lỗi

Kết quả hợp lệ

0

IN là +/– INF hay +/– NaN

+/– INF hay +/– NaN

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-50

SIMATIC S7 - 1200

Các lệnh CEIL và FLOOR Lệnh CEIL chuyển đổi một số thực thành số nguyên nhỏ nhất lớn hơn hay bằng số thực đó (IEEE – làm tròn đến dương vô cùng). Lệnh FLOOR chuyển đổi một số thực thành số nguyên lớn nhất nhỏ hơn hay bằng số thực đó (IEEE – làm tròn đến âm vô cùng).

Thông số IN

Kiểu dữ liệu

Miêu tả Ngõ vào dấu phẩy động

Real, LReal

SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal Ngõ ra được chuyển đổi

OUT

Trạng thái ENO

Miêu tả

Kết quả OUT

1

Không có lỗi

Kết quả hợp lệ

0

IN là +/– INF hay +/– NaN

+/– INF hay +/– NaN

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-51

SIMATIC S7 - 1200

5.1.7.1.

Các lệnh định tỷ lệ và chuẩn hóa.

Các lệnh định tỷ lệ và chuẩn hóa Lệnh SCALE_X định tỷ lệ của thông số số thực được chuẩn hóa VALUE, với (0,0 <= VALUE <= 1,0) thành kiểu dữ liệu và phạm vi giá trị được xác định bởi các thông số MIN và MAX: OUT = VALUE (MAX – MIN) + MIN Đối với lệnh SCALE_X, các thông số MIN, MAX và OUT phải là kiểu dữ liệu giống nhau. Lệnh NORM_X làm chuẩn hóa thông số VALUE bên trong phạm vi giá trị được xác định bởi các thông số MIN và MAX: OUT = (VALUE – MIN) / (MAX – MIN) với (0,0 <= OUT <= 1,0) Đối với lệnh NORM_X, các thông số MIN, VALUE và MAX phải là kiểu dữ liệu giống nhau. Ta nhấp vào phía dưới tên hộp và chọn một kiểu dữ liệu từ trình đơn thả xuống. Thông số MIN

Kiểu dữ liệu SInt, Int, DInt, USInt, UInt, UDInt, Real SCALE_X: Real

VALUE

NORM_X: SInt, Int, DInt, USInt, UInt, UDInt, Real

MAX

SInt, Int, DInt, USInt, UInt, UDInt, Real SCALE_X: Real

OUT

NORM_X: SInt, Int, DInt, USInt, UInt, UDInt, Real

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Miêu tả Giá trị cực tiểu ngõ vào của phạm vi Giá trị ngõ vào để định tỷ lệ hay chuẩn hóa Giá trị cực đại ngõ vào của phạm vi Giá trị ngõ ra đã được định tỷ lệ hay được chuẩn hóa

Trang 5-52

SIMATIC S7 - 1200

Lƣu ý Thông số VALUE trong lệnh SCALE_X nên đƣợc hạn chế trong khoảng (0,0 <= VALUE <= 1,0) Nếu thông số VALUE nhỏ hơn 0,0 hay lớn hơn 1,0 thì:  Hoạt động chia tỷ lệ tuyến tính có thể sinh ra các giá trị OUT nhỏ hơn giá trị thông số MIN, hay nằm trên giá trị thông số MAX đối với các giá trị OUT nằm vừa trong phạm vi kiểu dữ liệu OUT. Sự thực thi SCALE_X đặt ENO = TRUE trong các trường hợp này.  Có khả năng tạo ra các số được định tỷ lệ mà không nằm trong phạm vi của kiểu dữ liệu OUT. Trong những trường hợp này, giá trị thông số OUT được đặt đến một giá trị trung gian, bằng với phần có trọng số nhỏ nhất của số thực được tỷ lệ ưu tiên cho sự chuyển đổi cuối cùng sang kiểu dữ liệu OUT. Sự thực thi SCALE_X đặt ENO = FALSE trong trường hợp này. Thông số VALUE trong NORM_X nên đƣợc hạn chế trong khoảng (MIN <= VALUE <= MAX) Nếu thông số VALUE nhỏ hơn MIN hay lớn hơn MAX, sự hoạt động chia tỷ lệ tuyến tính có thể tạo ra các giá trị OUT được chuẩn hóa nhỏ hơn 0 hay lớn hơn 1. Trong trường hợp này sự thực thi NORM_X đặt ENO = TRUE.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-53

SIMATIC S7 - 1200 Trạng thái ENO 1

0

Điều kiện Không có lỗi

Kết quả vượt quá phạm vi hợp lệ đối với kiểu dữ liệu OUT

Kết quả OUT Kết quả hợp lệ Kết quả trung gian: phần có trọng số nhỏ nhất của một số thực ưu tiên cho sự chuyển đổi sau cùng sang kiểu dữ liệu OUT. SCALE_X: phần có trọng số nhỏ nhất của số thực VALUE lấp đầy kích thước OUT.

0

Thông số MAX <= MIN

NORM_X: VALUE trong kiểu dữ liệu VALUE được kéo dài để lấp đầy một kích thước Double Word.

0

Thông số VALUE là +/– INF hay +/– NaN

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

VALUE được ghi ra OUT

Trang 5-54

SIMATIC S7 - 1200

5.1.8. Điều khiển chương trình. Các lệnh nhảy và ghi nhãn Ta sử dụng các lệnh điều khiển chương trình cho các điều khiển điều kiện trong chuỗi thực thi: Lệnh JMP: nếu có dòng tín hiệu đến một cuộn dây JMP (LAD), hay nếu tín hiệu vào hộp JMP (FBD) là đúng thì sau đó sự thực thi chương trình tiếp tục với lệnh đầu tiên theo nhãn được chỉ định. Lệnh JMPN: nếu không có dòng tín hiệu đi đến một cuộn dây JMP (LAD), hay nếu tín hiệu vào hộp JMP (FBD) là sai thì sau đó sự thực thi chương trình tiếp tục với lệnh đầu tiên theo nhãn được chỉ định. Lệnh Label: nhãn nơi đến cho lệnh nhảy JMP hay JMPN. Thông số

Kiểu dữ liệu

Label_name

Bộ định danh nhãn

Miêu tả Bộ định danh cho các lệnh nhảy và nhãn lập trình nơi đến của lệnh nhảy tương ứng

Ta tạo ra các tên nhãn bằng cách gõ trực tiếp trong lệnh LABEL. Các tên nhãn sẵn có cho trường tên nhãn JMP và JMPN có thể được chọn bằng cách sử dụng biểu tượng trợ giúp thông số. Ta còn có thể gõ một tên nhãn trực tiếp bên trong lệnh JMP hay JMPN.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-55

SIMATIC S7 - 1200

Lệnh điều khiển thực thi trả về giá trị (RET)

Ta sử dụng lệnh RET để kết thúc sự thực thi của khối hiện thời. Thông số

Kiểu dữ liệu

Return_Value

Bool

Miêu tả Thông số “Return_Value” của lệnh RET được gán cho ngõ ra ENO của khối gọi hộp trong khối đang gọi

Lệnh tùy chọn RET được sử dụng để kết thúc sự thực thi của khối hiện thời. Nếu và chỉ nếu có dòng tín hiệu đi đến cuộn dây RET (LAD) hay nếu tín hiệu vào của hộp RET là đúng (FBD) thì sau đó sự thực thi chương trình của khối hiện thời sẽ kết thúc tại điểm đó và các lệnh nằm sau lệnh RET sẽ không được thực thi. Nếu khối hiện thời là một OB, thông số “Return_Value” được bỏ qua. Nếu khối hiện thời là một FC hay FB, giá trị thông số “Return_Value” được đi qua trở về đến đoạn chương trình đang gọi như giá trị ENO của hộp được gọi. Ta không được yêu cầu sử dụng lệnh RET là câu lệnh cuối cùng trong một khối vì điều này được thực hiện một cách tự động cho ta. Ta có thể có nhiều lệnh RET bên trong một khối đơn lẻ. Các bước mẫu để sử dụng lệnh RET bên trong một khối mã FC: 1. Tạo một đề án mới và thêm một FC. 2. Chỉnh sửa FC: -

Thêm vào các lệnh từ cây lệnh.

-

Thêm vào lệnh RET, bao gồm một trong các đối tượng sau đây cho thông số “Return_Value”: TRUE, FALSE hay một vị trí bộ nhớ mà định rõ giá trị trả lại được yêu cầu.

-

Thêm vào các lệnh khác.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-56

SIMATIC S7 - 1200

3. Gọi FC từ MAIN[OB1] Ngõ vào EN trên hộp FC trong khối mã MAIN phải là đúng để bắt đầu sự thực thi của FC. Giá trị được xác định bởi lệnh RET trong FC sẽ hiện diện trên ngõ ra ENO của hộp FC trong khối mã MAIN, theo sau sự thực thi của FC mà dòng tín hiệu đến lệnh RET của nó là đúng.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-57

SIMATIC S7 - 1200

5.1.9. Các phép toán logic. Các lệnh AND, OR và XOR

Lệnh AND: cho các kiểu dữ liệu Byte, Word và DWord Lệnh OR: cho các kiểu dữ liệu Byte, Word và DWord Lệnh XOR: cho các kiểu dữ liệu Byte, Word và DWord. Ta nhấp vào phía dưới tên hộp và lựa chọn một kiểu dữ liệu từ trình đơn thả xuống. Thông số

Kiểu dữ liệu

Miêu tả

IN1, IN2

Byte, Word, DWord

Các ngõ vào logic

OUT

Byte, Word, DWord

Ngõ ra logic

Việc lựa chọn kiểu dữ liệu đặt các thông số IN1, IN2 và OUT về kiểu dữ liệu giống nhau. Các giá trị bit tương ứng của IN1 và IN2 được kết nối để tạo ra một kết quả logic nhị phân tại thông số OUT. ENO luôn luôn là TRUE theo sự thực thi của các lệnh này.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-58

SIMATIC S7 - 1200

Lệnh lấy bù

Ta sử dụng lệnh INV để nhận được phần bù 1 nhị phân của thông số IN. Phần bù 1 được thực hiện bằng cách đảo ngược giá trị bit của thông số IN (thay đổi mỗi giá trị 0 thành 1 và mỗi giá trị 1 thành 0). ENO luôn luôn là TRUE theo sự thực thi của lệnh này. Ta nhấp vào phía dưới tên hộp và lựa chọn một kiểu dữ liệu từ trình đơn thả xuống. Thông số IN

OUT

Kiểu dữ liệu SInt, Int, DInt, USInt, UInt, UDInt, Byte, Word, DWord SInt, Int, DInt, USInt, UInt, UDInt, Byte, Word, DWord

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Miêu tả Phần tử dữ liệu để lấy bù Ngõ ra được lấy bù

Trang 5-59

SIMATIC S7 - 1200

Các lệnh mã hóa và giải mã Lệnh ENCO mã hóa một mẫu bit thành một số nhị phân. Lệnh DECO giải mã một số nhị phần thành một mẫu bit. Ta nhấp vào phía dưới tên hộp và lựa chọn một kiểu dữ liệu từ trình đơn thả xuống. Thông số IN

OUT

Kiểu dữ liệu

Miêu tả

ENCO: Byte, Word, DWord

ENCO: mẫu bit để mã hóa

DECO: UInt

DECO: giá trị để giải mã

ENCO: Int

ENCO: giá trị được mã hóa

DECO: Byte, Word, DWord

DECO: mẫu bit được giải mã

Lệnh ENCO chuyển đổi thông số IN thành một số nhị phân tương ứng với vị trí bit của bit đặt có trọng số nhỏ nhất trong thông số IN và trả kết quả đến thông số OUT. Nếu thông số IN là 0000 0001 hay 0000 0000 thì sau đó giá trị 0 được trả về đến OUT. Nếu thông số IN là 0000 0000 thì ENO được đặt là FALSE. Lệnh DECO giải mã một số nhị phân từ thông số IN, bằng cách đặt vị trí bit tương ứng trong thông số OUT lên giá trị 1 (tất cả các bit khác được đặt về 0). ENO luôn luôn là TRUE theo sự thực thi của lệnh DECO. Sự lựa chọn kiểu dữ liệu cho thông số OUT của DECO gồm Byte, Word hay DWord làm giới hạn phạm vi hữu dụng của thông số IN. Nếu giá trị của thông số IN vượt quá phạm vi hữu dụng này, một phép toán modulo được thực hiện để tách ra các bit có trọng số nhỏ nhất được liệt kê dưới đây: Phạm vi thông số IN của lệnh DECO:  IN 3 bit (các giá trị từ 0 đến 7) được sử dụng để đặt vị trí 1 bit trong một OUT kiểu Byte.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-60

SIMATIC S7 - 1200

 IN 4 bit (các giá trị từ 0 đến 15) được sử dụng để đặt vị trí 1 bit trong một OUT kiểu Word.  IN 5 bit (các giá trị từ 0 đến 31) được sử dụng để đặt vị trí 1 bit trong một OUT kiểu DWord. Giá trị IN trong DECO

Giá trị OUT trong DECO (giải mã vị trí bit đơn) OUT kiểu Byte (8 bit)

Min. IN

0

0000 0001

Max. IN

7

1000 0000

OUT kiểu Word (16 bit) Min. IN

0

0000 0000 0000 0001

Max. IN

15

1000 0000 0000 0000

OUT kiểu DWord (32 bit) Min. IN

0

0000 0000 0000 0000 0000 0000 0000 0001

Max. IN

31

1000 0000 0000 0000 0000 0000 0000 0000

Trạng thái ENO

Điều kiện

Kết quả (OUT)

1

Không có lỗi

Số bit hợp lệ

0

IN bằng 0

OUT được đặt về 0

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-61

SIMATIC S7 - 1200

Các lệnh lựa chọn và chọn kênh Lệnh SEL gán một trong hai giá trị ngõ vào đến thông số OUT, phụ thuộc vào giá trị thông số G. Lệnh MUX gán một trong nhiều giá trị các ngõ vào đến thông số OUT, phụ thuộc vào giá trị thông số K. Nếu giá trị thông số K vượt quá phạm vi hợp lệ, giá trị thông số ELSE sẽ được gán đến thông số OUT. Ta nhấp vào phía dưới tên hộp và lựa chọn một kiểu dữ liệu từ trình đơn thả xuống.

SEL

Kiểu dữ liệu

Miêu tả Chuyển đổi bộ chọn lọc:

G

Bool

FALSE cho IN0 TRUE cho IN1

IN0, IN1

OUT

MUX

SInt, Int, DInt, USInt, UInt, UDInt, Real, Byte, Word, DWord, Time, Char SInt, Int, DInt, USInt, UInt, UDInt, Real, Byte, Word, DWord, Time, Char

Các ngõ vào

Ngõ ra

Kiểu dữ liệu

Miêu tả Giá trị hàm chọn:

K

UInt



0 đối với IN0



1 đối với IN1 …

IN0, IN1, … ELSE

SInt, Int, DInt, USInt, UInt, UDInt, Real, Byte, Word, DWord, Time, Char SInt, Int, DInt, USInt, UInt, UDInt, Real, Byte, Word, DWord, Time, Char

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Các ngõ vào Giá trị thay thế ngõ vào (tùy chọn)

Trang 5-62

SIMATIC S7 - 1200

OUT

SInt, Int, DInt, USInt, UInt, UDInt, Real, Byte, Word, DWord, Time, Char

Ngõ ra

Các biến số ngõ vào và biến số ngõ ra phải có kiểu dữ liệu giống nhau.  Lệnh SEL luôn luôn lựa chọn giữa 2 giá trị IN.  Lệnh MUX có hai thông số IN khi được đặt lần đầu tiên trong trình soạn thảo chương trình, nhưng nó có thể được mở rộng để thêm vào nhiều thông số IN. Sử dụng các phương pháp sau đây để thêm vào hay loại ra các thông số ngõ vào cho lệnh MUX:  Để thêm vào một ngõ vào, nhấp chuột phải lên một nhánh cụt ngõ vào đối với một trong các thông số IN đang tồn tại và chọn lệnh “Insert input”.  Để loại ra một ngõ vào, nhấp chuột phải lên một nhánh cụt ngõ vào đối với một trong các thông số IN đang tồn tại (khi có nhiều hơn hai ngõ vào so với nguyên bản) và chọn lệnh “Delete”. Các mã điều kiện: ENO luôn luôn là TRUE theo sự thực thi của lệnh SEL. Trạng thái ENO (MUX) 1

Điều kiện MUX

Không có lỗi. K lớn hơn hoặc bằng

0

số lượng của các thông số IN.

Kết quả OUT (MUX) Giá trị IN được chọn được gán đến OUT. Không có ELSE được cho: OUT không bị thay đổi Có ELSE được cho: giá trị ELSE được gán đến OUT

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-63

SIMATIC S7 - 1200

5.1.10. Dịch chuyển và xoay. Lệnh dịch chuyển Ta sử dụng các lệnh dịch chuyển để dịch chuyển mẫu bit của thông số IN. Kết quả được gán đến thông số OUT. Thông số N xác định số lượng của các vị trí bit được dịch chuyển.  SHR: dịch chuyển mẫu bit sang phải  SHL: dịch chuyển mẫu bit sang trái Ta nhấp vào phía dưới tên hộp và lựa chọn một kiểu dữ liệu từ danh sách thả xuống. Thông số

Kiểu dữ liệu

Miêu tả

IN

Byte, Word, DWord

Mẫu bit để dịch chuyển

N

UInt

Số vị trí bit để dịch chuyển

Byte, Word, DWord

Mẫu bit sau sự phép dịch chuyển

OUT

 Với N = 0, không có dịch chuyển xuất hiện và giá trị IN được gán đến OUT.  Các số 0 được dịch chuyển vào trong các vị trí bit được xóa rỗng bởi phép dịch chuyển.  Nếu số lượng các vị trí để dịch chuyển (N) vượt quá số lượng các bit trong giá trị gốc (8 đối với Byte, 16 đối với Word và 32 đối với DWord), tất cả các giá trị bit ban đầu sau đó sẽ được dịch chuyển ra ngoài và được thay thế bằng những số 0 (tức là số 0 được gán đến OUT).  ENO luôn luôn là TRUE đối với các phép dịch chuyển.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-64

SIMATIC S7 - 1200 Ví dụ SHL đối với kích cỡ dữ liệu Word: dịch chuyển các số 0 từ bên trái IN

Giá trị OUT trước lần dịch

1110 0010 1010 1101

chuyển đầu tiên:

1110 0010 1010 1101

Sau dịch chuyển trái đầu tiên:

1100 0101 0101 1010

Sau dịch chuyển trái thứ hai:

1000 1010 1011 0100

Sau dịch chuyển trái thứ ba:

0001 0101 0110 1000

Lệnh xoay Ta sử dụng các lệnh xoay để xoay mẫu bit của thông số IN. Kết quả được gán đến thông số OUT. Thông số N xác định số lượng của các vị trí bit được xoay.

 ROR: xoay mẫu bit sang phải  ROL: xoay mẫu bit sang trái Ta nhấp vào phía dưới tên hộp và lựa chọn một kiểu dữ liệu từ trình đơn thả xuống. Thông số

Kiểu dữ liệu

Miêu tả

IN

Byte, Word, DWord

Mẫu bit để xoay

N

UInt

Số lượng các vị trí bit để xoay

Byte, Word, DWord

Mẫu bit sau phép xoay

OUT

 Với N = 0, không có phép xoay này xuất hiện và giá trị IN được gán đến OUT.  Dữ liệu bit được xoay ra ngoài một bên của giá trị gốc sẽ được xoay vào trong phía bên kia của giá trị gốc đó, vì vậy không có các giá trị bit nào bị mất đi.  Nếu số lượng của các vị trí bit để xoay (N) vượt quá số lượng của các bit trong giá trị gốc (8 đối với Byte, 16 đối với Word và 32 đối với DWord), phép xoay sau đó vẫn được thực hiện. CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-65

SIMATIC S7 - 1200

 ENO luôn luôn là TRUE theo sự thực thi của các lệnh xoay. Ví dụ ROR đối với kích cỡ dữ liệu Word: xoay các bit nằm ngoài bên phải vào bên trái IN

0100 0000 0000 0001

Giá trị OUT trước lần xoay đầu tiên:

0100 0000 0000 0001

Sau lần xoay đầu tiên:

1010 0000 0000 0000

Sau lần xoay thứ hai:

0101 0000 0000 0000

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-66

SIMATIC S7 - 1200

5.2.

Tập lệnh mở rộng. 5.2.1. Các thông số lỗi thông dụng đối với tập lệnh mở rộng. Phần miêu tả lệnh mở rộng diễn tả các lỗi trong thời gian thi hành mà có thể

xuất hiện trong mỗi lệnh lập trình. Bổ sung cho các lỗi này, các lỗi phổ biến được liệt kê dưới đây còn có thể xảy ra. Khi một khối mã được thực thi và một trong số các lỗi thông dụng xuất hiện, CPU sẽ chuyển sang chế độ STOP nếu ta không sử dụng các lệnh GetError hoặc GetErrorID nằm bên trong khối mã đó để tạo ra một phản ứng được lập trình đối với lỗi. Giá trị mã điều kiện (W#16#...)

Miêu tả

8022

Vùng quá nhỏ cho tín hiệu vào

8023

Vùng quá nhỏ cho tín hiệu ra

8024

Vùng tín hiệu vào không hợp lệ

8025

Vùng tín hiệu ra không hợp lệ

8028

Gán bit ngõ vào không hợp lệ

8029

Gán bit ngõ ra không hợp lệ

8030

Vùng ngõ ra là một DB chỉ đọc (read – only)

803A

DB không tồn tại

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-67

SIMATIC S7 - 1200

5.2.2. Các lệnh đếm thời gian và lịch. Các lệnh ngày và giờ Ta sử dụng các lệnh ngày và giờ để lập trình những tính toán về lịch và thời gian.  T_CONV chuyển đổi kiểu dữ liệu của một giá trị thời gian: (Time sang DInt) hay (DInt sang Time)  T_ADD cộng các giá trị Time và DTL: (Time + Time = Time) hay (DTL + DTL = DTL)  T_SUB trừ các giá trị Time và DTL: (Time – Time = Time) hay (DTL – Time = DTL)  T_DIFF đưa ra sự khác nhau giữa hai giá trị DTL như một giá trị Time: DTL – DTL = Time Kiểu dữ liệu

Kích thƣớc (bit)

Các phạm vi hợp lệ đến

T#–24d_20h_31m_23s_648ms Time

(Được lưu trữ) 32

T#24d_20h_31m_23s_647ms –2.147.483.648

ms

đến

+

2.147.483.647 ms Cấu trúc dữ liệu DTL Năm: UInt

16

1970 đến 2554

Tháng: USInt

8

1 đến 12

Ngày: USInt

8

1 đến 31

Ngày trong tuần: USInt

8

1 = Chủ nhật đến 7 = Thứ bảy

Giờ: USInt

8

0 đến 23

Phút: USInt

8

0 đến 59

Giây: USInt

8

0 đến 59

Nano giây

32

0 đến 999.999.999

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-68

SIMATIC S7 - 1200

Lệnh T_CONV (Time Convert) chuyển đổi một kiểu dữ liệu Time sang một kiểu dữ liệu DInt, hay chuyển đổi ngược từ kiểu dữ liệu DInt sang kiểu dữ liệu Time.

Thông số

Kiểu thông số

Kiểu dữ liệu

Miêu tả

IN

IN

DInt, Time

Giá trị Time hay DInt ngõ vào

OUT

OUT

DInt, Time

Giá trị Time hay DInt được chuyển đổi

Ta lựa chọn các kiểu dữ liệu IN và OUT từ các danh sách thả xuống có sẵn phía dưới tên lệnh. T_ADD (Time Add) cộng giá trị ngõ vào IN1 (kiểu DTL hay Time) với giá trị ngõ vào IN2 kiểu Time. Thông số OUT mang lại kết quả là giá trị DTL hay Time. Có thể thực hiện hai phép cộng kiểu dữ liệu sau:  Time + Time = Time  DTL + Time = DTL Thông số

Kiểu thông số

Kiểu dữ liệu

Miêu tả

IN1

IN

DTL, Time

Giá trị Time hay DTL

IN2

IN

Time

Giá trị Time để cộng vào

OUT

OUT

DTL, Time

Tổng Time hay DTL

Lựa chọn kiểu dữ liệu IN1 từ danh sách thả xuống có sẵn phía dưới tên lệnh. Việc lựa chọn kiểu dữ liệu IN1 còn thiết lập kiểu dữ liệu của thông số OUT.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-69

SIMATIC S7 - 1200

Lệnh T_SUB (Time Subtract) trừ một giá trị IN2 kiểu Time từ giá trị IN1 kiểu DTL hay kiểu Time. Thông số OUT mang lại giá trị hiệu như một kiểu dữ liệu DTL hay Time.

Có thể thực hiện hai phép trừ kiểu dữ liệu sau:  Time – Time = Time  DTL – Time = DTL Thông số

Kiểu thông số

Kiểu dữ liệu

Miêu tả

IN1

IN

DTL, Time

Giá trị DTL hay Time

IN2

IN

Time

Giá trị Time để trừ

OUT

OUT

DTL, Time

Hiệu DTL hay Time

Lựa chọn kiểu dữ liệu IN1 từ danh sách thả xuống có sẵn phía dưới tên lệnh. Việc lựa chọn kiểu dữ liệu IN1 còn thiết lập kiểu dữ liệu của thông số OUT. Lệnh T_DIFF (Time Difference) trừ một giá trị DTL của IN2 từ giá trị DTL của IN1. Thông số OUT mang lại giá trị hiệu như một kiểu dữ liệu Time.  DTL – DTL = Time Thông số

Kiểu thông số

Kiểu dữ liệu

Miêu tả

IN1

IN

DTL

Giá trị DTL

IN2

IN

DTL

Giá trị DTL để trừ

OUT

OUT

Time

Hiệu Time

Các mã điều kiện: ENO = 1 nghĩa là không có lỗi xuất hiện. Các lỗi làm cho ENO = 0 và thông số OUT = 0: CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-70

SIMATIC S7 - 1200

 Giá trị DTL không hợp lệ  Giá trị Time không hợp lệ. Các lệnh đếm thời gian Ta sử dụng các lệnh đếm thời gian để thiết lập và đọc đồng hồ hệ thống của PLC. Kiểu dữ liệu DTL được sử dụng để mang lại các giá trị ngày và giờ. Cấu trúc DTL

Kích thƣớc

Phạm vi hợp lệ

Năm: UInt

16 bit

1970 đến 2554

Tháng: USInt

8 bit

1 đến 12

Ngày: USInt

8 bit

1 đến 31

Ngày trong tuần: USInt

8 bit

1 = Chủ nhật đến 7 = Thứ bảy

Giờ: USInt

8 bit

0 đến 23

Phút: USInt

8 bit

0 đến 59

Giây: USInt

8 bit

0 đến 59

Nano giây: UDInt

32 bit

0 đến 999.999.999

Lệnh WR_SYS_T (Write System Time) thiết lập đồng hồ thời gian trong ngày của PLC với một giá trị DTL tại thông số IN. Giá trị thời gian này không bao gồm múi giờ địa phương hay độ dịch chỉnh thời gian tiết kiệm ánh sáng ngày. Thông số

Kiểu thông số

Kiểu dữ liệu

IN

IN

DTL

RET_VAL

OUT

Int

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Miêu tả Thời gian trong ngày để thiết lập trong đồng hồ hệ thống PLC Mã điều kiện thực thi

Trang 5-71

SIMATIC S7 - 1200

Lệnh RD_SYS_T (Read System Time) đọc thời gian hệ thống hiện thời từ PLC. Giá trị này không bao gồm múi giờ địa phương hay độ dịch chỉnh thời gian tiết kiệm ánh sáng ngày.

Thông số

Kiểu thông số

Kiểu dữ liệu

RET_VAL

OUT

Int

OUT

OUT

DTL

Miêu tả Mã điều kiện thực thi Thời gian hệ thống PLC hiện thời

Lệnh RD_LOC_T (Read Local Time) đưa ra thời gian địa phương hiện thời của PLC như một kiểu dữ liệu DTL.

Thông số

Kiểu thông số

Kiểu dữ liệu

Miêu tả

RET_VAL

OUT

Int

Mã điều kiện thực thi

OUT

OUT

DTL

Thời gian địa phương

 Thời gian địa phương được tính toán bằng cách sử dụng múi giờ và độ dịch chỉnh thời gian tiết kiệm ánh sáng ngày mà ta thiết lập trong phần cấu hình thiết bị CPU Clock.  Việc cấu hình múi giờ là một sự bù đắp đối với thời gian hệ thống UTC (Coordinated Universal Time).  Việc cấu hình thời gian tiết kiệm ánh sáng ngày xác định tháng, tuần, ngày và giờ khi thời gian tiết kiệm ánh sáng ngày bắt đầu.  Việc cấu hình giờ tiêu chuẩn còn xác định tháng, tuần, ngày và giờ khi giờ tiêu chuẩn bắt đầu.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-72

SIMATIC S7 - 1200

 Độ dịch chỉnh múi giờ luôn luôn được áp dụng đến giá trị thời gian hệ thống. Độ dịch chỉnh thời gian tiết kiệm ánh sáng ngày chỉ được áp dụng khi thời gian tiết kiệm ánh sáng ngày có hiệu lực. Các mã điều kiện: ENO = 1 có nghĩa không có lỗi xuất hiện. ENO = 0 nghĩa là một lỗi thực thi đã xuất hiện, và một mã điều kiện được cung cấp tại ngõ ra RET_VAL. RET_VAL (W#16#....)

Miêu tả

0000

Không có lỗi

8080

Giờ địa phương không có sẵn

8081

Giá trị năm không hợp lệ

8082

Giá trị tháng không hợp lệ

8083

Giá trị ngày không hợp lệ

8084

Giá trị giờ không hợp lệ

8085

Giá trị phút không hợp lệ

8086

Giá trị giây không hợp lệ

8087

Giá trị nano giây không hợp lệ

80B0

Đồng hồ thời gian thực bị hỏng

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-73

SIMATIC S7 - 1200

5.2.3. Các lệnh chuỗi và ký tự. 5.2.3.1.

Tổng quan chuỗi dữ liệu.

Kiểu dữ liệu String Dữ liệu String được lưu trữ như một phần đầu có 2 byte được theo sau bởi tối đa 254 byte ký tự của các mã ký tự ASCII. Một phần đầu String chứa 2 độ dài. Byte đầu tiên là độ dài tối đa được cho trong dấu ngoặc vuông khi khi ta khởi chạy một chuỗi, hay mặc định bằng 254. Byte thứ hai là độ dài hiện tại tức là số lượng của các ký tự hợp lệ trong chuỗi. Độ dài hiện tại phải nhỏ hơn hoặc bằng độ dài tối đa. Số lượng các byte được lưu trữ được lấp đầy bởi định dạng String là lớn hơn 2 byte so với độ dài tối đa. Khởi chạy dữ liệu String Dữ liệu ngõ vào và ngõ ra String phải được khởi chạy như các chuỗi hợp lệ trong bộ nhớ, trước thực thi của bất kỳ các lệnh chuỗi nào. Dữ liệu String hợp lệ Chuỗi hợp lệ có một độ dài tối đa phải lớn hơn 0 nhưng nhỏ hơn 255. Độ dài hiện tại phải nhỏ hơn hay bằng độ dài tối đa. Các chuỗi không thể được gán giá trị đến các vùng nhớ I hay Q. 5.2.3.2.

Các lệnh chuyển đổi chuỗi.

Các chuyển đổi chuỗi thành giá trị và giá trị thành chuỗi Ta có thể chuyển đổi chuỗi ký tự số thành các giá trị số hay chuyển đổi các giá trị số thành chuỗi ký tự số bằng những lệnh sau:  S_CONV chuyển đổi (chuỗi số sang một giá trị số) hay (giá trị số sang một chuỗi số).  STRG_VAL chuyển đổi một chuỗi số sang một giá trị số với các tùy chọn định dạng.  VAL_STRG chuyển đổi một giá trị số sang một chuỗi số với các tùy chọn định dạng. CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-74

SIMATIC S7 - 1200

Lệnh S_CONV (String Convert) chuyển đổi một chuỗi ký tự thành giá trị tương ứng, hay một giá trị thành một chuỗi ký tự tương ứng. S_CONV không có các tùy chọn định dạng ngõ ra. Điều này làm cho lệnh S_CONV đơn giản hơn, nhưng kém linh hoạt hơn so với các lệnh STRG_VAL và VAL_STRG. Lựa chọn các kiểu dữ liệu thông số từ các danh sách thả xuống. S_CONV (chuyển đổi chuỗi thành giá trị) Thông số

Kiểu thông số

IN

IN

OUT

OUT

Kiểu dữ liệu String String, SInt, Int, DInt, USInt, UInt, UDInt, Real

Miêu tả Chuỗi ký tự ngõ vào Giá trị số ngõ ra

Việc chuyển đổi của thông số chuỗi IN bắt đầu tại ký tự đầu tiên và tiếp tục cho đến vị trí cuối cùng của chuỗi, hay đến ký tự đầu tiên được bắt gặp mà không phải là từ “0” đến “9”, “+”, “ – ” hay “.”. Giá trị kết quả được cung cấp tại vị trí được xác định trong thông số OUT. Nếu giá trị số ngõ ra không nằm vừa trong phạm vi của kiểu dữ liệu OUT, thông số OUT sau đó được đặt về 0 và ENO được đặt là FALSE. Nếu không, thông số OUT sẽ chứa một kết quả hợp lệ và ENO được đặt là TRUE. Các quy tắc định dạng chuỗi ngõ vào:  Nếu một dấu chấm thập phân được sử dụng trong chuỗi IN, ta phải dùng ký tự “.”.  Các ký tự dấu phẩy “,” được sử dụng như một phân cách hàng ngàn về bên trái của dấu chấm thập phân thì được cho phép và được bỏ qua.  Các khoảng trống cách quãng được bỏ qua.  Chỉ có sự biểu thị dấu chấm cố định là được hỗ trợ. Các ký tự “e” và “E” không được nhận ra là ký hiệu lũy thừa.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-75

SIMATIC S7 - 1200

S_CONV (chuyển đổi giá trị thành chuỗi) Thông số

Kiểu thông số

IN

IN

OUT

OUT

Kiểu dữ liệu

Miêu tả

String, SInt, Int, DInt, USInt, UInt, UDInt, Real String

Giá trị số ngõ vào Chuỗi ký tự ngõ ra

Một giá trị số nguyên, giá trị số nguyên không dấu hay giá trị dấu chấm động của IN được chuyển đổi sang chuỗi ký tự tương ứng tại OUT. Thông số OUT phải tham chiếu một chuỗi hợp lệ trước khi sự chuyển đổi được thực thi. Một chuỗi hợp lệ gồm có một độ dài chuỗi cực đại trong byte đầu tiên, độ dài chuỗi hiện thời trong byte thứ hai và các ký tự chuỗi hiện thời trong các byte kế tiếp. Chuỗi được chuyển đổi sẽ thay thế các ký tự trong chuỗi OUT bắt đầu tại ký tự đầu tiên và điều chỉnh byte độ dài hiện thời của chuỗi OUT. Byte độ dài tối đa của chuỗi OUT thì không bị thay đổi. Có bao nhiêu các ký tự được thay thế là phụ thuộc vào kiểu dữ liệu thông số IN và giá trị số. Số lượng của các ký tự được thay thế phải nằm vừa trong độ dài chuỗi tại thông số OUT. Độ dài chuỗi tối đa (byte đầu tiên) của chuỗi OUT nên lớn hơn hay bằng số lượng được mong đợi tối đa của các ký tự được chuyển đổi. Bảng sau đây thể hiện độ dài chuỗi có thể có tối đa được yêu cầu đối với mỗi kiểu dữ liệu được hỗ trợ. Kiểu dữ

Số lƣợng tối đa của các ký tự

liệu IN

đƣợc chuyển đổi trong chuỗi OUT

Độ dài chuỗi tổng bao gồm các

Ví dụ

byte độ dài cực đại và hiện thời

USInt

3

255

5

SInt

4

– 128

6

UInt

4

65535

7

Int

6

– 32768

8

UDInt

10

4294967295

12

DInt

11

– 2147483648

13

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-76

SIMATIC S7 - 1200

Các quy tắc định dạng chuỗi ngõ ra:  Các giá trị được ghi đến thông số OUT không sử dụng một dấu “+” cách quãng.  Sự biểu thị dấu chấm cố định được sử dụng (không có ký hiệu lũy thừa).  Ký tự dấu chấm “.” được sử dụng để biểu thị dấu chấm thập phân khi thông số IN là kiểu dữ liệu Real. Lệnh STRG_VAL Lệnh STRG_VAL (String to Value) chuyển đổi một chuỗi ký tự số thành một số nguyên tương ứng hay một biểu thị dấu chấm động.

Việc chuyển đổi bắt đầu trong chuỗi IN tại ký tự dịch chỉnh P và tiếp tục cho đến vị trí cuối của chuỗi, hay đến ký tự đầu tiên được bắt gặp mà không phải là “+”, “– ”, “.”, “,”, “e”, “E” hay từ “0” đến “9”. Kết quả được đặt tại vị trí được xác định bởi thông số OUT. Thông số P còn được trả về như một giá trị đếm dịch chỉnh trong chuỗi ban đầu tại vị trí mà sự chuyển đổi được chấm dứt. Dữ liệu chuỗi phải được khởi chạy trước sự thực thi như một chuỗi hợp lệ trong bộ nhớ. Thông số

Kiểu thông số

Kiểu dữ liệu

Miêu tả

IN

IN

String

Chuỗi ký tự ASCII để chuyển đổi

FORMAT

IN

Word

Các tùy chọn định dạng ngõ ra IN: chỉ mục đến ký tự đầu tiên dùng để

P

IN_OUT

UInt

chuyển đổi (ký tự đầu tiên = 1) OUT: chỉ mục đến ký tự tiếp theo sau khi tiến trình chuyển đổi kết thúc

OUT

OUT

SInt, Int, DInt, USInt, UInt, UDInt, Real

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Giá trị số được chuyển đổi

Trang 5-77

SIMATIC S7 - 1200

Thông số FORMAT của STRG_VAL Thông số FORMAT đối với lệnh STRG_VAL được xác định dưới đây. Các vị trí bit không được sử dụng phải được đặt về 0. Bit

Bit

Bit

Bit

16

8

7

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

f

r

f = định dạng ký hiệu: 1 = ký hiệu lũy thừa 0 = ký hiệu dấu chấm cố định r = định dạng chấm thập phân: 1 = “,” (ký tự dấu phẩy) 0 = “.” (ký tự dấu chấm) FORMAT

Định dạng ký hiệu

0000 (mặc định)

Biểu thị chấm thập phân “.”

Dấu chấm cố định “,”

0001

“.”

0002 Lũy thừa

“,”

0003 0004 đến FFFF

Các giá trị không hợp lệ

Các quy tắc đối với chuyển đổi STRG_VAL:  Nếu ký tự dấu chấm “.” được sử dụng cho dấu chấm thập phân, khi đó các dấu phẩy “,” về bên trái của chấm thập phân được diễn dịch như là các ký tự phân cách phần ngàn. Các ký tự dấu phẩy được cho phép và được bỏ qua.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-78

SIMATIC S7 - 1200

 Nếu ký tự dấu phẩy “,” được sử dụng cho dấu chấm thập phân, khi đó các dấu chấm “.” về bên trái của chấm thập phân được diễn dịch như là các ký tự phân cách phần ngàn. Các ký tự dấu chấm được cho phép và được bỏ qua.  Các khoảng trống cách quãng được bỏ qua. Lệnh VAL_STRG Lệnh VAL_ STRG (Value to String) chuyển đổi một số nguyên, một số nguyên không dấu, hay một giá trị dấu chấm động thành một biểu diễn chuỗi ký tự tương ứng. Giá trị được biểu diễn bởi thông số IN được chuyển đổi thành một chuỗi được tham chiếu bởi thông số OUT. Thông số OUT phải là một chuỗi hợp lệ trước khi sự chuyển đổi được thực thi. Chuỗi được chuyển đổi sẽ thay thế các ký tự trong chuỗi OUT bắt đầu tại giá trị đếm độ dịch chỉnh ký tự P đến số lượng các ký tự được xác định bởi thông số SIZE. Số lượng các ký tự trong SIZE phải nằm vừa trong độ dài chuỗi OUT, tính từ vị trí ký tự P. Lệnh này hữu dụng cho việc nhúng vào các ký tự số vào trong một chuỗi văn bản. Ví dụ, ta có thể đặt số “120” vào trong chuỗi “Pump pressure = 120 psi”. Thông số

Kiểu thông số

Kiểu dữ liệu SInt,

IN

IN

Int,

Miêu tả

DInt,

USInt, UInt, UDInt, Giá trị để chuyển đổi Real

SIZE

IN

USInt

PREC

IN

USInt

FORMAT

IN

Word

Số lượng các ký tự được dùng để ghi vào chuỗi OUT Độ chính xác hay kích thước của phần phân số. Không bao gồm dấu chấm thập phân. Các tùy chọn định dạng ngõ ra IN: chỉ mục đến ký tự chuỗi OUT đầu tiên

P

IN_OUT

UInt

dùng để thay thế (ký tự đầu tiên bằng 1) OUT: chỉ mục đến ký tự chuỗi OUT tiếp theo sau sự thay thế

OUT

OUT

String

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Chuỗi được chuyển đổi

Trang 5-79

SIMATIC S7 - 1200

Thông số PREC xác định độ chính xác hay số lượng các con số cho phần phân số của chuỗi. Nếu giá trị thông số IN là một số nguyên, PREC xác định vị trí của dấu chấm thập phân. Ví dụ, nếu giá trị dữ liệu là 123 và PREC = 1 thì kết quả là “12.3”. Độ chính xác được hỗ trợ tối đa đối với kiểu dữ liệu Real là 7 con số. Nếu thông số P lớn hơn kích thước hiện thời của chuỗi OUT, khi đó các khoảng trắng sẽ được thêm vào, cho đến vị trí P, và kết quả được nối thêm vào đến vị trí cuối của chuỗi. Việc chuyển đổi kết thúc nếu chiều dài chuỗi OUT tối đa được đạt đến. Thông số FORMAT của lệnh VAL_STRG Thông số FORMAT đối với lệnh VAL_ STRG được xác định dưới đây. Các vị trí bit không được sử dụng phải được đặt về 0. Bit

Bit

Bit

Bit

16

8

7

0

0

0

0

0

0

0

0

0

0

0

0

0

0

s

f

r

s = ký tự dấu của số: 1 = sử dụng ký tự dấu “+” và “ – ” 0 = chỉ sử dụng ký tự dấu “ – ” f = định dạng ký hiệu: 1 = ký hiệu lũy thừa 0 = ký hiệu dấu chấm cố định r = định dạng chấm thập phân: 1 = “,” (ký tự dấu phẩy) 0 = “.” (ký tự dấu chấm)

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-80

SIMATIC S7 - 1200 FORMAT (Word)

Ký tự dấu của số

Định dạng ký hiệu

Biểu thị chấm thập phân “.”

W#16#0000 Dấu chấm cố định

“,”

W#16#0001 Chỉ “ – ”

“.”

W#16#0002 Lũy thừa

“,”

W#16#0003

“.”

W#16#0004 Dấu chấm cố định

“,”

W#16#0005 “+” và “ – ”

“.”

W#16#0006 Lũy thừa

“,”

W#16#0007 W#16#0008 đến

Các giá trị không hợp lệ

W#16#FFFF

Các quy tắc định dạng chuỗi thông số OUT:  Các ký tự khoảng trắng cách quãng được cộng vào phần ngoài cùng bên trái của chuỗi khi chuỗi được chuyển đổi nhỏ hơn kích thước được xác định.  Khi bit dấu của thông số FORMAT là FALSE, các giá trị kiểu dữ liệu số nguyên không dấu và có dấu được ghi đến bộ đệm ngõ ra mà không có dấu “+” cách quãng. Dấu “ – ” được sử dụng nếu cần. „.‟

 Khi bit dấu là TRUE, các giá trị kiểu dữ liệu số nguyên không dấu và có dấu được ghi đến bộ đệm ngõ ra luôn luôn có một ký tự dấu cách quãng. „.‟

 Khi FORMAT được thiết lập để biểu thị lũy thừa, các giá trị kiểu dữ liệu Real được ghi đến bộ đệm ngõ ra như sau: < con số> „.‟ „E‟

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-81

SIMATIC S7 - 1200

 Khi FORMAT được thiết lập để biểu thị dấu chấm cố định, các giá trị kiểu dữ liệu số nguyên không dấu, số nguyên có dấu và số thực được ghi đến bộ đệm ngõ ra như sau: „.‟

 Các số 0 cách quãng nằm bên trái của chấm thập phân (ngoại trừ con số kế cận với chấm thập phân) bị xóa bỏ.  Các giá trị nằm bên phải của chấm thập phân được làm tròn để nằm vừa trong số lượng các con số bên phải chấm thập phân được xác định bởi thông số PREC.  Kích thước của chuỗi ngõ ra phải ít nhất lớn hơn 3 byte so với số lượng các con số nằm bên phải của chấm thập phân.  Các giá trị được căn chỉnh bên phải trong chuỗi ngõ ra.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-82

SIMATIC S7 - 1200

Các điều kiện đƣợc thuật lại bởi ENO Khi một lỗi bị bắt gặp trong suốt hoạt động chuyển đổi, các kết quả sau đây sẽ được trả về:  ENO được đặt về 0.  OUT được đặt về 0, hay như được thể hiện trong các ví dụ về việc chuyển đổi chuỗi sang giá trị.  OUT không bị thay đổi, hay như được thể hiện trong các ví dụ khi OUT là một chuỗi. Trạng thái

Miêu tả

ENO 1 0

Không có lỗi. Thông số không hợp lệ hay không đúng quy tắc, ví dụ truy xuất vào một DB không tồn tại.

0

Chuỗi không đúng quy tắc khi chiều dài tối đa của chuỗi là 0 hay 255.

0

Chuỗi không đúng quy tắc khi chiều dài hiện thời lớn hơn chiều dài tối đa.

0

Giá trị số được chuyển đổi quá lớn đối với kiểu dữ liệu OUT được xác định.

0

Kích cỡ chuỗi tối đa của thông số OUT phải đủ lớn để nhận một số lượng các ký tự được xác định bởi thông số SIZE, bắt đầu từ vị trí ký tự thông số P.

0

Giá trị P không đúng quy tắc khi P = 0 hay P lớn hơn độ dài chuỗi hiện thời.

0

Thông số SIZE phải lớn hơn thông số PREC.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-83

SIMATIC S7 - 1200

Các ví dụ về chuyển đổi chuỗi thành giá trị S_CONV Chuỗi IN

Kiểu dữ liệu OUT

Giá trị OUT

ENO

“123”

Int/DInt

123

TRUE

“– 00456”

Int/DInt

– 456

TRUE

“123.45”

Int/DInt

123

TRUE

“+2345”

Int/DInt

2345

TRUE

“00123AB”

Int/DInt

123

TRUE

“123”

Real

123.0

TRUE

“123.45”

Real

123.45

TRUE

“1.23e-4”

Real

1.23

TRUE

“1.23E-4”

Real

1.23

TRUE

“12,345.67”

Real

12345.67

TRUE

“3.4e39”

Real

3.4

TRUE

“-3.4e39”

Real

-3.4

TRUE

“1.17549e-38”

Real

1.17549

TRUE

“12345”

SInt

0

FALSE

“A123”

N/A

0

FALSE

“”

N/A

0

FALSE

“++123”

N/A

0

FALSE

“+-123”

N/A

0

FALSE

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-84

SIMATIC S7 - 1200

Các ví dụ về chuyển đổi giá trị thành số S_CONV Kiểu dữ liệu

Giá trị IN

Chuỗi OUT

ENO

UInt

123

“123”

TRUE

UInt

0

“0”

TRUE

UDInt

12345678

“12345678”

TRUE

Real

-INF

“INF”

FALSE

Real

+INF

“INF”

FALSE

Real

NaN

“NaN”

FALSE

Các ví dụ về chuyển đổi STRG_VAL FORMAT

Kiểu dữ liệu

(W#16#...)

OUT

“123”

0000

“– 00456”

Chuỗi IN

Giá trị OUT

ENO

Int/DInt

123

TRUE

0000

Int/DInt

– 456

TRUE

“123.45”

0000

Int/DInt

123

TRUE

“+2345”

0000

Int/DInt

2345

TRUE

“00123AB”

0000

Int/DInt

123

TRUE

“123”

0000

Real

123.0

TRUE

“-00456”

0001

Real

-456.0

TRUE

“+00456”

0001

Real

456.0

TRUE

“123.45”

0000

Real

12345.0

TRUE

“123,45”

0001

Real

123.45

TRUE

“.00123AB”

0001

Real

123.0

TRUE

“1.23e-4”

0000

Real

1.23

TRUE

“1.23E-4”

0000

Real

1.23

TRUE

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-85

SIMATIC S7 - 1200 “1.23E-4”

0002

Real

1.23E-4

TRUE

“12,345.67”

0000

Real

12345.67

TRUE

“12,345.67”

0001

Real

12.345

TRUE

“3.4e39”

0002

Real

+INF

TRUE

“-3.4e39”

0002

Real

-INF

TRUE

0002

Real

0.0

TRUE

“12345”

N/A

SInt

0

FALSE

“A123”

N/A

N/A

0

FALSE

“”

N/A

N/A

0

FALSE

“++123”

N/A

N/A

0

FALSE

“+-123”

N/A

N/A

0

FALSE

“1.17549e-38” (và nhỏ hơn)

Các ví dụ về chuyển đổi VAL_STRG Các ví dụ dựa trên một chuỗi OUT được khởi chạy như sau: “Current Temp = xxxxxxxxxx C” Ký tự “x” biểu thị các ký tự khoảng cách được phân bổ cho giá trị được chuyển đổi. Kiểu dữ liệu

Giá trị IN

P

SIZE

FORMAT (W#16#...)

PREC

UInt

123

16

10

0000

0

UInt

0

16

10

0000

2

UDInt

12345678

16

10

0000

3

UDInt

12345678

16

10

0001

3

Int

123

16

10

0004

0

Int

-123

16

10

0004

0

Real

-0.00123

16

10

0004

4

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Chuỗi OUT

ENO

Current Temp = xxxxxxx123 C Current Temp = xxxxxx0.00 C Current Temp = x12345.678 C Current Temp = x12345,678 C Current Temp = xxxxxx+123 C Current Temp = xxxxxx-123 C Current Temp = xxx-0.0012 C

TRUE TRUE TRUE TRUE TRUE TRUE TRUE

Trang 5-86

SIMATIC S7 - 1200 Real

-0.00123

16

10

0006

4

Real

-INF

16

10

N/A

4

Real

+INF

16

10

N/A

4

Real

NaN

16

10

N/A

4

UDInt

12345678

16

6

N/A

3

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Current Temp = -1.2300E-3 C Current Temp = xxxxxx-INF C Current Temp = xxxxxx+INF C Current Temp = xxxxxxxNaN C Current Temp = xxxxxxxxxx C

TRUE FALSE FALSE FALSE FALSE

Trang 5-87

SIMATIC S7 - 1200

5.2.3.3.

Các lệnh vận hành chuỗi.

Chương trình điều khiển có thể sử dụng các lệnh chuỗi và ký tự sau đây để tạo ra các thông điệp cho bộ phận điều hành hiển thị và xử lý các biểu đồ. Các lỗi thông dụng đối với tất cả các lệnh chuỗi Các lệnh vận hành chuỗi mà được thực thi với các điều kiện chuỗi không hợp lệ hay không đúng quy tắc được thể hiện dưới đây sẽ cho kết quả một giá trị ENO = 0 và một ngõ ra một chuỗi rỗng. Các điều kiện lỗi mà xuất hiện trong một lệnh xác định thì được liệt kê phía dưới phần miêu tả sự thực thi lệnh. Điều kiện

ENO

OUT

Độ dài hiện tại của IN1 vượt quá độ dài tối đa của IN1, hay độ dài hiện tại của IN2 vượt quá độ dài tối đa của IN2 (chuỗi không hợp lệ) 0

Độ dài tối đa của IN1, IN2 hay OUT không nằm vừa trong phạm vi nhớ được phân bổ

Độ dài hiện tại được đặt về 0.

Độ dài tối đa của IN1, IN2 hay OUT là 0 hay 255 (độ dài không đúng quy tắc)

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-88

SIMATIC S7 - 1200

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-89

SIMATIC S7 - 1200

Lệnh LEN Thông số

Kiểu thông số

Kiểu dữ liệu

IN

IN

String

OUT

OUT

UInt

Miêu tả Chuỗi tín hiệu vào Số lượng các ký tự hợp lệ của chuỗi

Lệnh LEN (Length of String) đưa ra độ dài hiện thời của chuỗi IN tại ngõ ra OUT. Một chuỗi trống có độ dài bằng 0. Bảng sau đây thể hiện các mã điều kiện của lệnh. ENO

Điều kiện

OUT

1

Không có điều kiện chuỗi không hợp lệ

Độ dài chuỗi hợp lệ

Lệnh CONCAT Thông số

Kiểu thông số

Kiểu dữ liệu

Miêu tả

IN1

IN

String

Chuỗi ngõ vào 1

IN2

IN

String

Chuỗi ngõ vào 2

OUT

OUT

String

Chuỗi được kết hợp (chuỗi 1 + chuỗi 2)

Lệnh CONCAT (Concatenate strings) nối các thông số chuỗi IN1 và IN2 để hình thành nên một chuỗi được đưa ra tại OUT. Sau sự ghép nối này chuỗi IN1 là phần bên trái và chuỗi IN2 là phần bên phải của chuỗi được kết hợp. Bảng sau đây thể hiện các mã điều kiện của lệnh. ENO 1 0

Điều kiện Không có lỗi nào được phát hiện

OUT Các ký tự hợp lệ

Chuỗi kết quả sau sự ghép nối lớn Các ký tự chuỗi kết quả được sao chép tới hơn độ dài tối đa của chuỗi OUT

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

khi độ dài tối đa của OUT được đạt đến.

Trang 5-90

SIMATIC S7 - 1200

Lệnh LEFT Thông số

Kiểu thông số

Kiểu dữ liệu

IN

IN

String

L

IN

Int

OUT

OUT

String

Miêu tả Chuỗi ngõ vào Độ dài của chuỗi con dùng để tạo ra, sử dụng L các ký tự nằm bên trái chuỗi IN Chuỗi ngõ ra

Lệnh LEFT (Left substring) mang lại một chuỗi con được tạo từ L các ký tự đầu tiên của thông số chuỗi IN.  Nếu L lớn hơn độ dài hiện thời của chuỗi IN, toàn bộ chuỗi IN sau đó được trả về trong OUT.  Nếu một chuỗi rỗng là ngõ vào, một chuỗi rỗng sau đó được trả về trong OUT. Bảng sau đây thể hiện các mã điều kiện của lệnh. Điều kiện

ENO

OUT

1

Không có lỗi nào được phát hiện

Các ký tự hợp lệ

0

L nhỏ hơn hay bằng 0

Độ dài hiện thời được đặt về 0

Độ dài chuỗi con (L) dùng để sao chép Các ký tự được sao chép cho tới khi 0

lớn hơn độ dài lớn nhất của chuỗi độ dài tối đa của chuỗi OUT được đạt OUT

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

đến

Trang 5-91

SIMATIC S7 - 1200

Lệnh RIGHT Thông số

Kiểu thông số

Kiểu dữ liệu

IN

IN

String

L

IN

Int

OUT

OUT

String

Miêu tả Chuỗi ngõ vào Độ dài của chuỗi con được tạo, sử dụng L các ký tự nằm bên phải chuỗi IN Chuỗi ngõ ra

Lệnh RIGHT (Right substring) mang lại L các ký tự cuối của chuỗi.  Nếu L lớn hơn độ dài hiện thời của chuỗi IN, toàn bộ chuỗi IN sau đó được trả về trong OUT.  Nếu một chuỗi rỗng là ngõ vào, một chuỗi rỗng sau đó được trả về trong OUT. Bảng sau đây thể hiện các mã điều kiện của lệnh. Điều kiện

ENO

OUT

1

Không có lỗi nào được phát hiện

Các ký tự hợp lệ

0

L nhỏ hơn hay bằng 0

Độ dài hiện thời được đặt về 0

Độ dài chuỗi con (L) dùng để sao chép Các ký tự được sao chép cho tới khi 0

lớn hơn độ dài lớn nhất của chuỗi độ dài tối đa của chuỗi OUT được đạt OUT

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

đến

Trang 5-92

SIMATIC S7 - 1200

Lệnh MID Thông số

Kiểu thông số

Kiểu dữ liệu

IN

IN

String

Miêu tả Chuỗi ngõ vào Độ dài của chuỗi con dùng để tạo ra, sử

L

IN

Int

dụng L các ký tự trong chuỗi IN, bắt đầu tại vị trí ký tự là P Vị trí của ký tự chuỗi con đầu tiên được

P

IN

Int

sao chép, đối với vị trí ký tự đầu tiên trong chuỗi IN thì P = 1

OUT

OUT

String

Chuỗi ngõ ra

Lệnh MID (Middle substring) mang lại phần nằm giữa của một chuỗi. Chuỗi con ở giữa dài L ký tự và bắt đầu tại vị trí ký tự là P (bao gồm luôn ký tự này). Nếu tổng của L và P vượt quá độ dài hiện thời của thông số chuỗi IN, một chuỗi con bắt đầu tại vị trí ký tự là P và tiếp tục đến cuối chuỗi IN sẽ được trả về. Bảng sau đây thể hiện các mã điều kiện của lệnh. Điều kiện

ENO 1

Không có lỗi nào được phát hiện

0

L hay P nhỏ hơn hay bằng 0

0

P lớn hơn độ dài tối đa của IN

OUT Các ký tự hợp lệ

Độ dài hiện thời được đặt về 0 Độ dài chuỗi con (L) dùng để sao Các ký tự được sao chép bắt đầu tại vị trí 0

chép lớn hơn độ dài tối đa của chuỗi P cho tới khi độ dài tối đa của chuỗi OUT OUT

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

được đạt đến

Trang 5-93

SIMATIC S7 - 1200

Lệnh DELETE Thông số

Kiểu thông số

Kiểu dữ liệu

IN

IN

String

L

IN

Int

P

IN

Int

OUT

OUT

String

Miêu tả Chuỗi ngõ vào Số lượng các ký tự bị xóa Vị trí của ký tự đầu tiên bị xóa: ký tự đầu tiên của chuỗi IN là ở vị trí số 1 Chuỗi ngõ ra

Lệnh DELETE (Delete substring) xóa L ký tự trong chuỗi IN. Việc xóa đi ký tự bắt đầu tại vị trí ký tự là P (bao gồm cả ký tự này), và chuỗi con còn lại được mang lại tại thông số OUT.  Nếu L = 0, chuỗi ngõ vào được trả về trong OUT.  Nếu tổng của L và P lớn hơn độ dài của chuỗi ngõ vào, chuỗi sẽ được xóa đến hết. Bảng sau đây thể hiện các mã điều kiện của lệnh. ENO

Điều kiện

1

Không có lỗi nào được phát hiện

0

P lớn hơn độ dài hiện thời của IN

0

L nhỏ hơn 0, hay P nhỏ hơn hay bằng 0

0

OUT Các ký tự hợp lệ IN được sao chép đến OUT mà không có ký tự nào bị xóa Độ dài hiện tại được đặt về 0

Chuỗi kết quả nằm sau các ký tự bị xóa Các ký tự chuỗi kết quả được sao chép cho thì lớn hơn độ dài tối đa của chuỗi OUT tới khi độ dài tối đa của OUT được đạt đến

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-94

SIMATIC S7 - 1200

Lệnh INSERT Thông số

Kiểu thông số

Kiểu dữ liệu

Miêu tả

IN1

IN

String

Chuỗi ngõ vào 1

IN2

IN

String

Chuỗi ngõ vào 2 Vị trí ký tự cuối cùng trong chuỗi IN trước

P

IN

Int

điểm chèn vào của chuỗi IN2. Ký tự đầu tiên của chuỗi IN1 là vị trí số 1.

OUT

OUT

String

Chuỗi ngõ ra

Lệnh INSERT (Insert substring) chèn chuỗi IN2 vào chuỗi IN1. Việc chèn bắt đầu sau ký tự tại vị trí P. Bảng sau đây thể hiện các mã điều kiện của lệnh. ENO

Điều kiện

1

Không có lỗi nào được phát hiện

0

P lớn hơn độ dài của chuỗi IN1

0

P nhỏ hơn hay bằng 0

0

OUT Các ký tự hợp lệ IN2 được nối vào IN1 ngay lập tức theo ký tự cuối cùng của IN1 Độ dài hiện thời được đặt về 0

Chuỗi kết quả sau sự chèn vào thì lớn Chuỗi kết quả được sao chép cho tới khi hơn độ dài tối đa của chuỗi OUT

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

độ dài tối đa của OUT được đạt đến.

Trang 5-95

SIMATIC S7 - 1200

Lệnh REPLACE Thông số

Kiểu thông số

Kiểu dữ liệu

Miêu tả

IN1

IN

String

Chuỗi ngõ vào

IN2

IN

String

Chuỗi của các ký tự thay thế

L

IN

Int

Số lượng các ký tự để thay thế

P

IN

Int

Vị trí của ký tự đầu tiên dùng để thay thế

OUT

OUT

String

Chuỗi kết quả

Lệnh REPLACE (Replace substring) thay thế L ký tự trong thông số chuỗi IN. Sự thay thế bắt đầu tại ký tự vị trí P (bao gồm cả ký tự này) của chuỗi IN1, với các ký tự thay thế đến từ thông số chuỗi IN2.  Nếu thông số L = 0, chuỗi IN2 được chèn vào tại vị trí P của chuỗi IN1 mà không xóa đi bất kỳ ký tự nào trong chuỗi IN1.  Nếu P = 1, L các ký tự đầu tiên trong IN1 được thay thế với các ký tự chuỗi IN2. Bảng sau đây thể hiện các mã điều kiện của lệnh. Điều kiện

ENO 1

Không có lỗi được phát hiện

0

P lớn hơn độ dài của IN1

0

0

0

OUT Các ký tự hợp lệ IN2 được kết nối vào IN1 ngay lập tức theo ký tự cuối cùng của IN1

P lấp đầy bên trong IN1, nhưng ít IN2 thay thế các ký tự cuối trong IN1, bắt đầu hơn L các ký tự vẫn còn trong IN1 L nhỏ hơn 0, hay P nhỏ hơn hay bằng 0

tại vị trí P Độ dài hiện thời được đặt về 0

Chuỗi kết quả sau sự thay thế lớn Các ký tự chuỗi kết quả được sao chép cho tới hơn độ dài tối đa của chuỗi OUT

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

khi độ dài tối đa của OUT được đạt đến

Trang 5-96

SIMATIC S7 - 1200

Lệnh FIND Thông số

Kiểu thông số

Kiểu dữ liệu

Miêu tả

IN1

IN

String

Việc tìm kiếm nằm trong chuỗi này

IN2

IN

String

Tìm kiếm chuỗi này

OUT

OUT

Int

Vị trí ký tự trong chuỗi IN1 của sự phù hợp tìm kiếm đầu tiên

Lệnh FIND (Find substring) mang lại vị trí ký tự của chuỗi con hay ký tự được xác định bởi IN2 nằm trong chuỗi IN1. Việc tìm kiếm bắt đầu ở bên trái. Vị trí ký tự của lần xuất hiện đầu tiên của chuỗi IN2 thì được trả về tại OUT. Nếu chuỗi IN2 không được tìm thấy trong chuỗi IN1 thì kết quả 0 được trả về. Bảng sau đây thể hiện các mã điều kiện của lệnh. ENO

Điều kiện

OUT

1

Không có lỗi nào được phát hiện

Vị trí ký tự hợp lệ

0

IN2 lớn hơn IN1

Vị trí ký tự được đặt về 0

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-97

SIMATIC S7 - 1200

5.2.4. Các lệnh điều khiển chương trình. 5.2.4.1.

Lệnh cảnh giới đặt lại chu kỳ quét. Lệnh RE_TRIGR (Re – trigger scan time watchdog) được sử dụng để mở rộng thời gian tối đa được cho phép trước khi bộ định thì cảnh giới chu kỳ quét sinh ra một lỗi.

Sử dụng lệnh RE_TRIGR để khởi động lại bộ định thì chu kỳ quét trong suốt một chu kỳ quét đơn. Điều này có sự ảnh hưởng của việc mở rộng thời gian chu kỳ quét tối đa được cho phép bằng một giai đoạn thời gian chu kỳ cực đại, từ sự thực thi cuối cùng của hàm RE_TRIGR. CPU giới hạn việc sử dụng của lệnh RE_TRIGR đối với chu kỳ chương trình, ví dụ OB1 và các hàm mà được gọi từ chu kỳ chương trình. Điều này có nghĩa là bộ định thì cảnh giới được đặt lại, và ENO = EN nếu RE_TRIGR được gọi từ bất kỳ một OB nào trong danh sách OB chu kỳ chương trình. ENO = FALSE và bộ định thì cảnh giới không được đặt lại nếu như RE_TRIGR được thực thi từ một OB khởi động, một OB ngắt hay một OB lỗi. Thiết lập thời gian chu kỳ tối đa của PLC Ta có thể thiết lập giá trị cho thời gian chu kỳ quét tối đa trong phần cấu hình thiết bị PLC cho “Cycle time” Giám sát thời gian chu kỳ

Giá trị tối thiểu

Giá trị tối đa

Giá trị mặc định

Thời gian chu kỳ tối đa

1 ms

6000 ms

150 ms

Hết thời gian chờ cảnh giới Nếu bộ định thì chu kỳ quét tối đa hết hiệu lực trước khi chu kỳ quét được hoàn thành, một lỗi sẽ được sinh ra. Nếu khối mã xử lý lỗi OB80 được bao gồm trong chương trình người dùng, PLC sẽ thực thi OB80 tại nơi mà ta có thể thêm vào chương

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-98

SIMATIC S7 - 1200

trình logic để tạo ra một phản ứng đặc biệt. Nếu OB80 không được bao gồm, điều kiện thời gian tạm ngừng đầu tiên sẽ được bỏ qua. Nếu hết thời gian chờ cho thời gian quét tối đa lần thứ hai xuất hiện trong lần quét cùng một chương trình (giá trị thời gian chu kỳ tối đa là 2 lần), thì một lỗi sẽ được khởi sự mà có thể làm cho PLC chuyển về chế độ STOP. Trong chế độ STOP, sự thực thi chương trình của ta dừng lại trong khi các giao tiếp hệ thống và các chẩn đoán hệ thống PLC vẫn tiếp tục. 5.2.4.2.

Lệnh dừng chu kỳ quét. Lệnh STP (Stop PLC scan cycle) đặt PLC về chế độ STOP. Khi PLC ở chế độ STOP, sự thực thi của chương trình và các cập nhật vật lý từ ảnh tiến trình sẽ được dừng lại.

Nếu EN = TRUE, PLC sẽ đi vào chế độ STOP, sự thực thi chương trình dừng lại, và trạng thái ENO là vô nghĩa. Nếu không, EN = ENO = 0.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-99

SIMATIC S7 - 1200

5.2.4.3.

Lệnh nhận lỗi.

Các lệnh nhận lỗi cung cấp thông tin về các lỗi thực thi khối chương trình. Nếu ta thêm một lệnh GET_ERROR hay GET_ERROR_ID vào khối mã, ta có thể xử lý các lỗi chương trình trong khối chương trình của ta. Lệnh GET_ERROR Lệnh GET_ERROR chỉ ra rằng một lỗi thực thi khối chương trình đã xuất hiện và lấp vào một cấu trúc dữ liệu được xác định trước với các thông tin lỗi được chi tiết. Thông số

Kiểu dữ liệu

ERROR

ErrorStruct

Phần tử dữ liệu ErrorStruct

Miêu tả Cấu trúc dữ liệu lỗi: ta có thể đổi tên cấu trúc, nhưng không thể đổi tên các thành phần bên trong cấu trúc

Kiểu dữ

Miêu tả

liệu

ERROR_ID

Word

Định danh lỗi

FLAGS

Byte

Luôn luôn đặt về 0 Phản ứng đối với lỗi:

REACTION

Byte



0 = bỏ qua, không ghi (ghi lỗi)



1 = thay thế: số 0 được sử dụng cho giá trị ngõ vào (đọc lỗi)



2 = bỏ qua lệnh

Kiểu khối có lỗi xuất hiện: BLOCK_TYPE

Byte

PAD_0

Byte

CODE_BLOCK_NUMBER

UInt

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH



1 = OB



2 = FC



3 = FB

Byte điền bên trong cho các mục đích canh chỉnh, sẽ bằng 0 Số hiệu của khối mà lỗi xuất hiện

Trang 5-100

SIMATIC S7 - 1200 ADDRESS

UDInt

Vị trí nhớ bên trong của lệnh đã bắt gặp lỗi Sự ánh xạ bên trong đối với cách mà các trường

MODE

Byte

còn lại sẽ được diễn giải dùng để sử dụng bởi STEP 7 Basic Byte lấp bên trong cho các mục đích canh chỉnh,

PAD_1

Byte

OPERAND_NUMBER

UInt

POINTER_NUMBER_LOCATION

UInt

(A) Vị trí con trỏ lệnh bên trong

SLOT_NUMBER_SCOPE

UInt

(B) Vị trí lưu trữ nhớ bên trong

nếu không được sử dụng sẽ bằng 0 Số toán hạng lệnh bên trong

(C) Vùng nhớ được tham chiếu khi lỗi được bắt gặp:

AREA

Byte

PAD_2

Byte

DB_NUMBER

UInt

OFFSET

UDInt

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH



L: 16#40 – 4E, 86, 87, 8E, C0 – CE



I: 16#81



Q: 16#82



M: 16#83



DB: 16#84, 85, 8A, 8B

Byte lấp bên trong cho các mục đích canh chỉnh, nếu không được sử dụng sẽ bằng 0 (D) DB mà đã được tham chiếu khi một lỗi DB xuất hiện, nếu không sẽ bằng 0 (E) Độ dịch chuyển bit được tham chiếu khi lỗi xuất hiện (ví dụ 12 = byte 1, bit 4)

Trang 5-101

SIMATIC S7 - 1200

Lệnh GET_ERR_ID Lệnh GET_ERR_ID chỉ ra rằng một lỗi thực thi khối chương trình đã xuất hiện và báo cáo lại ID (identifier code: mã định danh) của lỗi. Thông số

Kiểu dữ liệu

ID

Word

Miêu tả Các giá trị định danh lỗi cho thành phần ErrorStruct ERROR_ID

ERROR_ID

ERROR_ID

Thập lục phân

Thập phân

2503

9475

Lỗi con trỏ không được khởi chạy

2522

9506

Lỗi đọc toán hạng vượt quá phạm vi

2523

9507

Lỗi ghi toán hạng vượt quá phạm vi

2524

9508

Lỗi đọc vùng nhớ không hợp lệ

2525

9509

Lỗi ghi vùng nhớ không hợp lệ

2528

9512

Lỗi đọc liên kết dữ liệu (liên kết bit không đúng)

2529

9513

Lỗi ghi liên kết dữ liệu (liên kết bit không đúng)

2530

9520

DB được bảo vệ chống ghi

253A

9530

DB tổng thể không tồn tại

253C

9532

Phiên bản sai hay FC không tồn tại

253D

9533

Lệnh không tồn tại

253E

9534

Phiên bản sai hay FB không tồn tại

253F

9535

Lệnh không tồn tại

2575

9589

Lỗi bề dày lồng vào chương trình

2576

9590

Lỗi phân bổ dữ liệu cục bộ

2942

10562

Điểm ngõ vào vật lý không tồn tại

2943

10563

Điểm ngõ ra vật lý không tồn tại

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Lỗi thực thi khối chƣơng trình

Trang 5-102

SIMATIC S7 - 1200

Hoạt động Theo mặc định, CPU phản hồi đến một lỗi thực thi khối bằng cách ghi chép một lỗi trong bộ đệm chẩn đoán (Diagnostics) và chuyển về chế độ STOP. Tuy nhiên, nếu ta đặt một hay nhiều lệnh GET_ERROR hay GET_ERR_ID bên trong một khối mã, khối này bây giờ được thiết lập để giải quyết các lỗi bên trong khối. Trong trường hợp này, CPU không chuyển về chế độ STOP và không ghi chép một lỗi trong bộ đệm chẩn đoán. Thay vào đó, thông tin về lỗi được thuật lại trong ngõ ra của lệnh GET_ERROR hay GET_ERR_ID. Ta có thể đọc thông tin lỗi chi tiết với lệnh GET_ERROR, hay chỉ đọc định danh lỗi với lệnh GET_ERR_ID. Thông thường thì lỗi đầu tiên là rất quan trọng, với các lỗi theo sau chỉ là hệ quả của lỗi đầu tiên. Sự thực thi đầu tiên của một lệnh GET_ERROR hay GET_ERR_ID bên trong một khối sẽ trả về một lỗi đầu tiên được phát hiện trong suốt việc thực thi khối. Lỗi này có thể đã xuất hiện ở bất kỳ nơi nào giữa sự bắt đầu của khối và sự thực thi của cả GET_ERROR hay GET_ERR_ID. Những thực thi phân dãy của cả GET_ERROR hay GET_ERR_ID đều trả về lỗi đầu tiên từ sự thực thi kề trước của GET_ERROR hay GET_ERR_ID. Lược sử của những lỗi đầu tiên thì không được lưu lại, và sự thực thi của cả hai lệnh sẽ trang bị lại hệ thống PLC để bắt lỗi tiếp theo. Kiểu dữ liệu ErrorStruct được sử dụng bởi lệnh GET_ERROR có thể được thêm vào trong trình soạn thảo Data block và các trình soạn thảo giao diện khối, vì vậy chương trình logic có thể truy xuất những giá trị này. Lựa chọn ErrorStruct từ danh sách thả xuống kiểu dữ liệu để thêm vào cấu trúc này. Ta có thể tạo ra nhiều ErrorStruct bằng cách sử dụng các tên đơn nhất. Các thành phần của một ErrorStruct thì không thể được đặt lại tên. Điều kiện lỗi đƣợc chỉ ra bởi ENO Nếu EN = TRUE và GET_ERROR hay GET_ERR_ID thực thi, thì:  ENO = TRUE cho biết một lỗi thực thi khối mã đã xuất hiện và dữ liệu lỗi được đưa ra.  ENO = FALSE cho biết không có lỗi thực thi khối mã nào đã xuất hiện.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-103

SIMATIC S7 - 1200

Ta có thể kết nối logic chương trình phản ứng lỗi đến ENO mà kích hoạt sau những sự xuất hiện lỗi. Nếu một lỗi tồn tại thì thông số ngõ ra lưu trữ dữ liệu lỗi ở nơi mà chương trình của ta truy xuất vào nó. GET_ERROR và GET_ERR_ID có thể được sử dụng để gửi thông tin lỗi từ khối đang thực thi hiện thời (khối được gọi) đến một khối đang gọi. Ta định vị lệnh trong mạch cuối cùng của chương trình khối được gọi để báo cáo trạng thái thực thi cuối cùng của khối được gọi.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-104

SIMATIC S7 - 1200

5.2.5. Các lệnh truyền thông. 5.2.5.1.

Truyền thông Ethernet mở.

Truyền thông Ethernet mở với kết nối/ngắt kết nối tự động (TSEND_C và TRCV_C)

Lƣu ý Việc xử lý của các lệnh TSEND_C và TRCV_C có thể mất một lượng thời gian không xác định. Để chắc chắn rằng các lệnh này được xử lý trong mỗi chu kỳ quét, luôn luôn gọi chúng từ bên trong lần quét chu kỳ chương trình chính, như là từ một OB chu kỳ chương trình hay từ một khối mã mà được gọi từ lần quét chu kỳ chương trình. Không gọi các lệnh này từ một OB ngắt phần cứng, từ một OB ngắt trì hoãn thời gian, từ một OB ngắt theo chu trình, từ một OB ngắt lỗi hay từ một OB khởi động.

Miêu tả lệnh TSEND_C Lệnh TSEND_C thành lập một kết nối truyền thông TCP hay ISO trên TCP đến một trạm đồng hành, gửi đi dữ liệu, và có thể kết thúc sự kết nối. Sau khi việc kết nối được cài đặt và thành lập, nó được duy trì và giám sát một cách tự động bởi CPU. TSEND_C kết hợp các chức năng của TCON, TDISCON và TSEND. Kích thước tối thiểu của dữ liệu mà ta có thể truyền phát với lệnh TSEND_C là 1 byte.

Lƣu ý Thiết lập mặc định của thông số LEN (LEN = 0) sử dụng thông số DATA để xác định độ dài của dữ liệu đang được truyền phát. Hãy chắc chắn rằng DATA được truyền phát bởi lệnh TSEND_C có kích thước giống như thông số DATA của lệnh TRCV_C. CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-105

SIMATIC S7 - 1200

Các chức năng sau đây miêu tả sự hoạt động của lệnh TSEN_C:  Để thành lập một kết nối, thực thi lệnh TSEND_C với thông số CONT = 1.  Sau khi thành lập thành công kết nối, TSEND_C đặt thông số DONE cho một chu kỳ.  Để kết thúc kết nối truyền thông, thực thi lệnh TSEND_C với CONT = 0. Kết nối sẽ được hủy bỏ ngay lập tức. Việc này còn tác động lên trạm nhận. Kết nối sẽ được đóng tại đó và dữ liệu bên trong bộ đệm có thể bị mất đi.  Để gửi dữ liệu qua một kết nối đã tạo thành, thực thi lệnh TSEND_C với một ngưỡng tăng trong REQ. Sau một hoạt động gửi thành công, TSEND_C đặt thông số DONE cho một chu kỳ.  Để thành lập một kết nối và gửi dữ liệu, thực thi lệnh TSEND_C với CONT = 1 và REQ = 1. Sau một hoạt động gửi thành công, TSEND_C đặt thông số DONE cho một chu kỳ. Miêu tả lệnh TRCV_C Lệnh TRCV_C thành lập một kết nối truyền thông TCP hay ISO trên TCP đến một CPU đồng hành, nhận dữ liệu, và có thể kết thúc việc kết nối. Sau khi sự kết nối được cài đặt và thành lập, nó sẽ được duy trì và giám sát một cách tự động bởi CPU. Lệnh TRCV_C kết hợp các chức năng của lệnh TCON, TDISCON và TRCV. Kích thước tối thiểu của dữ liệu mà ta có thể nhận được với lệnh TRCV_C là 1 byte. Lệnh TRCV_C không hỗ trợ việc truyền phát của các dữ liệu Boolean hay các mảng Boolean.

Lƣu ý Thiết lập mặc định của thông số LEN (LEN = 0) sử dụng thông số DATA để xác định độ dài của dữ liệu đang được phát đi. Hãy chắc chắn rằng DATA được phát đi bởi lệnh TSEND_C có kích thước giống như thông số DATA của lệnh TRCV_C.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-106

SIMATIC S7 - 1200

Các chức năng sau đây miêu tả sự hoạt động của lệnh TRCV_C:  Để thành lập một kết nối, thực thi lệnh TRCV_C với thông số CONT = 1.  Để nhận dữ liệu, thực thi lệnh TRCV_C với thông số EN_R = 1. TRCV_C nhận các dữ liệu liên tục khi thông số EN_R = 1 và CONT = 1.  Để kết thúc kết nối, thực thi lệnh TRCV_C với thông số CONT = 0. Kết nối sẽ được hủy bỏ ngay lập tức và dữ liệu có thể bị mất đi. Các chế độ nhận Lệnh TRCV_C xử lý chế độ nhận giống như lệnh TRCV. Bảng sau đây thể hiện dữ liệu được đi vào vùng nhận như thế nào. Biến thể giao thức

Việc đi vào của dữ liệu trong vùng nhận

Thông số “Connection_type”

TCP

Sự nhận dữ liệu với độ dài định trước

B#16#11

ISO trên TCP

Được điều khiển giao thức

B#16#12

Lƣu ý Do sự xử lý không đồng bộ của TSEND_C, ta phải giữ dữ liệu trong vùng đối tượng phát được nhất quán cho đến khi thông số DONE hay thông số ERROR cho rằng các giá trị là TRUE. Đối với TSEND_C, một trạng thái TRUE tại thông số DONE có nghĩa rằng dữ liệu đã được gửi thành công. Nó không có nghĩa là CPU đồng hành kết nối thực ra đã đọc bộ đệm nhận. Do sự xử lý không đồng bộ của TRCV_C, dữ liệu trong vùng đối tượng nhận chỉ nhất quán khi thông số DONE = 1.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-107

SIMATIC S7 - 1200

Bảng sau đây thể hiện mối quan hệ giữa các thông số BUSY, DONE và ERROR. BUSY TRUE FALSE

DONE

ERROR

Không liên Không liên quan đến

quan đến

TRUE

FALSE

Miêu tả Công việc đang được xử lý Công việc đã hoàn thành thành công Công việc đã được kết thúc với một lỗi. Nguyên

FALSE

FALSE

TRUE

nhân của lỗi có thể được tìm thấy trong thông số STATUS.

FALSE

FALSE

FALSE

Một công việc mới đã không được gán.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-108

SIMATIC S7 - 1200

Các thông số TSEND_C

Thông số

Kiểu thông số

Kiểu dữ liệu

Miêu tả Thông số điều khiển REQ khởi động chức năng gửi đi

REQ

INPUT

Bool

với kết nối được miêu tả trong CONNECT trên một ngưỡng tăng.

CONT

INPUT

Bool



0: ngắt kết nối



1: thành lập và giữ kết nối

Số lượng byte tối đa dùng để gửi (mặc định = 0, có LEN

INPUT

Int

nghĩa là thông số DATA xác định chiều dài của dữ liệu dùng để gửi).

TCON-

CONNECT

IN_OUT

DATA

IN_OUT

Variant

COM_RST

IN_OUT

Bool

Param

Con trỏ đến phần miêu tả kết nối Vùng gửi, chứa địa chỉ và chiều dài của dữ liệu dùng để gửi. 

năng, kết nối đang tồn tại sẽ được kết thúc. 

DONE

BUSY

OUTPUT

OUTPUT

0: chức năng vẫn chưa được khởi động hay vẫn còn đang chạy.

Bool

Bool

1: hoàn tất việc khởi động lại của khối chức



1: chức năng được thực thi mà không có lỗi



0: chức năng được hoàn thành.



1: chức năng vẫn chưa được hoàn thành, một chức năng mới không thể được khởi chạy.

ERROR

OUTPUT

Bool



1: lỗi xuất hiện trong tiến trình. STATUS cung cấp thông tin chi tiết về kiểu lỗi.

STATUS

OUTPUT

Word

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Thông tin lỗi

Trang 5-109

SIMATIC S7 - 1200

Các thông số TRCV_C

Thông số

Kiểu thông

Kiểu dữ

số

liệu

Miêu tả Thông số điều khiển được cho phép để nhận: khi

EN_R

IN

Bool

EN_R = 1, TRCV_C sẵn sàng nhận. Chức năng nhận được thực thi. Thông số điều khiển CONT:

CONT

INPUT

Bool



0: ngắt kết nối



1: thành lập và giữ kết nối

Độ dài của vùng nhận tính theo byte (mặc định = 0, có LEN

IN

Int

nghĩa là thông số DATA xác định chiều dài của dữ liệu dùng để gửi).

CONNECT

IN_OUT

TCON

DATA

IN_OUT

Variant

COM_RST

IN_OUT

Bool

Con trỏ đến phần miêu tả kết nối Vùng nhận chứa địa chỉ bắt đầu và chiều dài tối đa của dữ liệu được nhận. 

năng, kết nối đang tồn tại sẽ được kết thúc. 

DONE

BUSY

OUTPUT

OUTPUT

0: chức năng vẫn chưa được khởi động hay vẫn còn đang chạy.

Bool

Bool

1: hoàn tất việc khởi động lại của khối chức



1: chức năng được thực thi mà không có lỗi



0: chức năng được hoàn thành.



1: chức năng vẫn chưa được hoàn thành, một chức năng mới không thể được khởi chạy.

ERROR

OUT

Bool



1: lỗi đã xuất hiện trong tiến trình. STATUS cung cấp thông tin chi tiết về kiểu lỗi.

STATUS

OUT

Word

RCVD_LEN

OUT

Int

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Thông tin lỗi Số lượng của dữ liệu thực tế được nhận, tính theo byte.

Trang 5-110

SIMATIC S7 - 1200

Các thông số ERROR và STATUS ERROR

STATUS

Miêu tả

(W#16#...)

0

0000

Chức năng được thực thi không có lỗi

0

7000

Không có xử lý chức năng nào hoạt động

0

7001

0

7002

Dữ liệu đang được gửi hay nhận

0

7003

Sự kết nối đang được kết thúc

0

7004

1

8085

Thông số LEN lớn hơn giá trị được cho phép tối đa

1

8086

Thông số CONNECT nằm ngoài phạm vi được cho phép

1

8087

1

8088

1

8089

Thông số CONNECT không chỉ đến một khối dữ liệu

1

8091

Bề dày lồng vào nhau tối đa bị vượt quá

1

809A

1

809B

Khởi động xử lý chức năng, thành lập kết nối, đợi phần đồng hành kết nối

Sự kết nối được tạo thành và giám sát, không có xử lý chức năng nào hoạt động

Số lượng tối đa của các kết nối đã được đạt đến, không có khả năng kết nối thêm vào Thông số LEN lớn hơn vùng nhớ được xác định trong DATA; vùng nhớ đang nhận thì quá nhỏ

Thông số CONNECT chỉ đến một trường mà không hợp với độ dài của phần miêu tả kết nối. Local_Device_Id trong phần miêu tả kết nối thì không hợp với CPU. Lỗi truyền thông:

1

80A1



Kết nối xác định vẫn chưa được tạo thành



Kết nối xác định hiện đang bị kết thúc, sự truyền tải qua kết nối này là không thể

 1

80A3

1

80A4

1

80A7

Giao diện đang được khởi chạy lại.

Cố gắng đang được thực hiện để kết thúc một kết nối không tồn tại Địa chỉ IP của kết nối đồng hành từ xa là không hợp lệ. Ví dụ, địa chỉ IP của đối tác từ xa giống với địa chỉ IP của đối tác cục bộ. Lỗi truyền thông: ta đã gọi TDISCON trước khi TCON được hoàn thành (TDISCON phải kết thúc một cách hoàn thiện đầu tiên kết nối được

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-111

SIMATIC S7 - 1200 tham chiếu bởi ID) 1

80B2

Thông số CONNECT chỉ đến một khối dữ liệu mà được tạo ra bởi từ khóa UNKINKED Các thông số mâu thuẫn nhau:

1

80B3



Lỗi trong phần miêu tả kết nối



Cổng địa phương (thông số local_tsap_id) vừa mới hiện diện trong một phần miêu tả kết nối khác



ID trong phần miêu tả kết nối khác với ID được xác định theo thông số.

Khi sử dụng ISO trên TCP (connection_type = B#16#12) để thành lập một kết nối thụ động, mã điều kiện 80B4 cảnh báo rằng TSAP được đi vào đã không phù hợp với một trong các yêu cầu địa chỉ sau đây: 

Đối với một độ dài TSAP cục bộ bằng 2 và một giá trị ID TSAP bằng E0 hay E1 (thập lục phân) cho byte đầu tiên, byte thứ hai phải bằng 00 hay 01.

 1

Đối với một độ dài TSAP cục bộ bằng 3 hay lớn hơn và một giá trị ID TSAP bằng E0 hay E1 (thập lục phân) cho byte đầu tiên,

80B4

byte thứ hai phải bằng 00 hay 01 và tất cả các byte còn lại phải là các ký tự ASCII hợp lệ. 

Đối với một độ dài TSAP cục bộ bằng 3 hay lớn hơn và byte đầu tiên của ID TSAP không có một giá trị bằng E0 hay E1 (thập lục phân) thì tất cả các byte của ID TSAP phải là các ký tự ASCII hợp lệ

Các ký tự hợp lệ ASCII là các giá trị byte từ 20 đến 7E (thập lục phân). 1

80C3

Tất cả các tài nguyên kết nối đang được sử dụng Lỗi truyền thông tạm thời:

1

80C4

1

8722

1

873A

1

877F



Việc kết nối không thể được thành lập tại thời điểm này



Giao diện đang nhận các thông số mới



Kết nối được cấu hình hiện đang bị gỡ bỏ bởi TDISCON

Thông số CONNECT: vùng nguồn không hợp lệ: vùng không tồn tại trong DB Thông số CONNECT: truy xuất đến phần miêu tả kết nối là không thể (ví dụ” DB không có sẵn) Thông số CONNECT: lỗi bên trong như là một sự tham chiếu ANY không hợp lệ

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-112

SIMATIC S7 - 1200

Truyền thông Ethernet mở với điều khiển kết nối/ngắt kết nối

Lƣu ý Việc xử lý của các lệnh TCON, TDISCON, TSEND và TRCV có thể mất một lượng thời gian không xác định. Để chắc chắn rằng các lệnh này được xử lý trong mỗi chu kỳ quét, luôn luôn gọi chúng từ bên trong lần quét chu kỳ chương trình chính, như là từ một OB chu kỳ chương trình hay từ một khối mã mà được gọi từ lần quét chu kỳ chương trình. Không gọi các lệnh này từ một OB ngắt phần cứng, từ một OB ngắt trì hoãn thời gian, từ một OB ngắt theo chu trình, từ một OB ngắt lỗi hay từ một OB khởi động.

Truyền thông Ethernet sử dụng các giao thức TCP và ISO trên TCP Các lệnh lập trình sau đây điều khiển tiến trình giao tiếp:  TCON tạo ra một kết nối.  TSEND và TRCV gửi và nhận dữ liệu.  TDISCON ngắt kết nối. Kích thước tối thiểu của dữ liệu mà ta có thể truyền phát hay thu nhận với các lệnh TSEND và TRCV là 1 byte. Lệnh TRCV không hỗ trợ sự truyền phát của dữ liệu Boolean hay các mảng Boolean.

Lƣu ý Thiết lập mặc định của thông số LEN (LEN = 0) sử dụng thông số DATA để xác định độ dài của dữ liệu đang được truyền phát. Hãy chắc chắn rằng DATA được truyền phát bởi lệnh TSEND_C có kích thước giống như thông số DATA của lệnh TRCV_C.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-113

SIMATIC S7 - 1200

Cả hai đối tác truyền thông đều thực thi lệnh TCON để cài đặt và thành lập kết nối truyền thông. Ta sử dụng các thông số để xác định các đối tác điểm kết thúc truyền thông tích cực và thụ động. Sau khi kết nối được cài đặt và thành lập, nó sẽ được duy trì và giám sát một cách tự động bởi CPU. Nếu kết nối được kết thúc do một dấu ngắt dòng hay do đối tác truyền thông từ xa, ví dụ, đối tác tích cực thử để tái thành lập kết nối được cấu hình. Ta không phải thực thi lệnh TCON một lần nữa. Một kết nối đang tồn tại được kết thúc và kết nối cài đặt được gỡ bỏ khi lệnh TDISCON được thực thi hay khi CPU đã vừa chuyển sang chế độ STOP. Để cài đặt và tái thành lập kết nối, ta phải thực thi TCON một lần nữa. Miêu tả chức năng TCON, TDISCON, TSEND và TRCV hoạt động một cách không đồng bộ, nghĩa là tiến trình chức năng kéo dài qua một loạt các thực thi lệnh. Ví dụ, ta khởi động một chức năng để cài đặt và thành lập một kết nối bằng cách thực thi một lệnh TCON với thông số REQ = 1. Sau đó ta sử dụng các thực thi TCON thêm vào để giám sát tiến trình chức năng và kiểm tra sự hoàn thành chức năng với thông số DONE. Bảng dưới đây cho thấy mối quan hệ giữa BUSY, DONE và ERROR. Sử dụng bảng để xác định trạng thái chức năng hiện thời. BUSY

DONE

TRUE

Không liên quan

FALSE

TRUE

ERROR

Miêu tả

Không liên quan Chức năng đang được xử lý. FALSE

Chức năng được hoàn tất thành công. Chức năng đã được kết thúc với một lỗi.

FALSE

FALSE

TRUE

Nguyên nhân lỗi có thể được tìm thấy trong thông số STATUS.

FALSE

FALSE

FALSE

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Một chức năng mới không được gán.

Trang 5-114

SIMATIC S7 - 1200

Lệnh TCON

Thông số

Kiểu thông số

Kiểu dữ liệu

Miêu tả Thông số điều khiển REQUEST khởi động chức

REQ

IN

Bool

năng dành cho việc thành lập kết nối được xác định bởi ID. Chức năng khởi động tại ngưỡng tăng. Tham chiếu đến kết nối dùng để thành lập với đối tác từ xa, hay giữa chương trình người dùng

ID

IN

CONN_OUC và lớp truyền thông của hệ điều hành. ID phải (Word)

đồng nhất với thông số ID liên quan trong phần miêu tả kết nối cục bộ. Phạm vi giá trị: W#16#0001 đến W#16#0FFF

CONNECT

IN_OUT

TCON

Con trỏ đến phần miêu tả kết nối Thông số trạng thái DONE: 

DONE

OUT

0: chức năng vẫn chưa được khởi động hay vẫn còn đang chạy

Bool 

1: chức năng được thực thi mà không có lỗi nào

 BUSY

OUT

Bool

BUSY = 1: chức năng vẫn chưa được hoàn thành.



BUSY = 0: chức năng được hoàn thành.

Thông số trạng thái ERROR: ERROR

OUT

Bool

ERROR = 1: một lỗi đã xuất hiện trong việc xử lý chức năng. STATUS cung cấp thông tin chi tiết về kiểu lỗi.

STATUS

OUT

Word

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Thông số trạng thái STATUS: thông tin lỗi

Trang 5-115

SIMATIC S7 - 1200

Lệnh TDISCON TCP và ISO trên TCP: lệnh TDISCON chấm dứt một sự kết nối truyền thông từ CPU đến một đối tác truyền thông.

Thông số

Kiểu thông số

Kiểu dữ liệu

Miêu tả Thông số điều khiển REQUEST khởi động chức

REQ

IN

Bool

năng dành cho việc thành lập kết nối được xác định bởi ID. Chức năng khởi động tại ngưỡng tăng. Tham chiếu đến kết nối dùng để chấm dứt với đối tác từ xa, hay giữa chương trình người dùng

ID

IN

CONN_OUC và cấp truyền thông của hệ điều hành. ID phải (Word)

đồng nhất với thông số ID liên quan trong phần miêu tả kết nối cục bộ. Phạm vi giá trị: W#16#0001 đến W#16#0FFF Thông số trạng thái DONE: 

DONE

OUT

0: chức năng vẫn chưa được khởi động hay vẫn còn đang chạy.

Bool 

1: chức năng được thực thi mà không có lỗi nào

 BUSY

OUT

Bool

thành. 

ERROR

OUT

Bool

STATUS

OUT

Word

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

BUSY = 1: chức năng vẫn chưa hoàn BUSY = 0: chức năng hoàn thành.

ERROR = 1: một lỗi đã xuất hiện trong quá trình xử lý. Mã lỗi

Trang 5-116

SIMATIC S7 - 1200

Lệnh TSEND

Thông số

Kiểu thông số

Kiểu dữ liệu

Miêu tả Thông số điều khiển REQUEST khởi động chức năng

REQ

IN

Bool

gửi đi trên một ngưỡng tăng. Dữ liệu được truyền tải từ vùng nhớ được xác định bởi DATA và LEN. Tham chiếu đến kết nối liên quan. ID phải đồng nhất

ID

IN

CONN_OUC (Word)

với thông số ID liên quan trong phần miêu tả kết nối cục bộ. Phạm vi giá trị: W#16#0001 đến W#16#0FFF

LEN

IN

Int

Số lượng tối đa các byte dùng để gửi bằng chức năng. Con trỏ chỉ vùng dữ liệu để gửi: vùng đối tượng phát, chứa địa chỉ và chiều dài. Địa chỉ có liên quan đến:

DATA

IN_OUT

Variant



Bảng ngõ vào ảnh tiến trình



Bảng ngõ ra ảnh tiến trình



Bộ nhớ 1 bit



Một khối dữ liệu

Thông số trạng thái DONE: DONE

BUSY

OUT

OUT



Bool

0: chức năng vẫn chưa được khởi động hay vẫn còn đang chạy.



1: chức năng được thực thi mà không có lỗi nào



BUSY = 1: chức năng vẫn chưa hoàn thành. Một chức năng mới không thể được khởi chạy.

Bool 

BUSY = 0: chức năng hoàn thành.

Thông số trạng thái ERROR: ERROR

OUT

Bool

ERROR = 1: lỗi đã xuất hiện trong tiến trình. STATUS cung cấp thông tin chi tiết về kiểu lỗi.

STATUS

OUT

Word

Thông số trạng thái STATUS: thông tin lỗi

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-117

SIMATIC S7 - 1200

Lệnh TRCV

Thông số

Kiểu thông số

Kiểu dữ liệu

Miêu tả Thông số điều khiển được cho phép để nhận:

EN_R

IN

Bool

với EN_R = 1, TRCV sẵn sàng để nhận. Chức năng nhận đang được thực thi. Tham chiếu đến kết nối có liên quan. ID phải

ID

IN

CONN_OUC (Word)

đồng nhất với thông số ID liên quan trong phần miêu tả kết nối cục bộ. Phạm vi giá trị: W#16#0001 đến W#16#0FFF Độ dài của vùng nhận tính theo byte (mặc định

LEN

IN

Int

bằng 0, điều đó có nghĩa là thông số DATA xác định chiều dài của dữ liệu dùng để nhận) Con trỏ đến vùng dữ liệu được nhận: vùng nhận chứa địa chỉ và độ dài. Địa chỉ có liên quan đến:

DATA

IN_OUT

Variant



Bảng ngõ vào ảnh tiến trình



Bảng ngõ ra ảnh tiến trình



Bộ nhớ 1 bit



Một khối dữ liệu

Thông số trạng thái NDR:  NDR

OUT

NDR = 0: chức năng vẫn chưa được khởi động hay vẫn còn đang chạy

Bool 

NDR = 1: chức năng đã hoàn tất thành công.

 BUSY

OUT

Một chức năng mới không thể được khởi

Bool

chạy. 

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

BUSY = 1: chức năng chưa hoàn thành.

BUSY = 0: chức năng hoàn thành. Trang 5-118

SIMATIC S7 - 1200

ERROR

OUT

Bool

STATUS

OUT

Word

RCVD_LEN

OUT

Int

ERROR = 1: lỗi đã xuất hiện trong việc xử lý. STATUS cung cấp thông tin chi tiết về kiểu lỗi. Thông tin lỗi Số lượng dữ liệu nhận được thực tế, tính theo byte

Vùng thu nhận Lệnh TRCV ghi các dữ liệu được nhận đến một vùng thu nhận mà vùng đó được xác định bởi hai biến số sau đây:  Con trỏ đến điểm khởi đầu của vùng  Độ dài của vùng

Lƣu ý Thiết lập mặc định của thông số LEN (LEN = 0) sử dụng thông số DATA để xác định chiều dài của dữ liệu đang được truyền đi. Hãy chắc chắn rằng DATA được truyền đi bởi lệnh TSEND có kích thước giống như thông số DATA của lệnh TRCV. Bảng sau đây chỉ ra cách thức mà TRCV truy nhập dữ liệu được nhận bên trong vùng dữ liệu. Biến thể giao thức

Truy nhập dữ liệu trong vùng nhận Sự tiếp nhận dữ liệu với độ dài xác

TCP

định

ISO trên TCP

Được điều khiển bằng giao thức

Kiểu thông số kết nối B#16#11 B#16#12

Ngay khi tất cả các dữ liệu chức năng đã vừa được nhận, TRCV truyền dẫn nó đến vùng thu nhận và đặt NDR lên 1.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-119

SIMATIC S7 - 1200

Các mã điều kiện của TCON ERROR

STATUS

Giải thích

(W#16#...)

0

0000

Kết nối đã được thành lập thành công

0

7000

Không có sự xử lý chức năng hoạt động

0

7001

Khởi động sự xử lý chức năng, thành lập kết nối

0

7002

1

8086

1

8087

1

809B

1

80A1

Kết nối hay cổng vừa bị chiếm lĩnh bởi người dùng

1

80A2

Cổng cục bộ hay cổng từ xa bị chiếm lĩnh bởi hệ thống

1

80A3

1

80A4

Sự quay số lại (không liên quan đến REQ), kết nối đang được tạo thành Thông số ID vượt quá phạm vi cho phép Số lượng tối đa của các kết nối được đạt đến, kết nối thêm vào là không thể Local_device_id trong phần miêu tả kết nối không thích hợp với CPU

Việc thử đang được thực hiện để tái thành lập một kết nối đang tồn tại Địa chỉ IP của điểm kết thúc kết nối từ xa là không hợp lệ, nó có thể phù hợp với địa chỉ IP cục bộ Lỗi truyền thông: ta đã thực thi TDISCON trước khi TCON hoàn

1

80A7

thành. TDISCON chấm dứt kết nối một cách thành công trước kết nối được tham chiếu bởi ID Sự gán thông số không nhất quán: lỗi nhóm đối với các mã lỗi từ

1

80B3

W#16#80A0 đến W#16#80A2, W#16#80A4, W#16#80B4 đến W#16#80B9 Khi sử dụng ISO trên TCP (connection_type = B#16#12) để thành lập một kết nối thụ động, mã điều kiện 80B4 cảnh báo rằng

1

80B4

TSAP được truy nhập không phù hợp với một trong các yêu cầu địa chỉ sau đây: 

Đối với một độ dài TSAP cục bộ bằng 2 và một giá trị ID TSAP bằng E0 hay E1 (thập lục phân) đối với byte đầu

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-120

SIMATIC S7 - 1200 tiên, thì byte thứ hai phải bằng 00 hay 01. 

Đối với một độ dài TSAP cục bộ bằng 3 hay lớn hơn và một giá trị ID TSAP bằng E0 hay E1 (thập lục phân) đối với byte đầu tiên, thì byte thứ hai phải bằng 00 hay 01 và tất cả các byte còn lại là các ký tự ASCII hợp lệ.



Đối với một độ dài TSAP cục bộ bằng 3 hay lớn hơn và byte đầu tiên không có một giá trị bằng E0 hay E1 (thập lục phân), khi đó tất cả các byte của ID TSAP phải là các ký tự ASCII hợp lệ.

Các ký tự ASCII hợp lệ là các giá trị từ 20 đến 7E (thập lục phân). 1

80B5

Lỗi trong thông số active_est

1

80B6

Lỗi gán thông số trong thông số connection_type ở

Lỗi 1

80B7

một

trong

local_tsap_id_len,

các

thông

số

sau:

rem_subnet_id_len,

block_length, rem_staddr_len,

rem_tsap_id_len, next_staddr_len 1

80B8

1

80C3

Thông số trong phần miêu tả kết nối cục bộ và thông số ID là khác nhau. Tất cả tài nguyên kết nối đang được sử dụng. Lỗi truyền thông tạm thời:

1

80C4



Kết nối không thể được thành lập tại thời điểm này.



Giao diện đang nhận các thông số mới.



Kết nối được cấu hình hiện đang bị gỡ bỏ bởi TDISCON.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-121

SIMATIC S7 - 1200

Các mã điều kiện của TDISCON ERROR

STATUS

Giải thích

(W#16#...)

0

0000

Kết nối đã được ngắt thành công

0

7000

Không có sự xử lý chức năng nào hoạt động

0

7001

Khởi động việc xử lý chức năng, kết nối đang được chấm dứt

0

7002

1

8086

1

80A3

1

80C4

Việc quay số lại (không liên quan đến REQ), kết nối đang được chấm dứt Thông số ID không nằm trong phạm vi địa chỉ được cho phép Việc thử nghiệm đang được thực hiện để chấm dứt một kết nối không tồn tại Lỗi truyền thông tạm thời: giao diện đang nhận các thông số mới hay kết nối hiện đang được thành lập.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-122

SIMATIC S7 - 1200

Các mã điều kiện của TSEND ERROR

STATUS

Giải thích

(W#16#...)

0

0000

Chức năng gửi đi hoàn thành mà không có lỗi

0

7000

Không có sự xử lý chức năng nào hoạt động Khởi động việc xử lý chức năng, dữ liệu đang được gửi đi: trong

0

7001

suốt sự xử lý này hệ điều hành truy xuất các dữ liệu trong vùng gửi DATA. Sự quay số lại (không liên quan đến REQ), chức năng đang được

0

7002

xử lý: hệ điều hành truy xuất các dữ liệu trong vùng gửi DATA trong suốt sự xử lý này.

1

8085

Thông số LEN lớn hơn giá trị được cho phép tối đa

1

8086

Thông số ID không nằm trong phạm vi địa chỉ được cho phép

1

8088

Thông số LEN lớn hơn vùng nhớ được xác định trong DATA Lỗi truyền thông:

1

80A1



Kết nối xác định vẫn chưa được thành lập



Kết nối xác định hiện đang được chấm dứt. Sự truyền tải qua kết nối này là không thể.

 1

80C3

Giao diện đang được khởi chạy lại.

Sự thiếu hụt nội bộ tài nguyên: một khối với ID này vẫn đang được thực thi trong một lớp ưu tiên khác. Lỗi truyền thông tạm thời: 

1

Kết nối đến đối tác truyền thông không thể được thành lập tại thời điểm này.

80C4 

Giao diện đang nhận các thông số mới hay kết nối hiện đang được thành lập.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-123

SIMATIC S7 - 1200

Các mã điều kiện của TRCV ERROR

STATUS

Giải thích

(W#16#...)

Dữ liệu mới được chấp nhận: độ dài hiện thời của dữ liệu được

0

0000

0

7000

Khối chưa sẵn sàng để nhận

0

7001

Khối sẵn sàng để nhận, chức năng nhận đã được kích hoạt.

nhận được thể hiện trong RCVD_LEN.

Sự quay số lại, chức năng nhận đang được thực thi: các dữ liệu 0

7002

được ghi đến vùng nhận trong suốt sự xử lý này. Vì lý do này, một lỗi có thể gây hậu quả làm dữ liệu không thông nhất trong vùng nhận.

1

8085

1

8086

1

8088

Thông số LEN lớn hơn giá trị cho phép tối đa, hay người sử dụng đã thay đổi thông số LEN hay DATA từ lần gọi đầu tiên. Thông số ID không nằm trong phạm vi địa chỉ được cho phép Vùng nhận quá nhỏ: giá trị LEN lớn hơn vùng nhận được xác định bởi DATA. Lỗi truyền thông:

1

80A1



Kết nối xác định vẫn chưa được thành lập



Kết nối xác định đang được chấm dứt. Một chức năng nhận qua kết nối này là không thể.

 1

80C3

Giao diện đang nhận các thông số mới.

Sự thiếu hụt nội bộ tài nguyên: một khối với ID này vẫn đang được thực thi trong một lớp ưu tiên khác. Lỗi truyền thông tạm thời: 

1

Kết nối đến đối tác truyền thông không thể được thành lập tại thời điểm này.

80C4 

Giao diện đang nhận các thiết lập thông số mới hay kết nối hiện đang được thành lập.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-124

SIMATIC S7 - 1200

5.2.5.2.

Các lệnh điểm – điểm (Point – to – Point)

Thông tin chi tiết về các lệnh PtP và các module truyền thông PtP sẽ được trình bày trong Chương 7. 5.2.6. Các lệnh ngắt. 5.2.6.1.

Các lệnh đính kèm và tháo gỡ. Ta có thể kích hoạt và làm vô hiệu các chương trình con điều khiển theo sự kiện việc ngắt với các lệnh ATTACH và DETACH.  ATTACH cho phép sự thực thi chương trình con OB ngắt đối với một sự kiện ngắt phần cứng.  DETACH làm vô hiệu sự thực thi chương trình con OB ngắt đối với một sự kiện ngắt phần cứng. Kiểu

Thông số

thông số

Kiểu

Miêu tả

dữ liệu Định danh khối tổ chức:

ON_NR

IN

Int

Lựa chọn từ các OB ngắt phần cứng có sẵn đã được tạo ra bằng chức năng “Add new block”. Nhấp đôi chuột vào trường thông số, sau đó nhấp lên biểu tượng trợ giúp để xem các OB có sẵn. Định danh sự kiện: Lựa chọn từ các sự kiện ngắt phần cứng có sẵn mà đã được cho

EVENT

IN

DWord

phép trong cấu hình thiết bị PLC đối với các ngõ vào số hay các bộ đếm tốc độ cao. Nhấp đôi chuột lên trường thông số, sau đó nhấp vào biểu tượng trợ giúp để xem các sự kiện có sẵn. ADD = 0 (mặc định): sự kiện này làm thay thế tất cả những

ADD (chỉ ATTACH)

IN

Bool

đính kèm sự kiện trước đó đối với OB này. ADD = 1: sự kiện này làm thêm vào tất cả những đính kèm sự kiện trước đó đối với OB này

RET_VAL

OUT

Int

Mã điều kiện thực thi

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-125

SIMATIC S7 - 1200

Các sự kiện ngắt phần cứng Các sự kiện ngắt phần cứng sau đây được hỗ trợ bởi CPU:  Sự kiện ngưỡng tăng (tất cả các ngõ vào số CPU tích hợp cùng với bất kỳ các ngõ vào số bảng tín hiệu) -

Một ngưỡng tăng xuất hiện khi ngõ vào số chuyển đổi từ OFF sang ON như một đáp ứng đến một sự thay đổi trong tín hiệu từ một trường thiết bị được kết nối đến ngõ vào.

 Sự kiện ngưỡng giảm (tất cả các ngõ vào số CPU tích hợp cùng với bất kỳ ngõ vào bảng tín hiệu) -

Một ngưỡng giảm xuất hiện khi ngõ vào số chuyển đổi từ ON sang OFF.

 Các sự kiện giá trị hiện thời của bộ đếm tốc độ cao (HSC) = giá trị tham chiếu (CV = RV) với các HSC từ 1 đến 6. -

Một ngắt CV = RV đối với một HSC được sinh ra khi giá trị đếm hiện thời chuyển đổi từ một giá trị gần kề đến giá trị mà đạt đến một giá trị tham chiếu một cách chính xác đã được ấn định trước đó.

 Các sự kiện thay đổi điều khiển HSC (HSC từ 1 đến 6). -

Một sự kiện thay đổi điều khiển xảy ra khi HSC được phát hiện thay đổi từ tăng dần sang giảm dần, hay từ giảm dần sang tăng dần.

 Các sự kiện đặt lại bên ngoài HSC (HSC từ 1 đến 6) -

Chắc chắn các chế độ HSC cho phép sự gán của một ngõ vào số như một sự đặt lại bên ngoài mà được sử dụng để đặt lại giá trị đếm HSC về 0. Một sự kiện đặt lại bên ngoài xuất hiện đối với một vài HSC, khi tín hiệu vào này chuyển đổi từ OFF sang ON.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-126

SIMATIC S7 - 1200

Việc cho phép các sự kiện ngắt phần cứng trong cấu hình thiết bị Các ngắt phần cứng phải được cho phép trong cấu hình thiết bị. Ta phải kiểm tra hộp sự kiện cho phép trong cấu hình thiết bị đối với một kênh ngõ vào số hay một HSC, nếu ta cần gắn kèm sự kiện này trong suốt việc cấu hình hay trong thời gian thực thi. Các tùy chọn hộp chọn bên trong phần cấu hình thiết bị PLC:  Tín hiệu vào số -

Cho phép sự phát hiện ngưỡng tăng

-

Cho phép sự phát hiện ngưỡng giảm

 Bộ đếm tốc độ cao (HSC) -

Cho phép sử dụng bộ đếm tốc độ cao này

-

Sinh ra ngắt khi giá trị bộ đếm bằng với giá trị tham chiếu đếm

-

Sinh ra ngắt cho sự kiện đặt lại bên ngoài

-

Sinh ra ngắt cho sự kiện thay đổi mệnh lệnh

Việc thêm các khối mã OB ngắt phần cứng mới vào chƣơng trình Theo mặc định, không có OB nào được gắn kèm đến một sự kiện khi sự kiện đó được kích hoạt lần đầu tiên. Điều này được chỉ ra bởi nhãn “<not connected>” ở cấu hình thiết bị “HW interrupt:”. Chỉ có các OB ngắt phần cứng mới có thể được gắn kèm đến một sự kiện ngắt phần cứng. Tất cả các OB ngắt phần cứng được tạo sẵn đều xuất hiện trong danh sách thả xuống “HW interrupt:”. Nếu không có OB nào được liệt kê, khi đó ta phải tạo ra một OB hay gõ “Hardware interrupt” như sau. Dưới nhánh “Program blocks” của cây đề án: 1. Nhấp đối chuột vào “Add new block”, chọn “Organization block (OB)” và chọn “Hardware interrupt”. 2. Một cách tùy chọn, ta có thể đổi tên OB, lựa chọn ngôn ngữ lập trình (LAD hay FBD), và lựa chọn số hiệu khối (chuyển sang chế độ thủ công và chọn một số hiệu khối khác với số hiệu được đề nghị).

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-127

SIMATIC S7 - 1200

3. Chỉnh sửa OB và thêm vào phản ứng được lập trình mà ta muốn thực thi khi sự kiện xuất hiện. Ta có thể gọi các FC và FB từ OB này, với một bề dày lồng vào nhau tối đa là 4. Thông số OB_NR Tất cả các tên OB ngắt phần cứng được tạo sẵn xuất hiện trong danh sách thả xuống “HW interrupt:” phần cấu hình thiết bị và trong thông số ATTACH/DETACH ở danh sách thả xuống OB_NR. Thông số EVENT Khi một sự kiện ngắt phần cứng được kích hoạt, một tên gọi sự kiện mặc định đơn nhất được gán cho sự kiện đặc biệt này. Ta có thể thay đổi tên gọi sự kiện này bằng cách chỉnh sửa hộp chỉnh sửa “Event name:”, nhưng phải là một tên đơn nhất. Những tên gọi sự kiện này trở thành tên thẻ ghi trong bảng thẻ ghi “Constants”, và xuất hiện trên thông số EVENT trong danh sách thả xuống đối với các hộp lệnh ATTACH và DETACH. Giá trị của thẻ ghi là một số hiệu nội bộ được sử dụng để nhận dạng sự kiện. Hoạt động chung Mỗi sự kiện phần cứng có thể được đính kèm đến một OB ngắt phần cứng mà OB đó sẽ được xếp hàng cho việc thực thi khi sự kiện ngắt phần cứng xuất hiện. Phần đính kèm sự kiện OB có thể xuất hiện tại thời gian cấu hình hay tại thời gian thực thi. Ta có một tùy chọn để đính kèm hay gỡ bỏ một OB đến một sự kiện được cho phép trong thời gian cấu hình. Để đính kèm một OB đến một sự kiện trong thời gian cấu hình, ta phải sử dụng danh sách thả xuống “HW interrupt:” (nhấp vào mũi tên chỉ xuống ở bên phải) và lựa chọn một OB từ danh sách các OB ngắt phần cứng có sẵn. Lựa chọn tên OB thích hợp từ danh sách này, hay lựa chọn “<not connected>” để gỡ bỏ phần đính kèm. Ta còn có thể đính kèm hay gỡ bỏ một sự kiện ngắt phần cứng được cho phép trong suốt thời gian thực thi. Sử dụng các lệnh lập trình ATTACH hay DETACH trong thời gian thực thi (nhiều lần nếu muốn) để đính kèm hay gỡ bỏ một sự kiện ngắt được CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-128

SIMATIC S7 - 1200

cho phép đến OB thích hợp. Nếu không có OB nào hiện tại được đính kèm (bao gồm từ một lựa chọn “<not connected>” trong cấu hình thiết bị, hay từ một kết quả của việc thực thi lệnh DETACH), sự kiện ngắt phần cứng được cho phép sẽ bị bỏ qua. Hoạt động DETACH Sử dụng lệnh DETACH để gỡ bỏ cả sự kiện riêng biệt hay tất cả các sự kiện từ một OB riêng biệt. Nếu một EVENT được xác định, chỉ có một sự kiện này được gỡ bỏ từ OB_NR được xác định; và bất kỳ sự kiện khác hiện tại được đính kèm đến OB_NR này sẽ vẫn được đính kèm. Nếu không có EVENT được xác định, khi đó tất cả các sự kiện hiện tại được đính kèm đến OB_NR sẽ bị gỡ bỏ. Các mã điều kiện RET_VAL

Trạng thái

(W#16#...)

ENO

0000

1

Không có lỗi

0001

0

Không có gì để gỡ bỏ (chỉ dùng cho DETACH)

8090

0

OB không tồn tại

8091

0

OB sai kiểu

8093

0

Sự kiện không tồn tại

Miêu tả

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-129

SIMATIC S7 - 1200

5.2.6.2.

Các lệnh khởi động và bỏ qua ngắt trì hoãn thời gian.

Ta có thể khởi động và bỏ qua việc xử lý ngắt trì hoãn thời gian với các lệnh SRT_DINT và CAN_DINT. Mỗi ngắt trì hoãn thời gian là một sự kiện một lần mà nó xuất hiện sau một thời gian trì hoãn xác định. Nếu sự kiện trì hoãn thời gian bị bỏ qua trước khi trì hoãn thời gian hết hiệu lực, chương trình ngắt sẽ không xuất hiện. Lệnh SRT_DINT khởi động một ngắt trì hoãn thời gian mà nó thực thi một chương trình con OB (organization block: khối tổ chức) khi thời gian trì hoãn được xác định bởi thông số DTIME đã trôi qua. Lệnh CAN_DINT bỏ qua một ngắt trì hoãn thời gian mà nó vừa mới khởi động. OB ngắt trì hoãn thời gian sẽ không được thực thi trong trường hợp này. Các thông số SRT_DINT Thông số

Kiểu

Kiểu

thông số

dữ liệu

Miêu tả Khối tổ chức (OB) dùng để khởi động sau một trì hoãn thời gian:

OB_NR

IN

Int

Lựa chọn từ các OB ngắt trì hoãn thời gian có sẵn đã được tạo ra sử dụng chức năng “Add new block” ở cây đề án. Nhấp đôi chuột lên trường thông số, sau đó nhấp vào biểu tượng trợ giúp để xem các OB có sẵn. Giá trị trì hoãn thời gian (từ 1 đến 60000 ms)

DTIME

IN

Time

Ta có thể tạo ra các thời gian trì hoãn dài hơn, ví dụ bằng cách sử dụng một bộ đếm bên trong một OB ngắt trì hoãn thời gian.

SIGN

IN

Word

RET_VAL

OUT

Int

Không được sử dụng bởi S7 – 1200; mọi giá trị đều được chấp nhận. Mã điều kiện thực thi

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-130

SIMATIC S7 - 1200

Các thông số CAN_DINT Kiểu

Kiểu

thông số

dữ liệu

OB_NR

IN

Int

RET_VAL

OUT

Int

Thông số

Miêu tả Định danh OB ngắt trì hoãn thời gian. Ta có thể sử dụng một số hiệu OB hay tên gọi ký hiệu. Mã điều kiện thực thi

Hoạt động Lệnh SRT_DINT xác định một trì hoãn thời gian, khởi động bộ định thì trì hoãn thời gian bên trong, và liên kết một chương trình con OB ngắt trì hoãn thời gian với sự kiện hết thời gian chờ có trì hoãn. Khi sự trì hoãn thời gian được định trước đã trôi qua, một ngắt chương trình được sinh ra làm khởi chạy sự thực thi của OB ngắt trì hoãn thời gian có liên quan. Ta có thể bỏ qua một ngắt trì hoãn thời gian trong quá trình trước khi trì hoãn thời gian được định trước xuất hiện, bằng cách thực thi lệnh CAN_DINT. Tổng số lượng trì hoãn thời gian hoạt động và các sự kiện ngắt tuần hoàn theo thời gian không được vượt quá 4. Việc thêm các chƣơng trình con OB ngắt trì hoãn thời gian vào đề án Chỉ có các OB ngắt trì hoãn thời gian mới có thể được gán đến các lệnh SRT_DINT và CAN_DINT. Không có OB ngắt trì hoãn thời gian nào tồn tại trong một đề án mới. Ta phải thêm các OB ngắt trì hoãn thời gian vào đề án. Để tạo ra một OB ngắt trì hoãn thời gian, thực hiện theo các bước sau: 1. Nhấp đôi chuột vào danh mục “Add new block” trong nhánh “Program blocks” của cây đề án, lựa chọn “Organization blocks (OB)”, và chọn “Time delay interrupt”. 2. Ta có tùy chọn để đổi tên OB, lựa chọn ngôn ngữ lập trình, hay lựa chọn số hiệu của khối. Chuyển sang đánh số thủ công nếu muốn gán một số hiệu khối khác với số hiệu đã được gán tự động. 3. Chỉnh sửa chương trình con OB ngắt trì hoãn thời gian và tạo ra phản ứng được lập trình mà ta muốn thực thi khi sự kiện hết thời gian chờ trì hoãn thời gian CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-131

SIMATIC S7 - 1200

xuất hiện. Ta có thể gọi các khối mã FC hay FB khác từ OB ngắt trì hoãn thời gian, với một bề dày lồng vào nhau tối đa bằng 4. 4. Các tên của OB ngắt trì hoãn thời gian được gán mới đây sẽ có sẵn khi ta chỉnh sửa thông số OB_NR của các lệnh SRT_DINT và CAN_DINT. Các mã điều kiện RET_VAL

Miêu tả

(W#16#...) 0000

Không có lỗi nào xuất hiện

8090

Thông số OB_NR không chính xác

8091

Thông số DTIME không chính xác

80A)

Ngắt trì hoãn thời gian đã không khởi động

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-132

SIMATIC S7 - 1200

5.2.6.3.

Các lệnh vô hiệu và cho phép ngắt cảnh báo.

Sử dụng các lệnh DIS_AIRT và EN_AIRT để vô hiệu và cho phép sự xử lý ngắt cảnh báo. Lệnh DIS_AIRT trì hoãn việc xử lý của các sự kiện ngắt mới. Ta có thể thực thi lệnh DIS_AIRT nhiều lần trong một OB. Những sự thực thi DIS_AIRT được đếm bởi hệ điều hành. Mỗi một trong số những thực thi này vẫn còn hiệu lực cho đến khi nó bị hủy bỏ trở lại một cách rõ ràng bởi một lệnh EN_AIRT, hay đến khi OB hiện tại đã được thực thi một cách hoàn thiện. Mỗi một lần được cho phép trở lại, các ngắt đã xuất hiện trong khi DIS_AIRT có hiệu lực thì sẽ được xử lý, hay các ngắt được xử lý ngay khi OB hiện tại đã được thực thi. Lệnh EN_AIRT cho phép việc xử lý các sự kiện ngắt mà ta đã vô hiệu trước đó bằng lệnh DIS_AIRT.

Mỗi sự thực thi DIS_AIRT phải được hủy bỏ bằng một sự thực thi EN_AIRT. Nếu ví dụ ta đã vô hiệu các ngắt 5 lần bằng 5 thực thi DIS_AIRT, ta phải hủy bỏ những thực thi này bằng 5 thực thi EN_AIRT. Các sự thực thi EN_AIRT phải xuất hiện bên trong một OB giống nhau, hay bất kỳ FC hay FB nào được gọi từ một OB giống nhau, trước khi các ngắt được cho phép trở lại đối với OB này. Thông số RET_VAL chỉ ra số lần mà việc xử lý ngắt đã bị vô hiệu, cũng là số lượng các thực thi DIS_AIRT được xếp hàng. Việc xử lý ngắt chỉ được cho phép trở lại khi thông số RET_VAL = 0. Thông số

RET_VAL

Kiểu

Kiểu

thông số

dữ liệu

OUT

Int

Miêu tả Số lượng các trì hoãn = số lượng các thực thi DIS_AIRT được xếp hàng.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-133

SIMATIC S7 - 1200

5.2.7. Điều khiển PID. Câu lệnh “PID_Compact” tạo ra một bộ điều khiển PID với sự tự điều chỉnh tối ưu dành cho chế độ tự động hay thủ công sẵn có.

5.2.8. Các lệnh điều khiển chuyển động. Các lệnh điều khiển chuyển động sử dụng một khối dữ liệu công nghệ có liên quan và PTO (pulse train outputs: các ngõ ra chuỗi xung) chuyên dùng của CPU để điều khiển chuyển động trên một trục. CHÚ Ý Tần số xung tối đa của các máy phát ngõ ra xung là 100 kHz đối với các ngõ ra số của CPU và 20 kHz đối với các ngõ ra số của bảng tín hiệu. Tuy nhiên, phần mềm STEP 7 Basic không cảnh báo khi ta cấu hình một trục mà với một tần số hay tốc độ tối đa vượt quá giới hạn phần cứng này. Điều này có thể gây ra các vấn đề với ứng dụng, do vậy luôn luôn chắc chắn rằng ta không vượt quá tần số xung tối đa của phần cứng.

MC_Power cho phép và vô hiệu một trục điều khiển chuyển động.

MC_Reset đặt lại tất cả các lỗi điều khiển chuyển động. Tất cả các lỗi điều khiển chuyển động có thể biết được đều đã được biết.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-134

SIMATIC S7 - 1200

MC_Home thành lập mối quan hệ giữa chương trình điều khiển trục và hệ thống định vị cơ học trục.

MC_Halt hủy bỏ tất cả

MC_MoveJog thực thi

việc xử lý chuyển động và

chế độ chạy chậm dành

làm chuyển động theo

cho các mục đích kiểm tra

trục dừng lại. Vị trí dừng

và khởi động.

không được định rõ.

MC_MoveAbsolute khởi

MC_MoveRelative

động chuyển động đến

động một chuyển động

cho trục di chuyển với tốc

một vị trí tuyệt đối. Chức

định vị có liên quan đến

độ xác định.

năng kết thúc khi vị trí

vị trí khởi đầu.

khởi

MC_MoveVelocity

làm

đích được đạt đến.

Lƣu ý Các ngõ ra chuỗi xung không thể đƣợc sử dụng bởi các lệnh khác trong chƣơng trình ngƣời dùng. Khi ta cấu hình các ngõ ra của CPU hay bảng tín hiệu như một máy phát xung (để sử dụng các lệnh PWM hay điều khiển chuyển động cơ bản), các địa chỉ ngõ ra tương ứng (Q0.0, Q0.1, Q4.0 và Q4.1) được loại ra khỏi bộ nhớ Q và không thể được sử dụng cho các mục đích khác trong chương trình. Nếu chương trình ghi một giá trị đến một ngõ ra được sử dụng như máy phát xung, CPU sẽ không ghi giá trị đó đến ngõ ra vật lý. CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-135

SIMATIC S7 - 1200

5.2.9. Lệnh xung. 5.2.9.1.

Lệnh CTRL_PWM

Lệnh điều chế độ rộng xung CTRL_PWM mang lại một ngõ ra thời gian tuần hoàn cố định với một chu kỳ tải biến thiên. Ngõ ra PWM hoạt động một cách liên tục sau khi được khởi động tại tần số (thời gian chu trình) xác định. Độ rộng xung được biến đổi theo như yêu cầu để tác động điều khiển được mong muốn. Độ rộng xung có thể được biểu thị theo phần trăm của thời gian chu trình (0 – 100), theo phần ngàn (0 – 1000), theo phần mười ngàn (0 – 10000) hay theo định dạng kiểu tương tự của S7. Độ rộng xung có thể biến đổi từ 0 (không có xung, luôn tắt) đến hết mức (không có xung, luôn bật). Do ngõ ra PWM có thể được điều chỉnh từ 0 đến hết mức, nó mang lại một tín hiệu ra kiểu số mà trong nhiều trường hợp giống như một tín hiệu ra kiểu tương tự. Ví dụ, tín hiệu ra PWM có thể được sử dụng để điều khiển tốc độ của một động cơ từ đứng yên sang tốc độ tối đa, hay nó có thể được sử dụng để điều khiển vị trí của một van từ đóng sang mở hoàn toàn. Hai máy phát xung có sẵn cho việc điều khiển các hàm ngõ ra xung tốc độ cao: PWM và PTO. PTO được sử dụng bằng các lệnh điều khiển chuyển động. Ta có thể chỉ định mỗi máy phát xung đến cả PWM hay PTO, nhưng không thể đến cả hai cùng một lúc. Hai máy phát xung được sắp xếp để xác định các ngõ ra kiểu số như được thể hiện ở bảng sau đây. Ta có thể sử dụng các ngõ ra của CPU tích hợp, hay có thể sử dụng các ngõ ra của bảng tín hiệu tùy chọn. Các số hiệu điểm ngõ ra được thể hiện trong bảng sau đây (giả sử theo cấu hình ngõ ra mặc định). Nếu ta thay đổi cách đánh số điểm ngõ ra, các số hiệu điểm ngõ ra sẽ theo như ta chỉ định. Bất chấp điều này, PTO1/PWM1 sử dụng hai ngõ ra số đầu tiên, và PTO2/PWM2 sử dụng hai ngõ ra số tiếp theo, dù là trên CPU hay trên bảng tín hiệu gắn kèm. Lưu ý rằng PWM chỉ yêu CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-136

SIMATIC S7 - 1200

cầu có 1 ngõ ra, trong khi PTO có thể sử dụng một cách tùy chọn 2 ngõ ra trên mỗi kênh. Nếu một ngõ ra không được đòi hỏi đối với một hàm xung, nó sẽ sẵn sàng cho những mục đích khác. Phân nhiệm ngõ ra mặc định

Miêu tả

Xung

Lệnh

CPU tích hợp

Q0.0

Q0.1

Bảng tín hiệu

Q4.0

Q4.1

CPU tích hợp

Q0.0

__

Bảng tín hiệu

Q4.0

__

CPU tích hợp

Q0.2

Q0.3

Bảng tín hiệu

Q4.2

Q4.3

CPU tích hợp

Q0.2

__

Bảng tín hiệu

Q4.2

__

PTO1

PWM1

PTO2

PWM2

Cấu hình một kênh xung cho PWM Để chuẩn bị cho sự vận hành PWM, cấu hình trước tiên một kênh xung trong phần cấu hình thiết bị bằng cách lựa chọn CPU, sau đó là Pulse Generator (PTO/PWM), và chọn PWM1 hay PWM2. Khởi động máy phát xung (hộp chọn). Nếu một máy phát xung được khởi động, một tên gọi mặc định đơn nhất được gán cho máy phát xung riêng biệt này. Ta có thể thay đổi tên bằng cách chỉnh sửa nó trong hộp chỉnh sửa “Name:”, nhưng nó phải là một tên đơn nhất. Các tên gọi của các máy phát xung được khởi động sẽ trở thành các thẻ ghi trong bảng thẻ “constant”, và sẽ có sẵn để dùng như một thông số PWM của lệnh CTRL_PWM.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-137

SIMATIC S7 - 1200 CHÚ Ý Tần số xung tối đa của các máy phát ngõ ra xung là 100 kHz đối với các ngõ ra số của CPU và 20 kHz đối với các ngõ ra số của bảng tín hiệu. Tuy nhiên phần mềm STEP 7 Basic không cảnh báo khi ta cấu hình một trục với tần số hay tốc độ tối đa vượt quá giới hạn phần cứng này. Điều này có thể gây ra các vấn đề với ứng dụng, do vậy luôn luôn chắc chắn rằng ta không vượt quá tần số xung tối đa của phần cứng.

Ta có tùy chọn để đổi tên máy phát xung, thêm một dòng chú giải, và gán các thông số như sau:  Mát phát xung được sử dụng như sau: PWM hay PTO (chọn PWM)  Nguồn đưa ra: CPU tích hợp hay bảng tín hiệu  Cơ sở thời gian: mili giây hay micro giây  Định dạng độ rộng xung: -

Phần trăm (0 đến 100)

-

Phần ngàn (0 đến 1000)

-

Phần mười ngàn (0 đến 10000)

-

Định dạng kiểu tương tự của S7 (0 đến 27648)

 Thời gian chu trình: nhập vào giá trị thời gian chu trình. Giá trị này chỉ có thể được thay đổi trong phần cấu hình thiết bị (Device configuration).  Độ rộng xung ban đầu: nhập vào giá trị độ rộng xung ban đầu. Giá trị độ rộng xung có thể được thay đổi trong suốt thời gian vận hành. Các địa chỉ ngõ ra

Địa chỉ khởi đầu: nhập vào địa chỉ ký tự Q ở nơi mà ta muốn đặt giá trị độ rộng xung. Vị trí mặc định là QW1000 đối với PWM1, và QW1002 đối với PWM2. Giá trị tại vị trí này điều khiển bề rộng của xung và được khởi chạy đến giá trị “Initial pulse CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-138

SIMATIC S7 - 1200

width:” đã được xác định ở trên trong mỗi lần CPU chuyển từ chế độ STOP sang RUN. Ta thay đổi giá trị ký tự Q này trong suốt thời gian thực thi để tạo nên một thay đổi trong độ rộng xung. Thông số

Kiểu

Kiểu dữ

Giá trị

thông số

liệu

ban đầu

Miêu tả Định danh PWM: Tên gọi của các máy phát xung được khởi

PWM

IN

Word

0

động sẽ trở thành các thẻ ghi trong bảng ghi “constant”, và sẽ có sẵn để sử dụng như một thông số PWM. 1 = khởi động máy phát xung

ENABLE

IN

Bool

BUSY

OUT

Bool

0

Chức năng bận rộn

STATUS

OUT

Word

0

Mã điều kiện thực thi

0 = dừng máy phát xung

Hoạt động Một khối dữ liệu (DB) được sử dụng bởi lệnh CTRL_PWM để lưu trữ các thông tin về thông số. Khi đặt một lệnh CTRL_PWM vào trong trình soạn thảo chương trình, một DB sẽ được gán giá trị. Các thông số của khối dữ liệu thì không được thay đổi một cách riêng biệt bởi người sử dụng, nhưng chúng được điều khiển bởi lệnh CTRL_PWM. Ta xác định máy phát xung được khởi động để sử dụng, bằng cách sử dụng tên thẻ ghi cho thông số PWM. Khi ngõ vào EN là “TRUE”, lệnh CTRL_PWM khởi động hay dừng PWM được nhận dạng dựa vào giá trị tại ngõ vào ENABLE. Độ rộng xung được xác định bởi giá trị trong địa chỉ ngõ ra ký tự Q có liên quan. Vì S7 – 1200 xử lý yêu cầu khi lệnh CTRL_PWM được thực thi, thông số BUSY sẽ luôn luôn thuật lại giá trị “FALSE” trên các kiểu CPU S7 – 1200. CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-139

SIMATIC S7 - 1200

Nếu có một lỗi được phát hiện, khi đó ENO được đặt về “FALSE”, và thông số STATUS chứa một mã điều kiện. Độ rộng xung sẽ được đặt về giá trị ban đầu được cấu hình trong phần cấu hình thiết bị khi PLC đi vào chế độ RUN lần đầu tiên. Ta ghi các các giá trị đến vị trí ký tự Q được xác định trong cấu hình thiết bị (“Output addresses”/“Start address:”) như là cần thiết để thay đổi bề rộng xung. Ta sử dụng một lệnh như các hộp di chuyển, chuyển đổi, tính toán hay PID để ghi độ rộng xung mong muốn đến ký tự Q thích hợp. Ta phải sử dụng phạm vi hợp lệ đối với giá trị ký tự Q (phần trăm, phần ngàn, phần mười ngàn hay định dạng kiểu tương tự của S7). Các mã điều kiện Giá trị STATUS

Miêu tả

0

Không có lỗi

80A1

Bộ định danh PWM không ghi địa chỉ một PWM hợp lệ

Không thể cƣỡng ép các điểm I/O kiểu số đƣợc gán đến PWM hay PTO Các điểm I/O kiểu số được sử dụng bởi các thiết bị điều chế độ rộng xung (PWM) hay ngõ ra chuỗi xung (PTO) đều được gán giá trị trong suốt việc cấu hình thiết bị. Khi các địa chỉ điểm I/O kiểu số được gán giá trị đến các thiết bị này, các giá trị của các địa chỉ điểm I/O được gán không thể được chỉnh sửa bằng thế vị bảng Watch. Các ngõ ra chuỗi xung không thể đƣợc sử dụng bởi các lệnh khác trong chƣơng trình ngƣời dùng Khi ta cấu hình các ngõ ra của CPU hay bảng tín hiệu đóng vai trò như một máy phát xung (để sử dụng với các lệnh PWM hay lệnh điều khiển chuyển động cơ bản), các địa chỉ ngõ ra tương ứng (Q0.0, Q0.1, Q4.0 và Q4.1) được di chuyển khỏi bộ nhớ Q và không thể được sử dụng cho các mục đích khác trong chương trình người dùng. Nếu chương trình người dùng ghi một giá trị đến một ngõ ra được sử dụng như một máy phát xung, CPU sẽ không ghi giá trị đó đến ngõ ra vật lý. CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-140

SIMATIC S7 - 1200

5.3.

Tập lệnh thƣ viện tổng thể. 5.3.1. USS. Thư viện giao thức USS thực hiện việc điều khiển các bộ điều khiển Siemens có

hỗ trợ giao thức USS. Tập lệnh bao gồm các hàm được thiết kế riêng biệt cho việc sử dụng giao thức USS để giao tiếp với bộ điều khiển. Module CM 1241 RS485 giao tiếp với các bộ điều khiển trên cổng RS 485. Ta có thể điều khiển bộ điều khiển vật lý và đọc/ghi các thông số truyền động với thư viện USS. 5.3.1.1.

Các yêu cầu đối với việc sử dụng giao thức USS.

Thư viện cung cấp 1 FB và 3 FC để hỗ trợ giao thức USS. Mỗi module truyền thông CM 1241 RS 485 hỗ trợ tối đa là 16 bộ điều khiển. Một Instance Data Block (khối dữ liệu tạm thời) đơn chứa khu lưu trữ tạm thời và các bộ đệm cho tất cả các bộ điều khiển trên mạng USS được kết nối tới mỗi module truyền thông PtP mà ta cài đặt. Các hàm USS cho những bộ điều khiển này sẽ chia sẻ thông tin trong khối dữ liệu này.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-141

SIMATIC S7 - 1200

Tất cả các bộ điều khiển (tối đa đến 16) được kết nối đến một CM 1241 RS485 đơn lẻ là một phần của cùng một mạng USS. Tất cả các bộ điều khiển được kết nối đến một CM 1241 RS485 khác là một phần của mạng USS khác. Vì S7 – 1200 hỗ trợ đến tối đa 3 thiết bị CM 1241 RS485, ta có thể có tối đa 3 mạng USS, với tối đa 16 bộ điều khiển trên mỗi mạng, tổng cộng là 48 bộ điều khiển USS được hỗ trợ. Mỗi mạng USS được quản lý để sử dụng một khối dữ liệu đơn nhất (3 khối dữ liệu được yêu cầu cho 3 mạng USS sử dụng 3 thiết bị CM 1241 RS485). Tất cả các lệnh liên quan đến một mạng USS đơn lẻ đều phải chia sẻ khối dữ liệu này. Điều này bao gồm tất cả các lệnh USS_DRV, USS_PORT, USS_RPM và USS_WPM được sử dụng để điều khiển tất cả các bộ điều khiển trên một mạng USS đơn lẻ. Lệnh USS_DRV là một Function Block (khối chức năng – FB). Khi ta đặt lệnh USS_DRV vào trong trình soạn thảo, ta sẽ được nhắc bởi hộp thoại “Call options” dành cho DB mà để gán cho FB này. Nếu đây là lệnh USS_DRV đầu tiên trong chương trình cho mạng USS này, ta có thể chấp nhận việc gán DB mặc định (hay thay CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-142

SIMATIC S7 - 1200

đổi tên nếu muốn), và DB mới sẽ được tạo ra cho ta. Tuy nhiên nếu đây không phải là lệnh USS_DRV đầu tiên cho kênh này, khi đó ta phải sử dụng danh sách thả xuống trong hộp thoại “Call options” để lựa chọn DB thích hợp mà đã được gán trước đó cho mạng USS này. Các lệnh USS_PORT, USS_RPM, USS_WPM đều là các FC. Không có DB nào được gán khi ta đặt các FC này trong trình soạn thảo. Thay vào đó, ta phải gán DB thích hợp vào ngõ vào “USS_DB” của các lệnh này (nhấp đôi chuột lên trường thông số, sau đó nhấp vào biểu tượng trợ giúp để xem các DB có sẵn). Hàm USS_PORT thực hiện giao tiếp thực tại giữa CPU và các bộ điều khiển thông qua module truyền thông PtP. Mỗi lệnh gọi hàm này sẽ thực thi một giao tiếp với một bộ điều khiển. Chương trình phải gọi hàm này đủ nhanh để ngăn ngừa một sự hết thời gian giao tiếp bởi các bộ điều khiển. Ta có thể gọi hàm này trong phần Main hay trong mọi OB ngắt. Khối chức năng USS_DRV cung cấp cho chương trình truy xuất đến một bộ điều khiển xác định trên mạng USS. Các tín hiệu vào và tín hiệu ra của nó là trạng thái và các điều khiển cho bộ điều khiển. Nếu có 16 bộ điều khiển trên một mạng, chương trình phải có ít nhất 16 lệnh gọi USS_DRV, mỗi lệnh dành cho một bộ điều khiển. Các khối này nên được gọi với mức cần thiết để điều khiển các chức năng của bộ điều khiển. Ta chỉ có thể gọi khối hàm USS_DRV từ OB chính. CHÚ Ý Chỉ gọi USS_DRV, USS_RPM, USS_WPM từ OB chính. Hàm USS_PORT có thể được gọi từ một OB bất kỳ, thường là từ một ngắt trì hoãn thời gian. Sự thất bại trong việc ngăn ngừa sự ngắt của lệnh USS_PORT có thể tạo ra các lỗi không mong muốn.

Các hàm USS_RPM và USS_WPM đọc và ghi các thông số hoạt động của bộ điều khiển từ xa. Các thông số này điều khiển sự hoạt động bên trong của bộ điều khiển. Chương trình có thể chứa nhiều như mong muốn các chức năng này, nhưng chỉ CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-143

SIMATIC S7 - 1200

có một yêu cầu đọc hay ghi có thể hoạt động trên mỗi bộ điều khiển, tại bất kỳ thời gian đã cho nào. Ta chỉ có thể gọi các hàm USS_RPM và USS_WPM từ một OB chính. Việc tính toán thời gian cần thiết cho việc giao tiếp với bộ điều khiển Các giao tiếp với bộ điều khiển thì không đồng bộ với sự quét của S7 – 1200. S7 – 1200 điển hình hoàn thành một vài sự quét trước khi một giao tác truyền thông bộ điều khiển được hoàn thành. Khoảng thời gian dừng của USS_PORT là thời gian cần thiết cho một giao tác truyền động. Bảng dưới đây chỉ ra khoảng dừng tối thiểu đối với mỗi tốc độ baud. Việc gọi lệnh USS_PORT một cách thường xuyên hơn so với khoảng dừng sẽ không làm tăng số lượng các thực thi. Khoảng dừng hết thời gian chờ truyền động là lượng thời gian có thể được dùng cho một giao tác, nếu các lỗi truyền thông đã gây ra 3 lần thử để hoàn thành giao tác. Theo mặc định, thư viện nghi thức USS thực hiện một cách tự động tối đa 2 lần thử lại trên mỗi giao tác. Tốc độ Baud

Khoảng thời gian dừng gọi USS_PORT Hết thời gian chờ khoảng dừng tối thiểu đƣợc tính toán (mili giây)

thông điệp điều khiển (mili giây)

1200

790

2370

2400

405

1215

4800

212,5

638

9600

116,3

349

19200

68,2

205

38400

44,1

133

57600

36,1

109

115200

28,1

85

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-144

SIMATIC S7 - 1200

5.3.1.2.

Lệnh USS_DRV.

Lệnh USS_DRV trao đổi dữ liệu với bộ điều khiển bằng cách tạo ra các thông điệp yêu cầu và diễn dịch các thông điệp phản hồi của bộ điều khiển. Một khối hàm riêng biệt sẽ được sử dụng cho mỗi bộ điều khiển, nhưng tất cả các hàm USS có liên quan đến một mạng USS và một module truyền thông PtP phải sử dụng một Instance Data Block giống nhau. Ta phải đặt tên DB khi ta đặt lệnh USS_DRV đầu tiên và ta sử dụng lại DB đã được tạo ra trong lần sử dụng lệnh ban đầu. Khi sự thực thi USS_DRV đầu tiên được thực hiện, bộ điều khiển được chỉ ra bởi địa chỉ USS (thông số DRIVE) sẽ được khởi chạy trong Instance DB. Sau sự khởi tạo này, những sự thực thi xảy ra sau của USS_PORT có thể bắt đầu việc giao tiếp đến bộ điều khiển tại số hiệu của bộ điều khiển này. Việc thay đổi số hiệu bộ điều khiển sẽ yêu cầu một sự chuyển đổi từ chế độ STOP sang RUN của PLC mà sự chuyển đổi này khởi chạy Instance DB. Các thông số ngõ vào được cấu hình vào trong bộ đệm thông điệp USS TX và các ngõ ra được đọc từ một bộ đệm phản hồi hợp lệ “kề trước” nếu có bộ đệm nào tồn tại. Không có sự truyền phát dữ liệu nào trong suốt việc thực thi USS_DRV. Các bộ điều khiển được giao tiếp với khi USS_PORT được thực thi. USS_DRV chỉ cấu hình thông điệp dùng để gửi và diễn dịch dữ liệu mà có thể đã vừa được nhận từ một yêu cầu kề trước đó. Ta có thể điều khiển hướng quay của bộ điều khiển bằng cách sử dụng ngõ vào DIR (Bool) hay sử dụng dấu (dương hoặc âm) với ngõ vào SPEED_SP (Real). Bảng sau đây chỉ ra cách thức các ngõ vào này làm việc với nhau để xác định hướng điều khiển, giả sử rằng động có được nối dây để quay thuận. SPEED_SP

DIR

Mệnh lệnh điều khiển

Giá trị > 0

0

Quay nghịch

Giá trị > 0

1

Quay thuận

Giá trị < 0

0

Quay thuận

Giá trị < 0

1

Quay nghịch

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-145

SIMATIC S7 - 1200

LAD (kiểu xem mặc định)

LAD (kiểu xem mở rộng).

Mở rộng hộp để biểu lộ tất cả các thông số bằng cách nhấp chuột phía dưới của hộp. Các đầu thông số được tô màu xám là tùy chọn và không cần được gán giá trị.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-146

SIMATIC S7 - 1200

Kiểu

Kiểu dữ

thông số

liệu

RUN

IN

Bool

OFF2

IN

Bool

Thông số

Miêu tả

Bit khởi động bộ điều khiển: khi đúng, ngõ vào này cho phép bộ điều khiển vận hành tại tốc độ đặt trước. Bit dừng bằng điện: khi sai, bit này làm cho bộ điều khiển đi dần đến trạng thái dừng mà không có hãm. Bit dừng nhanh: khi sai, bit này gây ra một sự dừng nhanh OFF3

IN

Bool

bằng cách gây nên việc hãm bộ điều khiển hơn là chỉ cho phép bộ điều khiển đi dần đến trạng thái dừng. Bit nhận biết lỗi: bit này được đặt để khôi phục lại bit lỗi trên bộ điều khiển. Bit này được đặt sau khi lỗi được xóa để

F_ACK

IN

Bool

chỉ ra đến bộ điều khiển rằng nó không còn cần chỉ ra lỗi kề trước đó. Điều chỉnh chiều điều khiển: bit này được đặt để chỉ ra rằng

DIR

IN

Bool

chiều quay là thuận (đối với SPEED_SP dương). Địa chỉ điều khiển: ngõ vào này là địa chỉ của bộ điều khiển

DRIVE

IN

USInt

USS. Phạm vi hợp lệ là từ bộ điều khiển 1 đến bộ điều khiển 16. Chiều dài ký tự – Đây là số lượng các ký tự của dữ liệu

PZD_LEN

IN

USInt

PZD. Các giá trị hợp lệ là 2, 4, 6 hay 8 ký tự. Mặc định là 2. Điểm đặt tốc độ – Đây là tốc độ của bộ điều khiển theo tỷ lệ

SPEED_SP

IN

Real

phần trăm của tần số được cấu hình. Một giá trị dương xác định rằng chiều quay là thuận (khi DIR là đúng). Ký tự điều khiển 3 – Một giá trị được ghi đến thông số có

CTRL3

IN

UInt

thể cấu hình bởi người dùng trên bộ điều khiển. Người sử dụng phải cấu hình thông số này. Đây là thông số tùy chọn.

Ký tự điều khiển 4 – Một giá trị được ghi đến thông số có CTRL4

IN

UInt

thể cấu hình bởi người dùng trên bộ điều khiển. Người sử dụng phải cấu hình thông số này. Đây là thông số tùy chọn.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-147

SIMATIC S7 - 1200

Ký tự điều khiển 5 – Một giá trị được ghi đến thông số có CTRL5

IN

UInt

thể cấu hình bởi người dùng trên bộ điều khiển. Người sử dụng phải cấu hình thông số này. Đây là thông số tùy chọn. Ký tự điều khiển 6 – Một giá trị được ghi đến thông số có

CTRL6

IN

UInt

thể cấu hình bởi người dùng trên bộ điều khiển. Người sử dụng phải cấu hình thông số này. Ký tự điều khiển 7 – Một giá trị được ghi đến thông số có

CTRL7

IN

UInt

thể cấu hình bởi người dùng trên bộ điều khiển. Người sử dụng phải cấu hình thông số này. Đây là thông số tùy chọn.

Ký tự điều khiển 8 – Một giá trị được ghi đến thông số có CTRL8

IN

UInt

thể cấu hình bởi người dùng trên bộ điều khiển. Người sử dụng phải cấu hình thông số này. Đây là thông số tùy chọn. Dữ liệu mới sẵn sàng – Khi đúng, bit này cho thấy rằng các

NDR

OUT

Bool

ngõ ra chứa dữ liệu từ một yêu cầu truyền thông mới. Lỗi đã xuất hiện – Khi đúng, thông số này chỉ ra rằng một lỗi đã xuất hiện và ngõ ra STATUS là hợp lệ. Tất cả các

ERROR

OUT

Bool

ngõ ra khác được đặt về 0 khi có lỗi. Các lỗi truyền thông chỉ được báo cáo trên các ngõ ra ERROR và STATUS của lệnh USS_PORT. Giá trị trạng thái của yêu cầu. Nó chỉ ra kết quả của quá

STATUS

OUT

Bool

trình quét. Đây không phải là ký tự trạng thái được trả về từ bộ điều khiển. Vận hành được cho phép – Bit này chỉ ra khi nào bộ điều

RUN_EN

OUT

Bool

D_DIR

OUT

Bool

INHIBIT

OUT

Bool

khiển đang vận hành. Chiều điều khiển – Bit này chỉ ra khi nào bộ điều khiển đang vận hành theo chiều thuận. Truyền động bị ngăn chặn – Bit này chỉ ra trạng thái của bit ngăn chặn trên bộ điều khiển.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-148

SIMATIC S7 - 1200 Lỗi điều khiển – Bit này chỉ ra rằng bộ điều khiển đã vừa FAULT

OUT

Bool

ghi vào bộ nhớ một lỗi. Người sử dụng phải sửa chữa vấn đề và sau đó đặt bit F_ACK để xóa bit này khi nó được đặt. Drive Current Speed (giá trị theo tỷ lệ của ký tự trạng thái

SPEED

OUT

Real

điều khiển 2) – Giá trị của tốc độ của bộ điều khiển theo tỷ lệ phần trăm của tốc độ được cấu hình. Drive Status Word 1 – giá trị này chứa các bit trạng thái cố

STATUS1

OUT

UInt

STATUS3

OUT

UInt

STATUS4

OUT

UInt

STATUS5

OUT

UInt

STATUS6

OUT

UInt

STATUS7

OUT

UInt

STATUS8

OUT

UInt

định của một bộ điều khiển. Drive Status Word 3 – giá trị này chứa một ký tự trạng thái có thể cấu hình bởi người dùng trên bộ điều khiển. Drive Status Word 4 – giá trị này chứa một ký tự trạng thái có thể cấu hình bởi người dùng trên bộ điều khiển. Drive Status Word 5 – giá trị này chứa một ký tự trạng thái có thể cấu hình bởi người dùng trên bộ điều khiển. Drive Status Word 6 – giá trị này chứa một ký tự trạng thái có thể cấu hình bởi người dùng trên bộ điều khiển. Drive Status Word 7 – giá trị này chứa một ký tự trạng thái có thể cấu hình bởi người dùng trên bộ điều khiển. Drive Status Word 8 – giá trị này chứa một ký tự trạng thái có thể cấu hình bởi người dùng trên bộ điều khiển.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-149

SIMATIC S7 - 1200

5.3.1.3.

Lệnh USS_PORT.

Lệnh USS_PORT thực hiện việc truyền thông thông qua mạng USS. Thông thường chỉ có một hàm USS_PORT cho mỗi module truyền thông PtP trong chương trình, và mỗi một lần gọi của chức năng này sẽ thực hiện một sự truyền tải đi đến hay đi từ một bộ điều khiển đơn lẻ. Chương trình phải thực thi lệnh USS_PORT đủ thường xuyên để ngăn ngừa sự hết thời gian chờ điều khiển. Tất cả các hàm USS có liên quan với một mạng USS và module truyền thông PtP phải sử dụng Instance Data Block giống nhau. USS_PORT thường được gọi từ một OB ngắt có trì hoãn thời gian để ngăn ngừa sự hết thời gian chờ điều khiển và giữ các cập nhật dữ liệu USS gần đây nhất có sẵn cho các lần gọi USS_DRV.

Thông số

Kiểu

Kiểu dữ

thông số

liệu

Miêu tả Module truyền thông PtP. Định danh: đây là một hằng số mà

PORT

IN

Port

có thể được tham chiếu bên trong thẻ “Constant” của bảng ghi tên mặc định.

BAUD

IN

DInt

Tốc độ Baud được sử dụng cho truyền thông USS. Đây là một tham chiếu đến DB tức thời được tạo ra và được

USSS_DB

IN

DInt

khởi chạy khi một lệnh USS_DRV được đặt vào chương trình.

ERROR

OUT

Bool

Khi đúng, chân này chỉ ra rằng có một lỗi đã vừa xuất hiện và ngõ ra STATUS là hợp lệ. Giá trị trạng thái của yêu cầu. Nó chỉ ra kết quả của việc quét

STATUS

OUT

UInt

hay sự khởi chạy. Thông tin thêm có sẵn trong biến “USS_Extended_Error” đối với một số mã trạng thái.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-150

SIMATIC S7 - 1200

5.3.1.4.

Lệnh USS_RPM.

Lệnh USS_RPM đọc một thông số từ bộ điều khiển. Tất cả các hàm USS có liên quan với một mạng USS và module truyền thông PtP phải sử dụng khối dữ liệu giống nhau. USS_RPM phải được gọi từ OB chính.

Thông số

Kiểu thông số

Kiểu dữ liệu

Miêu tả Gửi yêu cầu: khi đúng, nó chỉ ra rằng một yêu cầu đọc

REQ

IN

Bool

mới được ra lệnh. Điều này được bỏ qua nếu yêu cầu đối với thông số này vẫn đang chưa giải quyết. Địa chỉ điều khiển: ngõ vào này là địa chỉ của bộ điều

DRIVE

IN

USInt

khiển USS. Phạm vi hợp lệ là bộ điều khiển số 1 đến số 16. Số hiệu thông số: ngõ vào này chỉ định thông số điều

PARAM

IN

UInt

khiển nào được ghi. Phạm vị của thông số này là từ 0 đến 2047. Chỉ số thông số: ngõ vào này định rõ chỉ số Drive Parameter nào dùng để ghi. Đây là một giá trị 16 bit

INDEX

IN

UInt

trong đó byte có trọng số nhỏ nhất là giá trị chỉ số thực tại với phạm vi từ 0 đến 255. Byte có trọng số lớn nhất còn có thể được sử dụng bởi bộ điều khiển và là đặc trưng của bộ điều khiển. Đây là một tham chiếu đến DB tức thời mà được tạo ra

USS_DB

IN

Variant

và được khởi chạy khi một lệnh USS_RDV được đặt vào trong chương trình.

Word, Int, UInt, VALUE

IN

DWord, DInt, UDInt, Real

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Đây là giá trị của thông số mà đã được đọc và chỉ hợp lệ khi bit DONE là đúng.

Trang 5-151

SIMATIC S7 - 1200 DONE: khi là TRUE, thông số này chỉ ra rằng ngõ ra VALUE chứa đựng giá trị thông số đã đọc được yêu cầu trước đó. Bit này được đặt khi USS_DRV nhìn thấy dữ liệu phản hồi được đọc từ bộ điều khiển. DONE

OUT

Bool

Bit này được đặt lại khi: 

Hoặc ta yêu cầu dữ liệu phản hồi thông qua một sự kiểm tra vòng USS_RPM khác.



Hoặc trên lần gọi thứ hai của 2 lần gọi tiếp theo đối với USS_DRV.

Lỗi đã xuất hiện – Khi đúng, thông số này chỉ ra rằng có một lỗi đã xuất hiện và ngõ ra STATUS là hợp lệ. ERROR

OUT

Bool

Tất cả các ngõ ra khác được đặt về 0 khi có lỗi. Các lỗi truyền thông chỉ được báo cáo lại trên các ngõ ra ERROR và STATUS của lệnh USS_PORT. Đây là giá trị trạng thái của yêu cầu. Nó chỉ ra kết quả

STATUS

OUT

UInt

của yêu cầu đọc. Thông tin thêm có sẵn trong biến “USS_Extended_Error” đối với một số mã trạng thái.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-152

SIMATIC S7 - 1200

5.3.1.5.

Lệnh USS_WPM.

Lệnh USS_WPM sửa đổi một thông số trong bộ điều khiển. Tất cả các hàm USS có liên quan với một mạng USS và module truyền thông PtP phải sử dụng khối dữ liệu giống nhau. USS_PWM phải được gọi từ OB chính.

Lƣu ý Các hoạt động ghi EPPROM Thận trọng với việc sử dụng quá mức hoạt động ghi vĩnh viễn EPPROM. Tối thiểu hóa số lượng các hoạt động ghi EPPROM để tăng tuổi thọ của EPPROM.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-153

SIMATIC S7 - 1200

Thông số

Kiểu thông số

Kiểu dữ liệu

Miêu tả

Gửi yêu cầu: Khi đúng, nó chỉ ra rằng một yêu cầu ghi REQ

IN

Bool

mới được ra lệnh. Thông số này được bỏ qua nếu yêu cầu đối với thông số này vẫn đang chưa giải quyết.

Địa chỉ truyền động: ngõ vào này là địa chỉ của bộ điều DRIVE

IN

USInt

khiển USS. Phạm vi hợp lệ là từ bộ điều khiển 1 đến bộ điều khiển 16. Số hiệu thông số: ngõ vào này định rõ bộ điều khiển

PARAM

IN

UInt

nào được ghi. Phạm vi của thông số này là từ 0 đến 2047.

Chỉ số thông số: ngõ vào này định rõ chỉ số Drive Parameter nào được ghi. Đây là một giá trị 16 bit trong INDEX

IN

UInt

đó byte có trọng số nhỏ nhất là giá trị chỉ số thực tại với phạm vi từ 0 đến 255. Byte có trọng số lớn nhất còn có thể được sử dụng bởi bộ điều khiển và là đặc trưng bộ điều khiển.

Lưu trữ đến EPPROM của bộ điều khiển: Khi đúng, việc ghi đến thông số bộ điều khiển sẽ được lưu trữ EPPROM

IN

Bool

trong EPPROM của bộ điều khiển. Nếu sai, việc ghi là tạm thời và sẽ không được giữ lại nếu bộ điều khiển được cấp điện theo chu trình.

Word, Int, VALUE

IN

UInt, DWord,

Giá trị của thông số dùng để ghi. Nó phải hợp lệ theo

DInt, UDInt,

sự chuyển tiếp của REQ.

Real Đây là một tham chiếu đến DB tức thời mà được tạo ra USS_DB

IN

Variant

và được khởi chạy khi một lệnh USS_DRV được đặt trong chương trình.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-154

SIMATIC S7 - 1200

DONE: khi nhận giá trị TRUE, nó chỉ ra rằng ngõ vào VALUE đã vừa được ghi vào bộ điều khiển. Bit này được đặt khi USS_RDV nhìn thấy dữ liệu phản DONE

OUT

Bool

hồi được ghi từ bộ điều khiển. Bit này được đặt lại khi: hoặc ta yêu cầu sự xác nhận của bộ điều khiển rằng việc ghi là hoàn thành thông qua sự kiểm tra vòng hay trên lần gọi thứ hai của hai lần gọi kế tiếp đối với lệnh USS_DRV.

Lỗi đã xuất hiện: Khi đúng, thông số này chỉ ra rằng một lỗi vừa xuất hiện và ngõ ra STATUS là hợp lệ. Tất ERROR

OUT

Bool

cả các ngõ ra khác được đặt về 0 khi có lỗi. Các lỗi truyền thông chỉ được báo cáo trên các ngõ ra ERROR và STATUS của lệnh USS_PORT.

Đây là giá trị trạng thái của yêu cầu. Nó chỉ ra kết quả STATUS

OUT

UInt

của yêu cầu ghi. Thông tin thêm có sẵn trong biến “USS_Extended_Error” đối với một số mã điều kiện.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-155

SIMATIC S7 - 1200

5.3.1.6.

Các mã trạng thái USS.

Các mã trạng thái lệnh USS được trả về tại ngõ ra STATUS của các hàm USS. Giá trị STATUS

Miêu tả

(W#16#...) 0000

Không có lỗi Độ dài của đáp ứng điều khiển không khớp với các ký tự được nhận từ bộ điều

8180

khiển. Số hiệu bộ điều khiển mà lỗi xuất hiện sẽ được trả về trong biến “USS_Extended_Error”. Xem phần miêu tả các lỗi mở rộng phía dưới bảng này.

8181 8182

8183

Thông số VALUE không phải là một kiểu dữ liệu Word, Real hay DWord. Người sử dụng đã cung cấp một kiểu Word cho một giá trị thông số và đã nhận được một kiểu DWord hay Real từ bộ điều khiển trong đáp ứng. Người sử dụng đã cung cấp một kiểu DWord hay Real cho một giá trị thông số và đã nhận được một kiểu Word từ bộ điều khiển trong đáp ứng. Điện báo đáp ứng từ bộ điều khiển đã có một sự kiểm tra tổng xấu. Số hiệu bộ điều

8184

khiển mà lỗi xuất hiện được trả lại trong biến “USS_Extended_Error”. Xem phần miêu tả các lỗi mở rộng phía dưới bảng này.

8185

Địa chỉ bộ điều khiển không hợp lệ (phạm vi hợp lệ: từ 1 đến 16)

8186

Điểm đặt tốc độ vượt quá phạm vi hợp lệ (phạm vi SP hợp lệ: – 200% đến 200%) Số hiệu bộ điều khiển sai đã phản hồi đến việc gửi yêu cầu. Số hiệu bộ điều khiển

8187

mà lỗi xuất hiện được trả lại trong biến “USS_Extended_Error”. Xem phần miêu tả các lỗi mở rộng phía dưới bảng này.

8188 8189 818A

Độ dài ký tự PZD không hợp lệ được chỉ ra (phạm vi hợp lệ bằng 2, 4, 6 hay 8 ký tự) Baud Rate không hợp lệ đã được chỉ ra Kênh yêu cầu thông số được sử dụng bởi một yêu cầu khác đối với bộ điều khiển này. Bộ điều khiển vừa mới không đáp ứng đến các yêu cầu và những việc thử lại. Số

818B

hiệu bộ điều khiển mà lỗi xuất hiện được trả lại trong biến “USS_Extended_Error”. Xem phần miêu tả các lỗi mở rộng phía dưới bảng này.

818C

Bộ điều khiển đã trả lại một lỗi mở rộng trên một sự vận hành yêu cầu thông số. Xem phần miêu tả các lỗi mở rộng phía dưới bảng này.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-156

SIMATIC S7 - 1200

818D

Bộ điều khiển đã trả về một lỗi truy cập không hợp lệ trên một sự vận hành yêu cầu thông số. Bộ điều khiển đã không được khởi chạy. Mã lỗi này sẽ được trả về đến USS_RPM hay USS_WPM khi USS_DRV dành cho bộ điều khiển đó đã không được gọi ít

818E

nhất một lần. Điều này giữ cho sự khởi chạy của lần quét đầu tiên của USS_DRV tránh khỏi việc ghi đè lên một yêu cầu đọc hay ghi thông số trì hoãn, do nó khởi chạy bộ điều khiển như một đầu nhập mới. Để sửa lỗi này, ta gọi USS_DRV của số hiệu bộ điều khiển. Các lỗi đặc trưng được trả về từ các FB truyền thông PtP được gọi bởi thư viện

80Ax – 80Fx

USS: các giá trị mã lỗi này không được chỉnh sửa bởi thư viện USS và được định nghĩa trong các miêu tả lệnh PtP.

Các mã lỗi mở rộng bộ điều khiển USS Các bộ điều khiển USS hỗ trợ truy xuất đọc và ghi đến các thông số bên trong của một bộ điều khiển. Chức năng này cho phép điều khiển và cấu hình từ xa bộ điều khiển. Các hoạt động truy xuất thông số bộ điều khiển có thể bị hỏng do các lỗi như là các giá trị vượt quá phạm vi hay các yêu cầu không hợp lệ đối với một chế độ hiện thời của bộ điều khiển. Bộ điều khiển sinh ra một giá trị mã lỗi được trả về trong biến “USS_Extended_Error” của Instance DB trong USS_DRV. Giá trị mã lỗi này chỉ hợp lệ đối với lần thực thi cuối cùng của một lệnh USS_RPM hay USS_WPM. Mã lỗi bộ điều khiển được đặt vào trong biến “USS_Extended_Error” khi giá trị mã STATUS là giá trị thập lục phân 818C. Giá trị mã lỗi của “USS_Extended_Error” phụ thuộc vào kiểu bộ điều khiển.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-157

SIMATIC S7 - 1200

5.3.2. MODBUS. 5.3.2.1.

MB_COMM_LOAD.

Lệnh MB_COMM_LOAD cấu hình một cổng trên các module truyền thông PtP CM 1241 RS485 hay CM 1241 RS232 cho các truyền thông giao thức Modbus RTU.

Thông số

Kiểu

Kiểu

thông số

dữ liệu

Miêu tả Bộ định danh cổng các truyền thông: Sau khi ta cài đặt module CM trong mục Device

PORT

IN

UInt

Configuration, bộ định danh cổng xuất hiện trong danh sách thả xuống trợ giúp có sẵn tại kết nối ở hộp PORT. Hằng số này còn có thể được tham chiếu bên trong thẻ “Constants” của bảng thẻ ghi mặc định. Lựa chọn tốc độ Baud: 300, 600, 1200, 2400, 4800, 9600,

BAUD

IN

UDInt

19200, 38400, 57600, 76800, 115200 Các giá trị khác đều không hợp lệ. Lựa chọn chẵn lẻ:

PARITY

IN

UInt



0 – Không



1 – lẻ



2 – chẵn

Lựa chọn điều khiển dòng:

FLOW_CTRL

IN

UInt



0 – (mặc định) không điều khiển dòng



1 – điều khiển dòng phần cứng với RTS luôn luôn ON (không áp dụng đối với các cổng RS485)



2 – điều khiển dòng phần cứng với RTS được chuyển mạch

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-158

SIMATIC S7 - 1200 Lựa chọn RTS ON Delay: 

0 – (mặc định) không có trì hoãn từ khi RTS hoạt động cho đến khi ký tự đầu tiên của thông điệp được truyền đi.

RTS_ON_DLY

IN



UInt

1 đến 65535 – trì hoãn theo mili giây từ khi RTS hoạt động đến khi ký tự đầu tiên của thông điệp được truyền đi (không áp dụng đối với các cổng RS485). Các trì hoãn RTS sẽ được áp dụng độc lập với sự lựa chọn FLOW_CTRL.

Lựa chọn RTS OFF Delay: 

0 – (mặc định) không có trì hoãn nào từ ký tự cuối được truyền đi cho đến khi RTS chuyển sang không hoạt động.

RTS_OFF_DLY

IN



UInt

1 đến 65535 – trì hoãn theo mili giây từ khi ký tự cuối được truyền đi cho đến khi RTS chuyển sang không hoạt động (không áp dụng đối với các cổng RS485). Các trì hoãn RTS sẽ được áp dụng độc lập với sự lựa chọn FLOW_CTRL.

Hết thời gian chờ đáp ứng: Thời gian tính theo mili giây được cho phép bởi MB_MASTER đối với phần phụ thuộc để đáp ứng. Nếu RESP_TO

IN

UInt

phần phụ thuộc không đáp ứng trong chu trình thời gian này, MB_MASTER sẽ thử lại yêu cầu hay kết thúc yêu cầu với một lỗi, nếu một số lượng xác định của các lần thử lại đã vừa được gửi. 5 ms đến 65535 ms (giá trị mặc định bằng 1000 ms) Một sự tham chiếu đến Instance Data Block được sử dụng bởi các lệnh MB_MASTER hay MB_SLAVE. Sau khi

MB_DB

IN

Variant

MB_SLAVE hay MB_MASTER được đặt trong chương trình, bộ định danh DB xuất hiện trong danh sách thả xuống trợ giúp có sẵn tại kết nối hộp MB_DB. Lỗi:

ERROR

OUT

Bool



0 – không có lỗi nào được phát hiện



1 – cho thấy rằng có một lỗi đã được phát hiện và mã lỗi tại thông số STATUS là hợp lệ.

STATUS

OUT

Word

Mã lỗi cấu hình cổng.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-159

SIMATIC S7 - 1200

MB_COMM_LOAD được thực thi để cấu hình một cổng cho giao thức Modbus RTU. Sau khi cổng này được cấu hình, ta giao tiếp trên Modbus bằng cách thực thi các lệnh hoặc MB_SLAVE hoặc MB_MASTER. MB_COMM_LOAD nên được gọi một lần để khởi chạy một cổng. MB_COMM_LOAD chỉ cần thiết dùng để gọi một lần nữa nếu các thông số truyền thông phải thay đổi. Ta có thể gọi MB_COMM_LOAD từ một OB khởi động và thực thi nó một lần, hay sử dụng cờ hệ thống quét đầu tiên nhằm khởi chạy việc gọi để thực thi nó một lần. Một mẫu của MB_COMM_LOAD phải được sử dụng để cấu hình mỗi cổng của mỗi module truyền thông được sử dụng cho việc truyền thông Modbus. Ta phải gán một Instance Data Bolck MB_COMM_LOAD đơn nhất cho mỗi cổng mà ta sử dụng. CPU S7 – 1200 được giới hạn đến 3 module truyền thông. Một Instance Data Bolck được gán giá trị khi ta đặt các lệnh MB_MASTER hay MB_SLAVE. Instance Data Bolck này được tham chiếu khi ta xác định rõ thông số MB_DB trên lệnh MB_COMM_LOAD. Giá trị STATUS

Miêu tả

(W#16#...) 0000

Không có lỗi

8180

Giá trị ID cổng không hợp lệ.

8181

Giá trị tốc độ Baud không hợp lệ

8182

Giá trị chẵn lẻ không hợp lệ

8183

Giá trị điều khiển dòng không hợp lệ

8184

Giá trị hết thời gian chờ đáp ứng không hợp lệ

8185

Con trỏ MB_DB không đúng chỉ đến một DB mẫu đối với một MB_MASTER hay MB_SLAVE

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-160

SIMATIC S7 - 1200

5.3.2.2.

MB_MASTER

Lệnh MB_MASTER cho phép chương trình giao tiếp như một phần chủ Modbus sử dụng một cổng trên module PtP CM 1241 RS485 hay CM 1241 RS232. Ta có thể truy xuất dữ liệu trong một hay nhiều thiết bị phần phụ thuộc Modbus. Một Instance Data Block được gán giá trị khi ta đặt lệnh MB_MASTER trong chương trình. Tên Instance Data Block của MB_MASTER này được sử dụng khi ta xác định rõ thông số MB_DB trên lệnh MB_COMM_LOAD.

Thông số

Kiểu

Kiểu

thông số

dữ liệu

Miêu tả Ngõ vào yêu cầu:

REQ

IN

Bool



0 – không có yêu cầu



1 – yêu cầu truyền dữ liệu đến các phần phụ thuộc Modbus

Địa chỉ trạm RTU Modbus: phạm vi địa chỉ hợp lệ: từ 0 đến 247. MB_ADR

IN

USInt

Giá trị 0 được đảo ngược nhằm phát ra một thông điệp đến tất cả các phần phụ thuộc Modbus. Các mã hàm Modbus 05, 06, 15 và 16 chỉ là các mã hàm được hỗ trợ cho việc phát đi. Lựa chọn chế độ: xác định rõ kiểu yêu cầu: đọc, ghi hay chẩn

MODE

IN

USInt

đoán. Xem bảng các hàm Modbus dưới đây để biết thêm chi tiết. Địa chỉ bắt đầu trong phần phụ thuộc: xác định địa chỉ bắt

DATA_ADDR

IN

UDInt

đầu của dữ liệu dùng để truy xuất trong Modbus phụ thuộc. Xem bảng các hàm Modbus dưới đây đối với các giá trị hợp lệ.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-161

SIMATIC S7 - 1200 Độ dài dữ liệu: chỉ ra số lượng các bit hay ký tự dùng để truy DATA_LEN

IN

UInt

xuất trong yêu cầu này. Xem bảng các hàm Modbus dưới đây đối với các độ dài hợp lệ. Con trỏ dữ liệu: chỉ đến địa chỉ DB CPU đối với dữ liệu đang

DATA_PTR

IN

Variant

được ghi hay đọc. DB phải là một kiểu DB “NOT symbolic access only”. Xem phần lưu ý DATA_PTR dưới đây. Dữ liệu mới sẵn sàng:

NDR

OUT

Bool



0 – giao tác không hoàn thành



1 – chứng tỏ rằng lệnh MB_MASTER vừa hoàn thành giao tác được yêu cầu với (các) phần phụ thuộc Modbus.

Bận rộn: BUSY

OUT

Bool



0 – không có giao tác MB_MASTER trong tiến trình



1 – giao tác MB_MASTER đang trong tiến trình

Lỗi: ERROR

OUT

Bool



0 – kheông có lỗi nào được phát hiện



1 – chứng tỏ rằng một lỗi đã được phát hiện và mã lỗi được cung cấp tại thông số STATUS là hợp lệ

STATUS

OUT

Word

Mã điều kiện thực thi.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-162

SIMATIC S7 - 1200

Các quy tắc truyền thông đối với phần chủ Modbus  MB_COMM_LOAD phải được thực thi để cấu hình một cổng trước khi một lệnh MB_MASTER có thể giao tiếp với cổng đó.  Nếu một cổng được dùng để khởi chạy các yêu cầu của phần chủ Modbus, cổng đó không thể được dùng bởi MB_SLAVE. Một hay nhiều mẫu thực thi MB_MASTER có thể được sử dụng với cổng đó.  Các lệnh Modbus không sử dụng các sự kiện ngắt truyền thông để điều khiển tiến trình truyền thông. Chương trình phải kiểm tra vòng lệnh MB_MASTER đối với các điều kiện hoàn chỉnh dành cho việc phát và thu.  Nếu chương trình vận hành một phần chủ Modbus và sử dụng MB_MASTER để gửi một yêu cầu đến một phần phụ thuộc, khi đó ta phải tiếp tục kiểm tra vòng (thực thi MB_MASTER) cho đến khi đáp ứng từ phần phụ thuộc được trả về.  Gọi tất cả thực thi MB_MASTER đối với một cổng đã cho từ OB (hay mức ưu tiên OB) giống nhau. Thông số REQ Giá trị REQ “FALSE” = không yêu cầu Giá trị REQ “TRUE” = yêu cầu truyền dữ liệu đến (các) phần phụ thuộc Modbus. Ta phải cung cấp ngõ vào này xuyên suốt trong một sự tiếp xúc được kích hoạt bằng sườn dương trong lần gọi đầu tiên đối với thực thi MB_MASTER. Xung kích hoạt sườn sẽ dẫn ra yêu cầu gửi một lần. Tất cả ngõ vào được bắt lại và được giữ không bị thay đổi cho một yêu cầu và đáp ứng được kích hoạt bởi ngõ vào này. Ở bên trong, MB_MASTER sẽ khởi động một cơ cấu trạng thái để chắc chắn rằng không có lệnh MB_MASTER nào khác được cho phép phát một yêu cầu cho đến khi yêu cầu này vừa được hoàn thành. Thêm vào đó, nếu một mẫu tương tự của việc gọi FB MB_MASTER được thực thi một lần nữa với ngõ vào REQ là “TRUE” trước sự hoàn tất của yêu cầu, khi đó sẽ không có các sự phát tuần tự nào được thực hiện. Tuy nhiên, ngay khi yêu cầu vừa CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-163

SIMATIC S7 - 1200

được hoàn thành, một yêu cầu mới sẽ được phát sinh nếu MB_MASTER được thực thi với ngõ vào REQ được đặt lên “TRUE”. Các thông số DATA_ADDR và MODE lựa chọn kiểu chức năng của Modbus DATA_ADDR (khởi động địa chỉ Modbus trong phần phụ thuộc): chỉ rõ địa chỉ khởi đầu của dữ liệu dùng để truy xuất trong phần phụ thuộc của Modbus. MB_MASTER sử dụng một ngõ vào MODE hơn là sử dụng một ngõ vào Function Code. Sự kết hợp của phạm vi địa chỉ MODE và Modbus xác định Function Code nào được sử dụng trong thông điệp Modbus thực tại. Bảng dưới đây chỉ ra sự tương ứng giữa thông số MODE của MBUS_MASTER, mã hàm Modbus và phạm vi địa chỉ Modbus. Các hàm Modbus MB_MASTER Thông số địa chỉ

Kiểu địa chỉ

Modbus DATA_ADDR

Thông số độ dài dữ liệu

Hàm

Modbus DATA_LEN

Modbus

Chế độ 0 Đọc

00001 đến 09999

Các bit ngõ ra

1 đến 2000

01H

10001 – 19999

Các bit ngõ vào

1 đến 2000

02H

30001 – 39999

Các thanh ghi ngõ vào

1 đến 125

04H

1 đến 125

03H

1 (bit đơn)

05H

1 (ký tự đơn)

06H

2 đến 1968

15H

2 đến 123

16H

10001 – 19999 400001

đến

465536 Các thanh ghi giữ

(được mở rộng) Chế độ 1 Ghi

00001 đến 09999

Các bit ngõ ra

40001 đến 49999 40001

đến

465536 Các thanh ghi giữ

(được mở rộng) 00001 đến 09999

Các bit ngõ vào

40001 đến 49999 40001

đến

465536 Các thanh ghi giữ

(được mở rộng)

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-164

SIMATIC S7 - 1200 Chế độ 2 Một số phần phụ thuộc của Modbus không hỗ trợ việc ghi bit hay ký tự đơn với các hàm Modbus 05H và 06H. Trong những trường hợp này, Mode 2 được sử dụng để bắt buộc việc ghi bit hay ký tự đơn sử dụng các hàm Modbus 05H và 06H. Ghi

00001 đến 09999

Các bit ngõ ra

1 đến 1968

15H

1 đến 123

16H

40001 đến 49999 40001

đến

465536 Các thanh ghi giữ

(được mở rộng)

Mode 11 

Đọc một ký tự đếm sự kiện từ phần phụ thuộc của Modbus mà ký tự đó được tham chiếu như một ngõ vào đến MB_ADDR



Trên một phần phụ thuộc Modbus của Siemens S7 – 1200, bộ đếm này được tăng lên mỗi lần phần phụ thuộc nhận một yêu cầu (không phát quảng bá) đọc hay ghi hợp lệ từ một phần chủ của Modbus.



Giá trị trả về được lưu trữ trong một vị trí ký tự được xác định như ngõ vào đến DATA_PTR.



Một DATA_LEN hợp lệ thì không cần thiết đối với chế độ này.

Mode 80 

Kiểm tra trạng thái truyền thông của phần phụ thuộc Modbus được tham chiếu như một ngõ vào đến MB_ADDR



Sự thiết lập của bit ngõ ra NDR trên lệnh MB_MASTER chứng tỏ rằng phần phụ thuộc Modbus được ghi địa chỉ được đáp ứng với dữ liệu phản hồi tương ứng.



Không có dữ liệu được trả về chương trình.



Một DATA_LEN hợp lệ thì không cần thiết đối với chế độ này.

Mode 81 

Đặt lại bộ đếm sự kiện (như được trả về bởi Mode 11) trên phần phụ thuộc của Modbus mà được tham chiếu như một ngõ vào đến MB_ADDR



Việc thiết lập của bit ngõ ra NDR trên lệnh MB_MASTER chứng tỏ rằng phần phụ thuộc của Modbus được ghi địa chỉ đã đáp ứng với dữ liệu phản hồi tương ứng.



Không có dữ liệu nào được trả về chương trình.



Một DATA_LEN hợp lệ thì không cần thiết đối với chế độ này.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-165

SIMATIC S7 - 1200

Thông số DATA_PTR Thông số DATA_PTR chỉ đến nguồn nội vùng hay địa chỉ đích (địa chỉ trong CPU S7-1200) của dữ liệu được ghi đến hay được đọc, theo thứ tự. Khi ta sử dụng lệnh MB_MASTER để tạo ra một phần chủ của Modbus, ta phải tạo ra một khối dữ liệu tổng thể cung cấp nơi lưu trữ dữ liệu để đọc hay ghi đến các phần phụ thuộc của Modbus.

Lƣu ý Thông số DATA_PTR phải tham chiếu một khối dữ liệu tổng thể đƣợc tạo ra với hộp thuộc tính Symbolic Access Only không đƣợc đánh dấu. Ta phải không đánh dấu hộp “Symbolic Access Only” khi thêm một Data block mới vào một kiểu DB tổng thể kiểu cổ điển.

Các cấu trúc Data block đối với thông số DATA_PTR  Các kiểu dữ liệu sau đây là hợp lệ đối với những việc đọc từ của các địa chỉ Modbus từ 30001 đến 39999, 40001 đến 49999, và 40001 đến 465536 và còn đối với những việc ghi từ đến các địa chỉ Modbus 40001 đến 49999 và 40001 đến 465536: -

Mảng tiêu chuẩn của các kiểu dữ liệu Word, UInt hay Int được thể hiện dưới đây.

-

Cấu trúc Word, UInt hay Int được đặt tên, nơi mà mỗi phần tử có một tên đơn nhất và kiểu dữ liệu 16 bit.

-

Các cấu trúc phức hợp được đặt tên, nơi mà mỗi phần tử có một tên đơn nhất và một kiểu dữ liệu 16 bit hay 32 bit.

 Đối với những việc đọc và ghi bit của các địa chỉ Modbus từ 00001 đến 09999 và từ 10001 đến 19999: -

Mảng tiêu chuẩn của các kiểu dữ liệu Boolean.

-

Cấu trúc Boolean được đặt tên của các biến Boolean được đặt tên đơn nhất.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-166

SIMATIC S7 - 1200

 Mặc dù không cần thiết, nhưng đề nghị rằng mỗi lệnh MB_MASTER cần có vùng cách ly riêng của nó trong một khối dữ liệu tổng thể. Nguyên nhân của đề nghị này là do khả năng sai lạc dữ liệu là lớn hơn nếu có nhiều lệnh MB_MASTER được đọc và ghi vào một vùng giống nhau của một khối dữ liệu tổng thể.  Không yêu cầu rằng các vùng dữ liệu DATA_PTR phải nằm trong khối dữ liệu tổng thể giống nhau. Ta có thể tạo ra một khối dữ liệu với nhiều vùng nhớ dành cho các việc đọc Modbus, một khối dữ liệu dành cho việc ghi Modbus, hay một khối dữ liệu dành cho mỗi trạm phụ thuộc.  Tất cả các mảng trong ví dụ dưới đây được tạo ra như các mảng base 1 [1…#]. Các mảng có thể vừa được tạo ra như mảng base 0 [0…#] hay một sự hòa trộn giữa base 0 và base 1. Minh họa các lệnh MB_MASTER truy xuất các khối dữ liệu tổng thể DATA_PTR Khối dữ liệu tổng thể minh họa được thể hiện dưới đây sử dụng 4 mảng 6 word được đặt tên đơn nhất dành cho bộ nhớ dữ liệu truy vấn Modbus. Mặc dù các mảng dữ liệu trong ví dụ này có kích thước giống nhau nhưng các mảng có thể có nhiều kích thước và được thể hiện với kích thước giống nhau nhằm đơn giản hóa các ví dụ. Mỗi mảng còn có thể được đặt với một cấu trúc dữ liệu chứa nhiều hơn các tên thẻ ghi nhãn miêu tả và các kiểu dữ liệu được hòa trộn. Các ví dụ về các cấu trúc dữ liệu loại trừ nhau được cung cấp trong phần miêu tả thông số HR_DB của lệnh MB_SLAVE. Các ví dụ lệnh MB_MASTER dưới đây chỉ thể hiện thông số DATA_PTR và không thể hiện các thông số cần thiết khác. Mục đích của ví dụ này là để chỉ ra lệnh MB_MASTER sử dụng khối dữ liệu DATA_PTR như thế nào. Các mũi tên cho biết mỗi mảng được kết hợp với các lệnh MB_MASTER ra sao.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-167

SIMATIC S7 - 1200

Phần tử đầu tiên của mỗi mảng hay cấu trúc luôn luôn là nguồn hay đích đầu tiên của bất kỳ hoạt động đọc hay ghi Modbus nào. Tất cả các kịch bản dưới đây dựa trên sơ đồ trên. Kịch bản 1: nếu lệnh MB_MASTER đầu tiên đọc 3 từ của dữ liệu từ địa chỉ Modbus 40001 trên bất kỳ phần phụ thuộc Modbus hợp lệ nào, khi đó các khả năng sau sẽ xảy ra: Từ ở địa chỉ 40001 được lưu trữ trong “Data”.Array_1[1]. Từ ở địa chỉ 40002 được lưu trữ trong “Data”.Array_1[2]. Từ ở địa chỉ 40003 được lưu trữ trong “Data”.Array_1[3].

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-168

SIMATIC S7 - 1200

Kịch bản 2: nếu lệnh MB_MASTER đầu tiên đọc 4 từ của dữ liệu từ địa chỉ Modbus 40015 trên bất kỳ phần phụ thuộc Modbus hợp lệ nào, khi đó các khả năng sau sẽ xảy ra: Từ ở địa chỉ 40015 được lưu trữ trong “Data”.Array_1[1]. Từ ở địa chỉ 40016 được lưu trữ trong “Data”.Array_1[2]. Từ ở địa chỉ 40017 được lưu trữ trong “Data”.Array_1[3]. Từ ở địa chỉ 40018 được lưu trữ trong “Data”.Array_1[4]. Kịch bản 3: nếu lệnh MB_MASTER thứ hai đọc 2 từ của dữ liệu từ địa chỉ Modbus 30033 trên bất kỳ phần phụ thuộc Modbus hợp lệ nào, khi đó các khả năng sau sẽ xảy ra: Từ ở địa chỉ 30033 được lưu trữ trong “Data”.Array_2[1]. Từ ở địa chỉ 30034 được lưu trữ trong “Data”.Array_2[2]. Kịch bản 4: nếu lệnh MB_MASTER thứ ba ghi 4 từ của dữ liệu đến địa chỉ Modbus 40050 trên bất kỳ phần phụ thuộc Modbus hợp lệ nào, khi đó các khả năng sau sẽ xảy ra: Từ ở “Data”.Array_3[1] được ghi đến địa chỉ Modbus 40050. Từ ở “Data”.Array_3[2] được ghi đến địa chỉ Modbus 40051. Từ ở “Data”.Array_3[3] được ghi đến địa chỉ Modbus 40052. Từ ở “Data”.Array_3[4] được ghi đến địa chỉ Modbus 40053. Kịch bản 5: nếu lệnh MB_MASTER thứ ba ghi 3 từ của dữ liệu đến địa chỉ Modbus 40001 trên bất kỳ phần phụ thuộc Modbus hợp lệ nào, khi đó các khả năng sau sẽ xảy ra: Từ ở “Data”.Array_3[1] được ghi đến địa chỉ Modbus 40001. Từ ở “Data”.Array_3[2] được ghi đến địa chỉ Modbus 40002. Từ ở “Data”.Array_3[3] được ghi đến địa chỉ Modbus 40003. CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-169

SIMATIC S7 - 1200

Kịch bản 6: nếu lệnh MB_MASTER thứ tư sử dụng Mode 11 (tìm kiếm lần đếm thông điệp hợp lệ) từ bất kỳ phần phụ thuộc Modbus hợp lệ nào, khả năng sau đây sẽ xảy ra: Từ đếm được lưu trữ trong “Data”.Array_4[1]. Ví dụ đọc và ghi bit sử dụng các vị trí lƣu từ nhƣ ngõ vào DATA_PTR Kịch bản 7: đọc 4 bit ngõ ra bắt đầu từ địa chỉ Modbus 00001. Các giá trị ngõ vào MB_MASTER MB_ADDR

Các giá trị Modbus phụ thuộc

27 (ví dụ phần phụ thuộc)

00001

ON

MODE

0 (Đọc)

00002

ON

DATA_ADDR

00001 (các ngõ ra)

00003

OFF

DATA_LEN

4

00004

ON

“Data”.Array_4

00005

ON

00006

OFF

00007

ON

00008

OFF

DATA_PTR

Các giá trị “Data”.Array_4[1] sau khi truy vấn Modbus Byte MS (Most Significant – trọng số lớn nhất)

Byte LS (Least Significant – trọng số nhỏ nhất)

xxxx-1011

xxxx-xxxx

x chứng tỏ rằng dữ liệu không bị thay đổi

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-170

SIMATIC S7 - 1200

Kịch bản 8: đọc 12 bit ngõ ra bắt đầu từ địa chỉ Modbus 00003. Các giá trị ngõ vào MB_MASTER

Các giá trị Modbus phụ thuộc

MB_ADDR

27 (ví dụ phần phụ thuộc)

00001

ON

00010

ON

MODE

0 (Đọc)

00002

ON

00011

OFF

DATA_ADDR

00003 (các ngõ ra)

00003

OFF

00012

OFF

DATA_LEN

12

00004

ON

00013

ON

00005

ON

00014

OFF

00006

OFF

00015

ON

00007

ON

00016

ON

00008

ON

00017

OFF

00009

OFF

00018

ON

DATA_PTR

“Data”.Array_4

Các giá trị “Data”.Array_4[1] sau khi truy vấn Modbus Byte MS (Most Significant – trọng số lớn nhất)

Byte LS (Least Significant – trọng số nhỏ nhất)

1011-0110

xxxx-0100-

x chứng tỏ rằng dữ liệu không bị thay đổi

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-171

SIMATIC S7 - 1200

Kịch bản 9: ghi 5 bit ngõ ra bắt đầu từ địa chỉ Modbus 00001. Các ngõ ra phần Các giá trị ngõ vào MB_MASTER

phụ thuộc trƣớc đó

Các ngõ ra phần phụ thuộc sau đó

MB_ADDR

27 (ví dụ phần phụ thuộc)

00001

ON

OFF

MODE

1 (Ghi)

00002

ON

ON

DATA_ADDR

00001 (các ngõ ra)

00003

OFF

ON

DATA_LEN

5

00004

ON

OFF

00005

ON

ON

00006

OFF

Không bị thay đổi

00007

ON

Không bị thay đổi

00008

ON

Không bị thay đổi

00009

OFF

Không bị thay đổi

DATA_PTR

“Data”.Array_4

Các giá trị “Data”.Array_4[1] đối với truy vấn ghi của Modbus Byte MS (Most Significant – trọng số lớn nhất)

Byte LS (Least Significant – trọng số nhỏ nhất)

xxx1-0110

xxxx-xxxx

x chứng tỏ rằng dữ liệu không được sử dụng trong truy vấn Modbus

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-172

SIMATIC S7 - 1200

Kịch bản 10: đọc 22 bit ngõ ra bắt đầu từ địa chỉ Modbus 00003 Các giá trị ngõ vào MB_MASTER

Các giá trị Modbus phụ thuộc

MB_ADDR

27 (ví dụ phần phụ thuộc)

00001

ON

00014

ON

MODE

0 (Đọc)

00002

ON

00015

OFF

DATA_ADDR

00003 (các ngõ ra)

00003

OFF

00016

ON

DATA_LEN

22

00004

ON

00017

ON

00005

ON

00018

OFF

00006

OFF

00019

ON

00007

ON

00020

ON

00008

ON

00021

OFF

00009

ON

00022

ON

00010

OFF

00023

ON

00011

OFF

00024

OFF

00012

ON

00025

OFF

00013

OFF

00026

ON

DATA_PTR

“Data”.Array_4

Các giá trị “Data”.Array_4[1] sau khi truy vấn Modbus Byte MS (Most Significant – trọng số lớn nhất)

Byte LS (Least Significant – trọng số nhỏ nhất)

0111-0110

0110-1010

Các giá trị “Data”.Array_4[2] sau khi truy vấn Modbus Byte MS (Most Significant – trọng số lớn nhất)

Byte LS (Least Significant – trọng số nhỏ nhất)

xx01-1011

xxxx-xxxx

x chứng tỏ rằng dữ liệu không bị thay đổi

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-173

SIMATIC S7 - 1200

Ví dụ đọc và ghi các bit sử dụng các vị trí BOOL nhƣ ngõ vào DATA_PTR Mặc dù những việc đọc và ghi của Modbus đến các vị trí địa chỉ bit có thể được thực hiện thông qua việc sử dụng các vị trí từ, các vùng nhớ DATA_PTR còn có thể được cấu hình như các kiểu dữ liệu Boolean, các cấu trúc hay các mảng để cung cấp một giá trị 1 trực tiếp đến một sự tương quan đối với bit đầu tiên được đọc hay ghi bằng cách sử dụng một lệnh MB_MASTER. Nếu ta sử dụng các mảng hay các cấu trúc Boolean, đề nghị rằng nên làm cho kích thước dữ liệu là một bội số của 8 bit (theo các giới hạn byte). Ví dụ, khi ta tạo ra một mảng Boolean gồm 10 bit, phần mềm STEP 7 Basic sẽ phân bổ 16 bit (2 byte) trong khối dữ liệu tổng thể dành cho 10 bit. Bên trong khối dữ liệu, các bit này sẽ được lưu theo dạng byte1 [xxxx xxxx] byte [---- --xx] với “x” cho biết các vị trí dữ liệu có thể truy xuất và “-” cho biết các vị trí không thể truy xuất được. Cho phép truy vấn Modbus tối đa một độ dài là 16 bit, nhưng 6 bit cao sẽ được đặt vào trong các vùng nhớ byte 2 mà không được tham chiếu và không thể truy xuất bằng chương trình. Các vùng dữ liệu Boolean có thể được tạo ra như một mảng của các giá trị Boolean hay như một cấu trúc các biến Boolean. Cả hai phương pháp đều hoạt động theo một cách giống nhau và chỉ khác ở cách mà chúng được tạo ra và được truy xuất trong chương trình. Trình soạn thảo khối dữ liệu tổng thể hiển thị dưới đây thể hiện một mảng đơn lẻ gồm 16 giá trị Boolean được tạo ra dựa trên 0. Mảng này còn có thể được tạo ra ma trận đơn vị chuẩn. Mũi tên thể hiện cách mà mảng này được liên kết với một lệnh MB_MASTER.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-174

SIMATIC S7 - 1200

Các kịch bản 11 và 12 thể hiện sự tương ứng của các địa chỉ Modbus đến các địa chỉ mảng Boolean. Kịch bản 11: ghi 5 bit ngõ ra bắt đầu từ địa chỉ Modbus 00001. Các ngõ ra Các giá trị ngõ vào

phần phụ

MB_MASTER

thuộc trƣớc

Dữ liệu DATA_PTR

Các ngõ ra phần phụ thuộc sau đó

đó 27 MB_ADDR

(ví

phần

dụ phụ

00001

ON

“Data”.Bool[0] = FALSE

OFF

00002

ON

“Data”.Bool[1] = TRUE

ON

00003

OFF

“Data”.Bool[2] = TRUE

ON

00004

ON

“Data”.Bool[3] = FALSE

OFF

00005

ON

“Data”.Bool[4] = FALSE

ON

00006

OFF

Không bị thay đổi

00007

ON

Không bị thay đổi

00008

ON

Không bị thay đổi

thuộc) MODE DATA_ADDR DATA_LEN

DATA_PTR

1 (Ghi) 00001

(các

ngõ ra) 5

“Data”.Bool

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-175

SIMATIC S7 - 1200

Kịch bản 12: đọc 15 bit ngõ ra bắt đầu từ địa chỉ Modbus 00003. Các giá trị ngõ vào MB_MASTER

Giá trị Modbus phụ thuộc

Dữ liệu DATA_PTR sau đó

MB_ADDR

27 (ví dụ phần phụ thuộc)

00001

ON

MODE

1 (Ghi)

00002

ON

DATA_ADDR

00001 (các ngõ ra)

00003

OFF

“Data”.Bool[0] = FALSE

DATA_LEN

5

00004

ON

“Data”.Bool[1] = TRUE

00005

ON

“Data”.Bool[2] = TRUE

00006

OFF

“Data”.Bool[3] = FALSE

00007

ON

“Data”.Bool[4] = TRUE

00008

ON

“Data”.Bool[5] = TRUE

00009

ON

“Data”.Bool[6] = TRUE

00010

OFF

“Data”.Bool[7] = FALSE

00011

OFF

“Data”.Bool[8] = FALSE

00012

ON

“Data”.Bool[9] = TRUE

00013

OFF

“Data”.Bool[10] = FALSE

00014

ON

“Data”.Bool[11] = TRUE

00015

OFF

“Data”.Bool[12] = FALSE

00016

ON

“Data”.Bool[13] = TRUE

00017

ON

“Data”.Bool[14] = TRUE

00018

OFF

00019

ON

DATA_PTR

“Data”.Bool

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-176

SIMATIC S7 - 1200

Các mã điều kiện Giá trị STATUS

Miêu tả

(W#16#...) 0000 80C8

Không có lỗi Hết thời gian chờ đáp ứng được xác định (liên quan đến RCVTIME hay MSGTIME) bằng 0. Bộ nhận ban hành một truy vấn điều khiển dòng để tạm ngưng một sự truyền phát và không bao giờ cho phép trở lại sự truyền phát trong suốt thời

80D1

gian chờ được xác định. Lỗi này còn được sinh ra trong suốt sự điều khiển dòng phần cứng khi bộ nhận không giữ vững CTS trong khoảng thời gian chờ được xác định.

80D2

Yêu cầu truyền phát đã bị bãi bỏ bì không có tín hiệu DSR nào được nhận từ DCE.

80E0

Thông điệp được kết thúc do bộ đệm nhận đầy.

80E1

Thông điệp được kết thúc như một kết quả của một lỗi chẵn lẻ.

80E2

Thông điệp được kết thúc như một kết quả của một lỗi lập khung.

80E3

Thông điệp được kết thúc như một kết quả của lỗi chạy quá mức.

80E4

Thông điệp được kết thúc như một kết quả của một độ dài xác định vượt quá kích thước bộ đệm tổng.

8180

Giá trị ID cổng không hợp lệ.

8186

Địa chỉ trạm Modbus không hợp lệ.

8188

Giá trị Mode không hợp lệ hay chế độ ghi chỉ để đọc vùng địa chỉ phụ thuộc

8189

Giá trị Data Address không hợp lệ

818A

Giá trị Data Length không hợp lệ

818B

818C 8200

Con trỏ không hợp lệ chỉ đến nguồn/đích dữ liệu nội vùng: kích cỡ không đúng. Con trỏ chỉ đến một kiểu cho phép DB kiểu DATA_PTR (phải là một kiểu Classic DB) Cổng bận xử lý một yêu cầu phát.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-177

SIMATIC S7 - 1200

5.3.2.3.

MB_SLAVE

Lệnh MB_SLAVE cho phép chương trình giao tiếp như một phần phụ thuộc Modbus sử dụng một cổng trên module PtP CM 1241 RS485 hay CM 1241 RS232. Một phần chủ RTU Modbus có thể ban hành một yêu cầu và sau đó chương trình đáp ứng qua việc thực thi MB_SLAVE. Ta phải gán một giá trị Instance Data Block đơn nhất khi đặt lệnh MB_SLAVE trong chương trình. Tên gọi Instance Data Block này được sử dụng khi ta xác định thông số MB_DB trên lệnh MB_COMM_LOAD. Các mã hàm truyền thông Modbus (1, 2, 4, 5 và 15) có thể đọc và ghi các bit và các từ trực tiếp trong PLC Input Process Image và Output Process Image. Bảng dưới đây chỉ ra sự ánh xạ của các địa chỉ Modbus đến ý niệm tiến trình trong CPU. Các chức năng Modbus MB_SLAVE Các mã

Chức năng

Vùng dữ liệu

S7 – 1200

Phạm vi địa chỉ

Vùng dữ liệu

Địa chỉ CPU

01

Đọc các bit

Output

1

Đến

8192

Output Process Image

Q0.0 đến Q1023.7

02

Đọc các bit

Input

10001

Đến

18192

Input Process Image

I0.0 đến I1023.7

04

Đọc các từ

Input

30001

Đến

30512

Input Process Image

IW0 đến IW1022

05

Ghi bit

Output

1

Đến

8192

Output Process Image

Q0.0 đến Q1023.7

15

Ghi các bit

Output

1

Đến

8192

Output Process Image

Q0.0 đến Q1023.7

Các mã hàm truyền thông Modbus (3, 6, 16) sử dụng một khối dữ liệu thanh ghi giữ Modbus cách ly và đơn nhất mà ta phải tạo ra, trước khi ta có thể định rõ thông số MB_HOLD_REG trên lệnh MB_SLAVE. Bảng sau đây thể hiện ánh xạ của thanh ghi giữ Modbus đến địa chỉ MB_HOLD_REG trong PLC.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-178

SIMATIC S7 - 1200

Các

Chức

Vùng dữ



năng

liệu

03

06

16

Đọc

các Holding

từ

Ghi từ

Ghi các từ

Vùng dữ liệu

Phạm vi địa chỉ

CPU DB

40001 đến 49999

Địa chỉ CPU DB Các từ 1 đến 9999

MB_HOLD_REG

Register

400001 đến 465535

Holding

40001 đến 49999

Register

400001 đến 465535

Các từ 1 đến 65535

Holding

40001 đến 49999

Các từ 1 đến 9999

Register

400001 đến 465535

Các từ 1 đến 65535 Các từ 1 đến 9999 MB_HOLD_REG

MB_HOLD_REG Các từ 1 đến 65535

Bảng dưới đây thể hiện các chức năng chẩn đoán Modbus được hỗ trợ. Các chức năng chẩn đoán Modbus MB_SLAVE S7 – 1200 Các mã

Chức năng con

08

0000H

08

000AH

Miêu tả Phản hồi việc kiểm tra báo hiệu trở lại dữ liệu truy vấn: MB_SLAVE sẽ báo hiệu trở lại đến một phần chủ Modbus một từ của dữ liệu được nhận. Xóa bộ đếm sự kiện truyền thông: MB_SLAVE sẽ xóa hết bộ đếm sự kiện truyền thông được sử dụng đối với hàm 11 của Modbus. Nhận bộ đếm sự kiện truyền thông: MB_SLAVE sử dụng một bộ đếm sự kiện truyền thông nội tại dành cho việc ghi lại số lượng các yêu cầu đọc

11

hay ghi Modbus thành công được gửi đến phần phụ thuộc Modbus. Bộ đếm không tăng lên trên bất kỳ Function 8, Function 11 hay các yêu cầu phát rộng. Nó còn không được tăng lên trên những yêu cầu mà kết quả là một lỗi truyền thông (ví dụ các lỗi chẵn lẻ hay lỗi CRC)

MB_SLAVE hỗ trợ các yêu cầu ghi phát rộng từ bất kỳ phần chủ Modbus nào cũng như yêu cầu dành cho việc truy xuất các vị trí hợp lệ. Bất chấp tính có hiệu lực của một yêu cầu, MB_SLAVE không đưa ra đáp ứng đến một phần chủ Modbus như kết quả của một yêu cầu phát rộng. CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-179

SIMATIC S7 - 1200

Thông số

MB_ADDR

Kiểu

Kiểu dữ

thông số

liệu

IN

USInt

Miêu tả Địa chỉ RTU Modbus (1 đến 247): Địa chỉ trạm của phần phụ thuộc Modbus. Con trỏ đến DB Holding Register của Modbus. DB

MB_HOLD_REG

IN

Variant

Holding Register phải là một DB kiểu cổ điển và tổng thể. Xem phần lưu ý MB_HOLD_REG phía dưới. Dữ liệu mới sẵn sàng:

NDR

OUT

Bool



0 – không có dữ liệu mới



1 – chứng tỏ rằng dữ liệu mới đã vừa được ghi bởi phần chủ Modbus.

Dữ liệu được đọc: DR

OUT

Bool



0 – không có dữ liệu được đọc



1 – chứng tỏ rằng dữ liệu đã vừa được đọc bởi phần chủ Modbus.

Lỗi:

ERROR

OUT

Bool



0 – không có lỗi nào được phát hiện



1 – chứng tỏ rằng một lỗi đã được phát hiện và mã lỗi được cung cấp tại thông số STATUS là hợp lệ.

STATUS

OUT

Word

Mã lỗi.

Các quy tắc truyền thông phần phụ thuộc Modbus  MB_COMM_LOAD phải được thực thi để cấu hình một cổng, trước khi một lệnh MB_SLAVE có thể giao tiếp với cổng đó.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-180

SIMATIC S7 - 1200

 Nếu một cổng là để đáp ứng như một phần phụ thuộc đến một phần chủ Modbus, cổng đó không thể được sử dụng bởi MB_MASTER. Chỉ có một đối tượng của thực thi MB_SLAVE là có thể được sử dụng với một cổng được cho.  Các lệnh Modbus không sử dụng các sự kiện ngắt truyền thông để điều khiển quá trình truyền thông. Chương trình phải điều khiển quá trình truyền thông bằng việc kiểm tra vòng lệnh MB_SLAVE cho các điều kiện hoàn chỉnh phát và nhận.  MB_SLAVE phải thực thi một cách định kỳ tại tốc độ cho phép nó tạo ra một đáp ứng đúng lúc đối với các yêu cầu đi vào từ một phần chủ Modbus.  Ta nên gọi lệnh MB_SLAVE trong mỗi chu trình quét từ một OB chu kỳ chương trình. Hoạt động MB_SLAVE phải được thực thi một cách định kỳ để nhận mỗi yêu cầu từ phần chủ Modbus và sau đó đáp ứng như được yêu cầu. Tần số của việc thực thi MB_SLAVE thì phụ thuộc theo chu kỳ hết thời gian chờ đáp ứng của phần chủ Modbus. Điều này được minh họa trong biểu đồ sau đây.

Chu kỳ hết thời gian chờ đáp ứng là lượng thời gian mà một phần chủ Modbus chờ đợi sự bắt đầu một đáp ứng từ một phần phụ thuộc Modbus. Chu kỳ thời gian này không được xác định bằng giao thức Modbus, nhưng nó là một thông số của mỗi phần chủ Modbus. Tần số của việc thực thi (thời gian giữa một thực thi với thực thi kế tiếp) của MB_SLAVE phải được dựa trên các thông số riêng của phần chủ Modbus của ta. Ít nhất, ta nên thực thi MB_SLAVE hai lần bên trong chu kỳ hết thời gian chờ đáp ứng của phần chủ Modbus.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-181

SIMATIC S7 - 1200

Các ví dụ thông số MB_HOLD_REG MB_HOLD_REG là một con trỏ chỉ đến khối dữ liệu (Data Block) Modbus Holding Register. DB này được sử dụng để giữ các giá trị dữ liệu mà một phần chủ Modbus được cho phép để truy xuất (đọc hay ghi). Ta phải tạo ra khối dữ liệu và gán cấu trúc kiểu dữ liệu mà sẽ được đọc hay ghi, trước khi nó có thể được sử dụng với lệnh MB_SLAVE.

Lƣu ý Khối dữ liệu Modbus Holding Register phải tham chiếu một khối dữ liệu tổng thể đƣợc tạo ra với hộp thuộc tính Symbolic Access Only không đƣợc đánh dấu. Ta phải không đánh dấu vào hộp “Symbolic Access Only” khi ta thêm vào một khối dữ liệu mới để tạo ra một kiểu DB tổng thể cổ điển. Các thanh ghi giữ có thể sử dụng những cấu trúc dữ liệu DB sau:  Mảng tiêu chuẩn của các từ  Cấu trúc từ được đặt tên  Cấu trúc phức hợp được đặt tên Các ví dụ chương tình sau đây thể hiện cách sử dụng thông số MB_HOLD_REG để điều khiển các cấu trúc dữ liệu DB. Ví dụ 1 – mảng tiêu chuẩn các từ Thanh ghi giữ ở ví dụ này là một mảng gồm các từ. Các phép gán kiểu dữ liệu có thể được thay đổi sang các kiểu kích thước từ khác (Int và UInt). Thuận lợi:  Kiểu cấu trúc thanh ghi giữ này rất nhanh và đơn giản để tạo ra.  Logic chương trình để truy xuất một phần tử dữ liệu được đơn giản. Bất lợi: CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-182

SIMATIC S7 - 1200

 Mặc dù ta có thể tham chiếu một cách theo chương trình trong mỗi phần tử mảng

bằng

các

tên



hiệu

(từ

“HR_DB”.”Array”[1]

đến

“HR_DB”.”Array”[10]), nhưng các tên gọi không miêu tả chức năng bên trong của dữ liệu.  Mảng có thể bao gồm chỉ một kiểu dữ liệu. Việc chuyển đổi có thể là cần thiết trong một chương trình người dùng với điều khiển kiểu cứng. Đây là cách thức mà một mảng gồm nhiều từ sẽ xuất hiện trong trình soạn thảo khối dữ liệu:

Hình ảnh dưới đây thể hiện cách thức một mảng sẽ được gán giá trị đến ngõ vào MB_HOLD_REG của một lệnh MB_SLAVE.

Mỗi phần tử của mảng có thể được truy xuất bằng tên ký hiệu, như thể hiện phía dưới. Trong ví dụ này, một giá trị mới được di chuyển vào trong phần tử thứ hai của mảng tương ứng với địa chỉ Modbus 40002.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-183

SIMATIC S7 - 1200

Mỗi một từ của các từ trong mảng, như được xác định trong khối dữ liệu, cung cấp lệnh MB_SLAVE với các địa chỉ thanh ghi giữ Modbus. Trong trường hợp này, do chỉ có 10 phần tử trong mảng nên chỉ có 10 địa chỉ thanh ghi giữa có sẵn có thể sử dụng bằng lệnh MB_SLAVE và có thể truy xuất bằng một phần chủ Modbus. Sự tương quan của các tên gọi phần tử mảng và các địa chỉ Modbus được thể hiện dưới đây: “HR_DB”.Array[1]

Địa chỉ Modbus 40001

“HR_DB”.Array[2]

Địa chỉ Modbus 40002

“HR_DB”.Array[3]

Địa chỉ Modbus 40003





“HR_DB”.Array[9]

Địa chỉ Modbus 40009

“HR_DB”.Array[10]

Địa chỉ Modbus 40010

Ví dụ 2 – Cấu trúc từ đƣợc đặt tên Thanh ghi giữ trong ví dụ này là một chuỗi các từ với các tên ký hiệu miêu tả. Thuận lợi:  Mỗi phần tử cấu trúc có một tên miêu tả với kiểu dữ liệu xác định được gán đến nó. Bất lợi:  Để tạo ra kiểu cấu trúc này phải mất nhiều thời gian hơn so với mảng tiêu chuẩn gồm nhiều từ.  Các phần tử đòi hỏi việc tham chiếu ký hiệu bổ sung khi được sử dụng trong một chương trình người dùng. Trong khi phần tử đầu tiên của một mảng đơn được tham chiếu là “HR_DB”.Array[0] thì phần tử đầu tiên của kiểu này được tham chiếu là “HR_DB”.Data>Temp[1].

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-184

SIMATIC S7 - 1200

Sau đây là cách thức một cấu trúc từ được đặt tên sẽ xuất hiện trong trình soạn thảo khối dữ liệu. Mỗi phần tử có một tên đơn nhất và có thể là kiểu Word, UInt hay Int.

Hình ảnh dưới đây thể hiện cách mà cấu trúc dữ liệu ở trên sẽ được gán giá trị đến ngõ vào MB_HOLD_REG của một lệnh MB_SLAVE trong chương trình.

Mỗi phần tử của mảng có thể được truy xuất bằng tên ký hiệu của nó được thể hiện dưới đây. Trong ví dụ này, một giá trị mới được di chuyển vào trong phần tử thứ hai của mảng tương ứng với địa chỉ Modbus 40002.

Phép đối xạ của các tên phần tử dữ liệu đối với các địa chỉ Modbus được thể hiện dưới đây: “HR_DB”.Data.Temp_1

Địa chỉ Modbus 40001

“HR_DB”.Data.Temp_2

Địa chỉ Modbus 40002

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-185

SIMATIC S7 - 1200

“HR_DB”.Data.Temp_3

Địa chỉ Modbus 40003

“HR_DB”.Data.Good_Count

Địa chỉ Modbus 40004

“HR_DB”.Data.Bad_Count

Địa chỉ Modbus 40005

“HR_DB”.Data.Rework_Count

Địa chỉ Modbus 40006

“HR_DB”.Data.Line_Stops

Địa chỉ Modbus 40007

“HR_DB”.Data.Avg_Time

Địa chỉ Modbus 40008

“HR_DB”.Data.Code_1

Địa chỉ Modbus 40009

“HR_DB”.Data.Code_2

Địa chỉ Modbus 40010

Ví dụ 3 – Cấu trúc phức hợp đƣợc đặt tên Thanh ghi giữ trong ví dụ này là một chuỗi các kiểu dữ liệu được hòa trộn với các tên ký hiệu miêu tả. Thuận lợi:  Mỗi phần tử cấu trúc có một tên miêu tả với một kiểu dữ liệu xác định được gán cho nó.  Nó cho phép chuyển tải trực tiếp các kiểu dữ liệu không dựa trên từ. Bất lợi:  Để tạo ra kiểu cấu trúc này phải mất nhiều thời gian hơn so với mảng tiêu chuẩn gồm nhiều từ.  Phần chủ Modbus cần được cấu hình để nhận dữ liệu sẽ được nhận từ phần phụ thuộc Modbus. Như được thể hiện ở hình ảnh phía dưới, Temp_1 là một giá trị thực 4 byte. Phần chủ đóng vai trò nhận cần phải có khả năng lắp ghép 2 từ nhận được trở lại vào trong giá trị thực được mong đợi.  Các phần tử đòi hỏi việc tham chiếu ký hiệu bổ sung trong chương trình của ta. Trong khi phần tử đầu tiên của một mảng đơn được tham chiếu là “HR_DB”.Array[0] thì phần tử đầu tiên của kiểu dữ liệu này lại được tham chiếu là “HR_DB”.Data.Temp_1. CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-186

SIMATIC S7 - 1200

Đây là cách thức mà một cấu trúc phức hợp được đặt tên sẽ xuất hiện trong trình soạn thảo khối dữ liệu. Mỗi phần tử có một tên đơn nhất với nhiều kích thước và nhiều kiểu dữ liệu:

Phép đối xạ của các tên phần tử dữ liệu đối với các địa chỉ Modbus được thể hiện dưới đây: “HR_DB”.Data.Temp_1

Địa chỉ Modbus 40001 và 40002

“HR_DB”.Data.Temp_2

Địa chỉ Modbus 40003 và 40004

“HR_DB”.Data.Good_Count

Địa chỉ Modbus 40005 và 40006

“HR_DB”.Data.Bad_Count

Địa chỉ Modbus 40007 và 40008

“HR_DB”.Data.Rework_Count

Địa chỉ Modbus 40009 và 40010

“HR_DB”.Data.Line_Stops

Địa chỉ Modbus 40011

“HR_DB”.Data.Avg_Time

Địa chỉ Modbus 40012

“HR_DB”.Data.Long_Code

Địa chỉ Modbus 40013 và 40014

“HR_DB”.Data.Code_1

Địa chỉ Modbus 40015

“HR_DB”.Data.Code_2

Địa chỉ Modbus 40016

Một kiểu vận hành CPU S7 – 1200 khác giống như một phần chủ Modbus có thể sử dụng lệnh MB_MASTER và một cấu trúc dữ liệu đồng nhất để nhận khối dữ liệu từ kiểu vận hành CPU S7 – 1200 giống như một phần phụ thuộc Modbus. Lệnh phần chủ Modbus này sẽ sao chép tất cả 16 từ của dữ liệu một cách trực tiếp từ khối dữ liệu CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-187

SIMATIC S7 - 1200

HR_DB của phần phụ thuộc vào trong khối dữ liệu Process Data của phần chủ, như được thể hiện dưới đây:

Một chuỗi các vị trí khối dữ liệu DATA_PTR phần chủ Modbus có thể được sử dụng để truyền phát các cấu trúc giống nhau hay khác nhau từ nhiều phần phụ thuộc Modbus. Các mã điều kiện Giá trị STATUS

Miêu tả

(W#16#...) 80C8

Hết thời gian chờ đáp ứng được xác định (liên quan đến RCVTIME hay MSGTIME) bằng 0. Bộ nhận ban hành một truy vấn điều khiển dòng để tạm ngưng một sự truyền phát hoạt động và không bao giờ cho phép trở lại sự truyền phát trong suốt thời

80D1

gian chờ được xác định. Lỗi này còn được sinh ra trong suốt sự điều khiển dòng phần cứng khi bộ nhận không giữ vững CTS trong khoảng thời gian chờ được xác định.

80D2 80E0

Yêu cầu truyền phát đã bị bãi bỏ bì không có tín hiệu DSR nào được nhận từ DCE. Thông điệp được kết thúc do bộ đệm nhận đầy.

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Trang 5-188

SIMATIC S7 - 1200 80E1

Thông điệp được kết thúc như một kết quả của một lỗi chẵn lẻ.

80E2

Thông điệp được kết thúc như một kết quả của một lỗi lập khung.

80E3

Thông điệp được kết thúc như một kết quả của lỗi chạy quá mức.

80E4

Thông điệp được kết thúc như một kết quả của một độ dài xác định vượt quá kích thước bộ đệm tổng.

8180

Giá trị ID cổng không hợp lệ.

8186

Địa chỉ trạm Modbus không hợp lệ.

8187

Con trỏ không hợp lệ chỉ đến MB_HOLD_REG

818C

Con trỏ chỉ đến một kiểu cho phép DB kiểu DATA_PTR (phải là một kiểu Classic DB)

Giá trị STATUS

Miêu tả

(W#16#...) Mã đáp ứng được gửi đến

phần

chủ

Modbus (B#16#...) 8380

Không đáp ứng

Lỗi CRC

8381

01

Mã hàm không được hỗ trợ

8382

Không đáp ứng

Lỗi độ dài dữ liệu

8383

02

Lỗi địa chỉ dữ liệu

8384

03

Lỗi giá trị dữ liệu

8385

03

CHƢƠNG 5: TẬP LỆNH LẬP TRÌNH

Giá trị mã chẩn đoán dữ liệu không được hỗ trợ (mã hàm 08)

Trang 5-189

SIMATIC S7 - 1200

Chƣơng 6 PROFINET

CHƢƠNG 6: PROFINET

Trang 6 - 1

SIMATIC S7 - 1200

CPU S7-1200 có một cổng PROFINET được tích hợp, hỗ trợ cả tiêu chuẩn truyền thông Ethernet và dựa trên TCP/IP. Các giao thức ứng dụng sau đây được hỗ trợ bởi CPU S7-1200:  Giao thức điều khiển vận chuyển (Transport Control Protocol – TCP)  ISO trên TCP (RFC 1006) CPU S7-1200 có thể giao tiếp với các CPU S7-1200 khác, với thiết bị lập trình STEP 7 Basic, với các thiết bị HMI, và với các thiết bị không phải của Siemens bằng cách sử dụng các giao thức truyền thông TCP tiêu chuẩn. Có hai cách để giao tiếp sử dụng PROFINET:  Kết nối trực tiếp: sử dụng kết nối trực tiếp khi ta đang sử dụng một thiết bị lập trình, HMI hay một CPU khác được kết nối đến một CPU riêng lẻ.  Kết nối mạng: sử dụng các truyền thông mạng khi ta đang kết nối với hơn hai thiết bị (ví dụ các CPU, HMI, các thiết bị lập trình, và các thiết bị không phải của Siemens). Kết nối trực tiếp: thiết bị lập trình được kết nối đến CPU S7-1200

Kết nối trực tiếp: HMI được kết nối đến CPU S7-1200

Kết nối trực tiếp: một CPU S7-1200 được kết nối đến một CPU S7-1200 khác

CHƢƠNG 6: PROFINET

Trang 6 - 2

SIMATIC S7 - 1200

Kết nối mạng: có nhiều hơn 2 thiết bị được kết nối với nhau, bằng cách sử dụng một bộ chuyển mạch

Ethernet

CSM1277  Một bộ chuyển mạch Ethernet là không cần thiết đối với một kết nối trực tiếp giữa một thiết bị lập trình hay HMI với một CPU. Bộ chuyển mạch Ethernet chỉ được yêu cầu cho một mạng với nhiều hơn 2 CPU hay các thiết bị HMI. Bộ chuyển mạch Ethernet 4 cổng CSM1277 của Siemens có thể được dùng để kết nối các CPU và các thiết bị HMI. Cổng PROFINET trên CPU S7-1200 không chứa một thiết bị chuyển mạch Ethernet. Số lƣợng tối đa các kết nối đối với cổng PROFINET Cổng PROFINET trên CPU hỗ trợ các kết nối truyền thông đồng thời sau đây:  3 kết nối đối với truyền thông HMI đến CPU  1 kết nối đối với truyền thông thiết bị lập trình (PG) đến CPU  8 kết nối đối với truyền thông chương trình S7-1200 bằng cách sử dụng các lệnh khối T (TSEND_C, TRCV_C, TCON, TDISCON, TSEN, TRCV)  3 kết nối đối với một CPU S7-1200 thụ động giao tiếp với một CPU S7 tích cực -

CPU S7 tích cực sử dụng các lệnh GET và PUT (S7-300 và S7-400) hay các lệnh ETHx_XFER (S7-200).

-

Một kết nối truyền thông S7-1200 tích cực chỉ có thể thực hiện với các lệnh khối T.

Các TSAP bị hạn chế hay các số hiệu cổng đối với truyền thông ISO và TCP tích cực Nếu ta sử dụng lệnh “TCON” để thiết lập và tạo thành một kết nối truyền thông tích cực, các địa chỉ cổng sau đây bị hạn chế và không nên được dùng:  TSAP ISO (tích cực): 01.00, 01.01, 02.00, 02.01, 03.00, 03.01  Cổng TCP (tích cực): 5001, 102, 123, 20, 21, 25, 34962, 34963, 34964, 80 CHƢƠNG 6: PROFINET

Trang 6 - 3

SIMATIC S7 - 1200

6.1.

Truyền thông với một thiết bị lập trình Một CPU có thể giao tiếp với một thiết bị lập trình STEP 7 Basic trên một

mạng. Cần chú ý đến những điều sau khi thiết lập truyền thông giữa một CPU và một thiết bị lập trình.

 Cấu hình/thiết lập: cấu hình phần cứng được yêu cầu  Không có một bộ chuyển mạch Ethernet nào được yêu cầu đối với truyền thông một đối một; một bộ chuyển mạch Ethernet được yêu cầu cho nhiều hơn hai thiết bị trong một mạng. 6.1.1. Thành lập kết nối truyền thông phần cứng. Các giao diện PROFINET thành lập các kết nối vật lý giữa một thiết bị lập trình và một CPU. Bởi vì chức năng Auto-Cross-Over được tích hợp bên trong CPU, một cáp Ethernet tiêu chuẩn hoặc xuyên chéo có thể được sử dụng cho giao diện. Một bộ chuyển mạch Ethernet không được yêu cầu để kết nối một thiết bị lập trình một cách trực tiếp đến một CPU. Thực hiện theo các bước sau đây để tạo ra kết nối phần cứng giữa thiết bị lập trình và một CPU: 1. Lắp đặt CPU. 2. Cắm cáp Ethernet vào trong cổng PROFINET được thể hiện dưới đây. 3. Kết nối cáp Ethernet đến thiết bị lập trình.

CHƢƠNG 6: PROFINET

Trang 6 - 4

SIMATIC S7 - 1200

 Cổng PROFINET Một đầu thay thế kéo căng tùy chọn thì có sẵn để kéo dài kết nối PROFINET. 6.1.2. Cấu hình các thiết bị. Nếu ta đã vừa tạo ra một đề án với một CPU, hãy mở đề án trong TIA Portal. Nếu không, tạo ra một đề án và lắp đặt một CPU vào thanh dẫn. Trong đề án dưới đây, một CPU được hiển thị trong mục “Device View” của TIA Portal.

CHƢƠNG 6: PROFINET

Trang 6 - 5

SIMATIC S7 - 1200

6.1.3. Gán các địa chỉ IP (Internet Protocol) 6.1.3.1.

Gán các địa chỉ IP đến các thiết bị lập trình và các thiết bị mạng

Nếu thiết bị lập trình đang sử dụng một mạch giao tiếp tích hợp được kết nối đến mạng LAN của nhà máy (và world-wide web là có sẵn), Network ID của địa chỉ IP và màn chắn mạng con của CPU và mạch giao tiếp tích hợp của thiết bị lập trình phải giống nhau một cách chính xác. Network ID là phần đầu tiên của địa chỉ IP (ba nhóm 8 bit đầu tiên) (ví dụ 211.154.184.16) xác định mạng IP nào mà ta đang kết nối. Màn chắn mạng con thường có một giá trị là 255.255.255.0; tuy nhiên, vì máy tính của ta đang ở trên một mạng LAN của nhà máy, màn chắn mạng con có thể có các giá trị khác nhau (ví dụ 255.255.254.0) nhằm mục đích thiết lập các mạng con đồng nhất. Màn chắn mạng con, khi được kết nối với địa chỉ IP trong phép toán AND thuộc về toán học, sẽ xác định các giới hạn của một mạng con IP. Lƣu ý Trong một chuỗi sự kiện world-wide web, nơi mà các thiết bị lập trình, các thiết bị mạng và các bộ định tuyến (router) IP sẽ giao tiếp với toàn thế giới, các địa chỉ IP đơn nhất phải được gán để tránh sự xung đột với các người dùng mạng khác. Để gán các địa chỉ IP ta nên liên hệ với nhân sự tại phòng IT trong công ty.

Nếu thiết bị lập trình đang sử dụng một mạch giao tiếp Etherner – USB được kết nối đến một mạng bị cô lập, Network ID của địa chỉ IP và màn chắn mạng con của CPU và của mạch giao tiếp Etherner – USB trong thiết bị lập trình phải giống nhau một cách chính xác. Network ID là phần đầu tiên của địa chỉ IP (ba nhóm 8 bit đầu tiên) (ví dụ 211.154.184.16) xác định mạng IP nào mà ta đang kết nối. Màn chắn mạng con thường có một giá trị là 255.255.255.0. Màn chắn mạng con, khi được kết nối với địa chỉ IP trong một phép toán AND thuộc về toán học, sẽ xác định các giới hạn của một mạng con IP.

CHƢƠNG 6: PROFINET

Trang 6 - 6

SIMATIC S7 - 1200

Lƣu ý Một mạch giao tiếp Ethernet – USB là hữu ích khi ta không cần CPU nằm trên mạng LAN của công ty. Trong suốt các kiểm tra kiểm chứng hay thử nghiệm ban đầu, sự bố trí này là đặc biệt hữu ích.

Mạch giao tiếp thiết bị lập trình

Kiểu

Địa chỉ IP

mạng

Màn chắn mạng con

Network ID của CPU Màn chắn mạng con của CPU và mạch giao Được kết đến

nối mạng Mạch

giao

tiếp tích hợp

LAN của nhà

máy

(và

và của mạch giao tiếp tiếp tích hợp phải giống nhau một cách chính trong thiết bị lập trình xác. phải giống nhau một Màn chắn mạng con thường có một giá trị là cách chính xác.

255.255.255.0; tuy nhiên, vì máy tính của ta

Network ID là phần đang ở trên một mạng LAN của nhà máy, đầu tiên của địa chỉ IP màn chắn mạng con có thể có các giá trị khác (ba nhóm 8 bit đầu nhau (ví dụ 255.255.254.0) nhằm mục đích

worldwide web là có sẵn)

tiên)

(ví

211.154.184.16)

dụ thiết lập các mạng con đồng nhất. Màn chắn xác mạng con, khi được kết nối với địa chỉ IP

định mạng IP nào mà trong phép toán AND thuộc về toán học, sẽ ta đang kết nối.

xác định các giới hạn của một mạng con IP.

Network ID của CPU và của mạch giao tiếp Ethernet-USB

trong

thiết bị lập trình phải Mạch

giao Được kết đến

tiếp

nối

Ethernet-

một mạng

USB

bị cô lập

giống nhau một cách chính xác. Network ID là phần đầu tiên của địa chỉ IP (ba nhóm 8 bit đầu tiên)

(ví

211.154.184.16)

dụ xác

Màn chắn mạng con của CPU và mạch giao tiếp tích hợp phải giống nhau một cách chính xác. Màn chắn mạng con thường có một giá trị là 255.255.255.0. Màn chắn mạng con, khi được kết nối với địa chỉ IP trong một phép toán AND thuộc về toán học, sẽ xác định các giới hạn của một mạng con IP.

định mạng IP nào mà ta đang kết nối.

CHƢƠNG 6: PROFINET

Trang 6 - 7

SIMATIC S7 - 1200

Gán giá trị hay kiểm tra địa chỉ IP của thiết bị lập trình bằng cách sử dụng “My Network Places” (trên màn hình) Ta có thể gán giá trị hay kiểm tra địa chỉ IP của thiết bị lập trình với các lựa chọn trình đơn sau đây:  (Nhấp chuột phải) “My Network Places”  “Properties”  (Nhấp chuột phải) “Local Area Connection” Trong hộp thoại “Local Area Connection Properties”, trong trường “This connection uses the following items”, cuộn chuột xuống đến “Internet Protocol (TCP/IP)”. Nhấp vào “Internet Protocol (TCP/IP)”, và nhấp vào nút “Properties”. Lựa chọn “Obtain an IP address automatically (DHCP)” hay “Use the following IP address” (để nhập vào một địa chỉ IP tĩnh). Lƣu ý Dynamic Host Configuration Protocol (DHCP) sẽ tự động gán một địa chỉ IP vào thiết bị lập trình trong lúc bật nguồn từ máy chủ DHCP.

CHƢƠNG 6: PROFINET

Trang 6 - 8

SIMATIC S7 - 1200

Kiểm tra địa chỉ IP của thiết bị lập trình bằng cách sử dụng các lệnh “ipconfig” và “ipconfig/all” Ta cũng có thể kiểm tra địa chỉ IP của thiết bị lập trình, và, nếu thực hiện được, cả địa chỉ IP của bộ định tuyến IP (cổng ra vào) với các lựa chọn trình đơn sau đây:  Nút “Start” (trên màn hình)  “Run” Trong hộp thoại “Run”, trong trường “Open”, gõ “cmd” và nhấp vào nút “OK”. Trong hộp thoại “C:\WINDOWS\systme32\cmd.exe” được hiển thị, nhập vào lệnh “ipconfig”. Một kết quả ví dụ như sau:

Các thông tin thêm nữa có thể được hiển thị với một lệnh “ipconfig/all”. Kiểu mạch giao tiếp của thiết bị lập trình và địa chỉ Ethernet (MAC) có thể được tìm thấy tại đây:

Gán một địa chỉ IP đến một CPU Ta có thể sử dụng một trong các phương pháp sau đây để gán các địa chỉ IP đến một CPU:  Gán một địa chỉ IP trực tuyến  Cấu hình một địa chỉ IP trong đề án CHƢƠNG 6: PROFINET

Trang 6 - 9

SIMATIC S7 - 1200

6.1.3.2.

Gán một địa chỉ IP trực tuyến.

Ta có thể gán một địa chỉ IP cho một thiết bị trong mạng một cách trực tuyến. Điều này đặc biệt hữ ích trong sự cấu hình thiết bị ban đầu. Sử dụng thủ tục sau đây để gán một địa chỉ IP theo cách trực tuyến: 1. Trong

“Project

tree”,

kiểm

chứng rằng không có địa chỉ IP nào được gán đến CPU, với các lựa chọn trong trình đơn sau đây:  “Online access”  <Mạch giao tiếp dành cho mạng mà thiết bị được đặt trong đó>  “Updates accessible devices”

2. Trong “Project tree”, thực hiện các lựa chọn trong trình đơn sau đây:  “Online access”  <Mạch giao tiếp dành cho mạng mà thiết bị được đặt trong đó>  “Updates accessible devices”  <địa chit thiết bị>  “Online & diagnostics”

CHƢƠNG 6: PROFINET

Trang 6 - 10

SIMATIC S7 - 1200

3. Trong hộp thoại “Online & diagnostics”, thực hiện các lựa chọn trong trình đơn sau đây:  “Functions”  “Assign IP address”

4. Trong trường “IP address”, nhập vào địa chỉ IP mới.

5. Trong “Project tree”, kiểm nghiệm rằng địa chỉ IP mới đã được gán đến CPU, với các lựa chọn trình đơn sau đây:  “Online access”   “Update accessible devices”

CHƢƠNG 6: PROFINET

Trang 6 - 11

SIMATIC S7 - 1200

6.1.3.3.

Cấu hình một địa chỉ IP trong đề án.

Cấu hình giao diện PROFINET Sau khi cấu hình CPU trên thanh đỡ, ta có thể cấu hình các thông số của giao diện PROFINET. Để thực hiện điều này, nhấp chuột vào hộp màu xanh lá trên CPU để lựa chọn cổng PROFINET. Thẻ “Properties” trong cửa sổ kiểm tra sẽ hiển thị cổng PROFINET.

 Cổng PROFINET Cấu hình địa chỉ IP Địa chỉ Ethernet (MAC): trong một mạng PROFINET, mỗi thiết bị được gán một địa chỉ MAC (Media Address Control) bởi nhà sản xuất để cho mục đích nhận dạng. Một địa chỉ MAC bao gồm 6 nhóm gồm 2 con số thập lục phân, được ngăn cách bởi dấu gạch ngang (-) hay dấu hai chấm (:), theo thứ tự truyền phát (ví dụ: 01-23-4567-89-AB hay 01:23:45:67:89:AB). Địa chỉ IP: mỗi thiết bị còn phải có một địa chỉ IP (Internet Protocol). Địa chỉ này cho phép thiết bị chuyển giao dữ liệu trên một mạng được định tuyến và phức tạp hơn. Mỗi địa chỉ IP được chia thành 4 phần 8 bit và được biểu thị theo định dạng thập phân có dấu chấm (ví dụ 211.154.184.16). Phần đầu tiên của địa chỉ IP được sử dụng cho Network ID (Mạng mà ta đang kết nối), và phần thứ hai dành cho Host ID (đơn nhất đối với mỗi thiết bị trên mạng). Một địa chỉ IP 192.168.x.y là một ký hiệu tiêu chuẩn được nhận biết như một phần của một mạng riêng mà không được định tuyến trên Internet.

CHƢƠNG 6: PROFINET

Trang 6 - 12

SIMATIC S7 - 1200

Màn chắn mạng con: mạng con là một tập hợp logic gồm nhiều thiết bị mạng được kết nối với nhau. Các nút trên một mạng con có khuynh hướng được đặt lân cận gần nhau về mặt vật lý trên một mạng LAN (Local Area Network). Một màn chắn (còn gọi là màn chắn mạng con hay màn chắn mạng) xác định các giới hạn của một mạng con IP. Chỉ có kết nối giữa các mạng con khác nhau là thông qua một bộ định tuyến. Nếu các mạng con được sử dụng, một bộ định tuyến IP phải được dùng. Bộ định tuyến IP: các bộ định tuyến là liên kết giữa các mạng LAN. Bằng cách sử dụng một bộ định tuyến, một máy tính trong mạng LAN có thể gửi đi các thông điệp đến bất kỳ các mạng nào khác mà có thể có các mạng LAN khác nằm sau nó. Nếu đích đến của dữ liệu không nằm trong mạng LAN, bộ định tuyến sẽ chuyển tiếp dữ liệu đến một mạng khác hay một nhóm các mạng khác, nơi mà nó có thể được chuyển đến đích. Các bộ định tuyến phụ thuộc vào các địa chỉ IP để chuyển giao và thu nhận các gói dữ liệu. Các thuộc tính của địa chỉ IP: trong cửa sổ Properties, lựa chọn mục nhập cấu hình “Ethernet address”. TIA Portal sẽ hiển thị hộp thoại cấu hình địa chỉ Ethernet, liên quan giữa đề án phần mềm với địa chỉ IP của CPU sẽ nhận đề án đó.

Lƣu ý CPU không có một địa chỉ IP đươc cấu hình sẵn. Ta phải gán một địa chỉ IP một cách thủ công cho CPU. Nếu CPU được kết nối đến bộ định tuyến trên một mạng, ta còn phải nhập vào địa chỉ IP của bộ định tuyến đó. Tất cả các địa chỉ IP được cấu hình khi ta tải xuống đề án. CHƢƠNG 6: PROFINET

Trang 6 - 13

SIMATIC S7 - 1200 Thông số

Miêu tả Tên của mạng con mà thiết bị được kết nối đến. Nhấp vào nút “Add new subnet” để tạo ra một mạng con mới. Mặc định là “Not connected”.

Mạng con

Giao thức IP

Hai kiểu kết nối có thể: 

Mặc định “Not connected” cung cấp một kết nối cục bộ.



Một mạng con được yêu cầu khi mạng có từ hai thiết bị trở lên

Địa chỉ IP

Địa chỉ IP được gán dành cho CPU

Màn chắn mạng con

Màn chắn mạng con được gán

Sử dụng bộ định tuyến mạng con Địa chỉ bộ định tuyến

CHƢƠNG 6: PROFINET

Nhấp vào hộp chọn để biểu thị việc sử dụng một bộ định tuyến IP Địa chỉ IP được gán dành cho bộ định tuyến, nếu áp dụng được

Trang 6 - 14

SIMATIC S7 - 1200

6.1.4. Kiểm tra mạng PROFINET. Sau khi hoàn tất sự cấu hình, ta tải xuống đề án vào CPU. Tất cả các địa chỉ IP được cấu hình khi ta tải xuống đề án.

Gán một địa chỉ IP đến một thiết bị một cách trực tuyến CPU S7-1200 không có một địa chỉ IP được cấu hình sẵn. Ta phải gán địa chỉ IP một cách thủ công cho CPU. Để gán một địa chỉ IP trong đề án, ta phải cấu hình địa chỉ IP trong Device configuration, lưu sự cấu hình và tải nó xuống vào PLC.

Lƣu ý Nếu ta đã gán các địa chỉ IP trực tuyến, ta có thể thay đổi các địa chỉ IP được gán trực tuyến bằng cách sử dụng phương pháp cấu hình phần cứng trực tuyến hay ngoại tuyến. Nếu ta đã gán các địa chỉ IP trong cấu hình phần cứng ngoại tuyến, ta chỉ có thể thay đổi các địa chỉ IP được gán trong đề án bằng cách sử dụng phương pháp cấu hình phần cứng ngoại tuyến.

CHƢƠNG 6: PROFINET

Trang 6 - 15

SIMATIC S7 - 1200

Sử dụng “Online access” để hiển thị địa chỉ IP của CPU được kết nối như dưới đây:

 Mạng thứ hai trong số hai mạng Ethernet trên thiết bị lập trình này  Địa chỉ IP của chỉ CPU S7-1200 trên mạng Ethernet này

Lƣu ý Tất cả các mạng được cấu hình của thiết bị lập trình đều được hiển thị. Ta phải lựa chọn mạng chính xác để hiển thị địa chỉ IP của CPU S7-1200 được yêu cầu.

Sử dụng hộp thoại “Extended download to device” để kiểm tra các thiết bị mạng đƣợc kết nối Chức năng “Download to device” của CPU S7-1200 và hộp thoại “Extended download to device” của nó có thể hiển thị tất cả các thiết bị mạng có thể truy cập được và lúc nào hay không phải lúc mà các địa chỉ IP đơn nhất đã được gán đến tất cả các thiết bị. Để hiển thị tất cả các thiết bị có sẵn và có thể truy cập với các địa chỉ MAC và IP của chúng, ta chọn vào hộp chọn “Show all accessible devices”.

CHƢƠNG 6: PROFINET

Trang 6 - 16

SIMATIC S7 - 1200

Nếu thiết bị mạng được yêu cầu không có trong danh sách này, truyền thông đến thiết bị đó đã bị ngắt vì một vài lý do. Thiết bị và mạng phải được kiểm tra đối với các lỗi về phần cứng và/hay về cấu hình.

CHƢƠNG 6: PROFINET

Trang 6 - 17

SIMATIC S7 - 1200

6.2.

Giao tiếp HMI – PLC.

CPU hỗ trợ các kết nối truyền thông PROFINET đến các HMI. Những yêu cầu sau đây phải được cân nhắc đến khi thiết lập truyền thông giữa CPU và HMI: Cấu hình/Cài đặt:  Cổng PROFINET của CPU phải được cấu hình để kết nối với HMI.  HMI phải được thiết lập và được cấu hình.  Thông tin cấu hình HMI là một phần của đề án CPU và có thể được cấu hình và được tải xuống chỉ trong đề án.  Không có chuyển mạch Ethernet nào được yêu cầu đối với truyền thông một đối một; chuyển mạch Ethernet chỉ cần thiết đối với trường hợp trong mạng có từ hai thiết bị trở lên.

Lƣu ý Chuyển mạch Ethernet 4 cổng Siemens CSM1277 gắn vào thanh đỡ có thể được sử dụng để kết nối các thiết bị CPU và HMI. Cổng PROFINET trên CPU không chứa một thiết bị chuyển mạch Ethernet.

Các chức năng được hỗ trợ:  HMI có thể đọc/ghi dữ liệu đến CPU.  Các thông điệp có thể được kích hoạt, dựa trên thông tin được truy tìm từ CPU.  Các chẩn đoán hệ thống.

CHƢƠNG 6: PROFINET

Trang 6 - 18

SIMATIC S7 - 1200

Lƣu ý Phần mềm WinCC Basic và STEP 7 Basic là các thành phần của TIA Portal. Cần tham khảo phần mềm WinCC Basic về thông tin trong việc cấu hình HMI

Các bƣớc cần thiết trong việc cấu hình truyền thông giữa một HMI và một CPU Bƣớc

Nhiệm vụ Thành lập kết nối truyền thông phần cứng Một giao diện PROFINET thành lập kết nối vật lý giữa một HMI và một CPU. Do

1

chức năng Auto-Cross-Over được thiết kế vào trong CPU, ta có thể sử dụng cả cáp Ethernet loại tiêu chuẩn hay loại xuyên chéo cho giao diện. Kết nối giữa một HMI đến một CPU không yêu cầu chuyển mạch Ethernet.

2

Cấu hình các thiết bị

3

Cấu hình các kết nối mạng logic giữa một HMI và một CPU. Cấu hình một địa chỉ IP trong đề án

4

Sử dụng cùng một quá trình cấu hình, tuy nhiên ta phải cấu hình các địa chỉ IP cho HMI và CPU.

5

Kiểm tra mạng PROFINET Ta phải tải xuống cấu hình cho mỗi CPU.

CHƢƠNG 6: PROFINET

Trang 6 - 19

SIMATIC S7 - 1200

6.2.1. Cấu hình các kết nối mạng logic giữa một HMI và một CPU. Sau khi cấu hình CPU trên thanh đỡ, bây giờ ta sẵn sàng để cấu hình các kết nối mạng. Trong cổng “Devices and Networks”, sử dụng “Network view” để tạo ra các kết nối mạng giữa các thiết bị trong đề án. Để tạo ra kết nối mạng, lựa chọn hộp màu xanh lá (Ethernet) trên CPU. Kéo một đường đến hộp Ethernet trên thiết bị HMI. Thả chuột và kết nối Ethernet đã được nối. Thao tác

Kết quả

Lựa chọn “Network view” để hiển thị các thiết bị dùng để kết nối

Lựa chọn cổng trên một thiết bị và kéo kết nối đến cổng trên thiết bị thứ hai

Thả chuột để tạo ra kết nối mạng

CHƢƠNG 6: PROFINET

Trang 6 - 20

SIMATIC S7 - 1200

6.3.

Giao tiếp PLC với PLC. Một CPU có thể giao tiếp với một CPU khác trên một mạng bằng cách sử dụng các lệnh TSEND_C và TRCV_C.

Cần chú ý đến những điều sau đây khi thiết lập truyền thông giữa hai CPU:  Cấu hình/Thiết lập: cấu hình phần cứng được yêu cầu.  Các chức năng được hỗ trợ: đọc/ghi dữ liệu đến một CPU ngang hàng.  Không có chuyển mạch Ethernet nào được yêu cầu đối với truyền thông một đối một; chuyển mạch Ethernet chỉ cần thiết đối với trường hợp trong mạng có từ hai thiết bị trở lên. Các bƣớc cần thiết trong việc cấu hình truyền thông giữa hai CPU Bƣớc

Nhiệm vụ Thành lập kết nối truyền thông phần cứng Một giao diện PROFINET thành lập kết nối vật lý giữa một HMI và một CPU. Do

1

chức năng Auto-Cross-Over được thiết kế bên trong CPU, ta có thể sử dụng cả cáp Ethernet loại tiêu chuẩn hay loại xuyên chéo cho giao diện. Kết nối giữa một HMI đến một CPU không yêu cầu chuyển mạch Ethernet.

2 3

Cấu hình các thiết bị Ta phải cấu hình hai đề án với CPU trong mỗi đề án. Cấu hình các kết nối mạng logic giữa hai CPU. Cấu hình một địa chỉ IP trong đề án

4

Sử dụng cùng một quá trình cấu hình, tuy nhiên ta phải cấu hình các địa chỉ IP cho cả hai CPU. Cấu hình các thông số truyền (gửi) và nhận

5

Ta phải cấu hình các lệnh TSEND_C và TRCV_C trong cả hai CPU để kích hoạt truyền thông giữa chúng.

6

Kiểm tra mạng PROFINET Ta phải tải xuống cấu hình cho mỗi CPU.

CHƢƠNG 6: PROFINET

Trang 6 - 21

SIMATIC S7 - 1200

6.3.1. Cấu hình kết nối mạng logic giữa hai CPU. Sau khi cấu hình CPU trên thanh đỡ, bây giờ ta sẵn sàng để cấu hình các kết nối mạng. Trong cổng “Devices and Networks”, sử dụng “Network view” để tạo ra các kết nối mạng giữa các thiết bị trong đề án. Để tạo ra kết nối PROFINET, lựa chọn hộp màu xanh lá (PROFINET) trên PLC đầu tiên. Kéo một đường đến hộp PROFINET trên PLC thứ hai. Thả chuột và kết nối PROFINET đã được nối. Thao tác

Kết quả

Lựa chọn “Network view” để hiển thị các thiết bị dùng để kết nối

Lựa chọn cổng trên một thiết bị và kéo kết nối đến cổng trên thiết bị thứ hai

Thả chuột để tạo ra kết nối mạng

CHƢƠNG 6: PROFINET

Trang 6 - 22

SIMATIC S7 - 1200

6.3.2. Cấu hình các thông số truyền (phát) và nhận Truyền thông khối truyền phát (T-block) được sử dụng để thành lập các kết nối giữa hai CPU. Trước khi CPU có thể liên hợp vào truyền thông PROFINET, ta phải cấu hình các thông số dành cho các thông điệp truyền (gửi) và các thông điệp thu. Các thông số này thể hiện cách thức truyền thông hoạt động khi các thông điệp đang được truyền phát hay thu nhận từ một thiết bị đích. 6.3.2.1.

Cấu hình các thông số truyền (gửi) của lệnh TSEND_C

Lệnh TSEND_C Lệnh TSEND_C tạo ra một kết nối truyền thông đến một trạm đồng hành. Kết nối được thiết lập, tạo thành và được giám sát một cách tự động cho đến khi nó được ra lệnh để ngắt kết nối bởi một lệnh. Lệnh TSEND_C kết hợp các chức năng của các lệnh TCON, TDISCON và TSEND. Từ mục Device Configuration trong STEP 7 Basic, ta có thể cấu hình cách thức mà lệnh TSEND_C truyền phát dữ liệu. Để bắt đầu, ta chèn lệnh vào trong chương trình từ thư mục “Communication” trong “Extended Instruction”. Lệnh sẽ được hiển thị, cùng với hộp thoại “Call Options” mà tại đó ta gán một DB để lưu trữ các thông số của lệnh TSEND_C.

CHƢƠNG 6: PROFINET

Trang 6 - 23

SIMATIC S7 - 1200

Ta có thể gán các vùng nhớ thẻ ghi đến các ngõ vào và ngõ ra, như được thể hiện trong hình dưới đây:

Cấu hình các thông số General Ta xác định các thông số truyền thông trong hộp thoại cấu hình Properties của lệnh TRCV_C. Hộp thoại này xuất hiện gần phía dưới của trang khi ta đã lựa chọn bất kỳ một phần nào của lệnh TRCV_C. Cấu hình các thông số Connection Mỗi CPU có một cổng PROFINET được tích hợp hỗ trợ truyền thông PROFINET tiêu chuẩn. Các giao thức Ethernet được hỗ trợ sẽ được miêu tả trong hai kiểu kết nối sau đây: Giao thức

Tên giao thức

Sử dụng

RFC 1006

ISO trên TCP

Phân đoạn thông điệp và ghép lại

TCP

Giao thức điều khiển truyền tải

Truyền tải các khung dữ liệu

CHƢƠNG 6: PROFINET

Trang 6 - 24

SIMATIC S7 - 1200

ISO trên TCP (RFC 1006) ISO trên TCP là một cơ cấu kích hoạt các ứng dụng ISO được chuyển đến mạng TCP/IP. Giao thức này có các chức năng sau đây:  Một giao thức truyền thông hiệu quả được liên kết một cách chặt chẽ tới phần cứng.  Thích hợp với lượng dữ liệu từ cỡ vừa đến cỡ lớn (tối đa 8192 byte)  Trái ngược với TCP, các thông điệp thể hiện một nhận dạng kết thúc dữ liệu và được định hướng theo thông điệp.  Có khả năng định tuyến, có thể được sử dụng trong mạng WAN.  Có độ dài dữ liệu động  Việc cố gắng lập trình được yêu cầu đối với sự quản lý dữ liệu do bởi giao diện lập trình SEND/RECEIVE. Bằng cách sử dụng các điểm truy xuất dịch vụ truyền tải (Transport Service Access Points – TSAP), giao thức TCP cho phép nhiều kết nối đến một địa chỉ IP đơn lẻ (tối đa 64K kết nối). Với RFC 1006, các TSAP nhận dạng một cách đơn nhất các kết nối điểm kết thúc giao tiếp này đến một địa chỉ IP. Trong phần “Address Details” của hộp thoại Connection Parameter, ta xác định các TSAP để sử dụng. TSAP của một kết nối trong CPU sẽ được nhập vào trong trường “Local TSAP”. TSAP được gán dành cho kết nối trong CPU đồng hành sẽ được nhập vào dưới trường “Partner TSAP”.

CHƢƠNG 6: PROFINET

Trang 6 - 25

SIMATIC S7 - 1200 Định nghĩa

Thông số General

End point: Partner Tên được gán cho CPU đồng hành (thu nhận) Interface

Tên được gán cho các giao diện

Subnet

Tên được gán cho các mạng con

Address

Các địa chỉ IP được gán

Connection type

Kiểu giao thức Ethernet

Connection ID

Số hiệu ID

Connection data

Vùng lưu trữ dữ liệu của CPU cục bộ (Local) và CPU đồng hành (Partner)

Active connection Nút bấm radio để lựa chọn CPU Local hay CPU Partner đóng vai trò là setup

kết nối chủ động

Address details TSAP 1 (ASCII) TSAP ID

1

Các TSAP của CPU Local và CPU Partner theo định dạng ASCII Các TSAP của CPU Local và CPU Partner theo định dạng thập lục phân

Khi cấu hình một kết nối với một CPU S7-1200 dành cho ISO hay TCP, ta chỉ sử

dụng các ký tự ASCII trong phần mở rộng của TSAP đối với các phần đồng hành truyền thông thụ động.

CHƢƠNG 6: PROFINET

Trang 6 - 26

SIMATIC S7 - 1200

Giao thức điều khiển truyền dữ liệu (TCP) TCP là một giao thức tiêu chuẩn được miêu tả bởi RFC 793: giao thức điều khiển truyền dữ liệu (Transmission Control Protocol). Mục đích chủ yếu của TCP là để cung cấp một dịch vụ kết nối đáng tin cậy và an toàn giữa hai quá trình. Giao thức này có các chức năng sau đây:  Một giao thức truyền thông hiệu quả được liên kết một cách chặt chẽ tới phần cứng.  Thích hợp với lượng dữ liệu từ cỡ vừa đến cỡ lớn (tối đa 8192 byte)  Cung cấp nhiều một cách đáng kể các chức năng dành cho ứng dụng, đáng chú ý là: -

Khôi phục lỗi

-

Điều khiển dòng

-

Đáng tin cậy

 Một giao thức được định hướng theo kết nối  Có thể được sử dụng rất linh hoạt với các hệ thống của bên thứ ba có hỗ trợ TCP một cách chuyên biệt  Có khả năng định tuyến  Chỉ có các độ dài dữ liệu tĩnh là có thể sử dụng.  Các thông điệp được báo nhận.  Các ứng dụng được định địa chỉ bằng cách sử dụng các số hiệu cổng.  Hầu hết các giao thức ứng dụng người dùng, như là TELNET và FTP, đều sử dụng TCP.  Việc cố gắng lập trình được yêu cầu đối với sự quản lý dữ liệu do bởi giao diện lập trình SEND/RECEIVE.

CHƢƠNG 6: PROFINET

Trang 6 - 27

SIMATIC S7 - 1200

Định nghĩa

Thông số General

End point: Partner Tên được gán cho CPU đồng hành (thu nhận) Interface

Tên được gán cho các giao diện

Subnet

Tên được gán cho các mạng con

Address

Các địa chỉ IP được gán

Connection type

Kiểu giao thức Ethernet

Connection ID

Số hiệu ID

Connection data

Vùng lưu trữ dữ liệu của CPU cục bộ (Local) và CPU đồng hành (Partner)

Active connection Nút bấm radio để lựa chọn CPU Local hay CPU Partner đóng vai trò là setup

kết nối chủ động

Address details Port (thập phân)

Port của CPU Local theo định dạng thập phân

CHƢƠNG 6: PROFINET

Trang 6 - 28

SIMATIC S7 - 1200

6.4.

Thông tin tham khảo. 6.4.1. Định vị địa chỉ Ethernet (MAC) trên CPU. Trong một liên kết mạng PROFINET, một địa chỉ MAC (Media Access

Control) là một bộ định danh được gán đến các mạch giao tiếp bởi nhà sản xuất để nhận dạng. Một địa chỉ MAC thường mã hóa số hiệu nhận dạng được đằng ký của nhà sản xuất. Định dạng tiêu chuẩn (IEEE 802.3), dành cho việc in các địa chỉ MAC trong một biểu mẫu thân thiện với con người, gồm có 6 nhóm của hai chữ số thập lục phân, được ngăn cách bởi dấu gạch nối (-) hay dấu hai chấm (:), theo thứ tự truyền phát, (ví dụ 01-23-45-67-89-ab hay 01:23:45:67:89:ab).

Lƣu ý Tại nhà máy, mỗi CPU được nạp một địa chỉ MAC vĩnh viễn và đơn nhất. Ta không thể thay đổi địa chỉ MAC của một CPU.

 Địa chỉ MAC Ban đầu, CPU không có địa chỉ IP mà chỉ có địa chỉ MAC được cài đặt tại nhà máy. Truyền thông PROFINET yêu cầu rằng tất cả các thiết bị phải được gán một địa chỉ IP đơn nhất. CHƢƠNG 6: PROFINET

Trang 6 - 29

SIMATIC S7 - 1200

Ta sử dụng chức năng “Download to device”

của

CPU



hộp

thoại

“Extended download to device” để hiển thị tất cả các thiết bị mạng có thể truy cập được và đảm bảo rằng các địa chỉ IP đơn nhất đã được gán đến tất cả các thiết bị. Hộp thoại này hiển thị tất cả các thiết bị có thể truy cập và có sẵn với địa chỉ MAC và địa chỉ IP của chúng. Các địa chỉ MAC vô cùng quan trọng trong việc nhận dạng các thiết bị nào mất đi địa chỉ IP đơn nhất được yêu cầu. 6.4.2. Cấu hình sự đồng bộ hóa Network Time Protocol. Giao thức thời gian mạng (Network Time Protocol – NTP) được sử dụng rộng rãi để đồng bộ hóa thời gian của hệ thống máy tính với thời gian Internet của máy chủ. Nó cung cấp độ chính xác thường là nhỏ hơn 1 mili giây trên mạng LAN và tối đa một vài mili giây trên mạng WAN. Thông thường sự cấu hình NTP dùng nhiều các máy chủ dư ra và các đường dẫn mạng khác nhau để đạt được độ chính xác và độ tin cậy cao. Mạng con NTP vận hành với một hệ thống cấp bậc gồm nhiều cấp độ, trong đó mỗi cấp độ được gán một số hiệu được gọi từ một tầng. Các máy chủ tầng 1 (sơ cấp) tại cấp độ thấp nhất được đồng bộ hóa một cách trực tiếp đến các dịch vụ giờ quốc gia. Các máy chủ tầng 2 (thứ cấp) tại cấp độ cao hơn tiếp theo được đồng bộ hóa theo các máy chủ tầng 1 và cứ thế tiếp tục. Các thông số đồng bộ hóa thời gian Trong cửa sổ Properties, lựa chọn mục nhập cấu hình “Time synchronization”. TIA Portal sẽ hiển thị hộp thoại cấu hình Time Synchronization:

CHƢƠNG 6: PROFINET

Trang 6 - 30

SIMATIC S7 - 1200

Lƣu ý Tất cả các địa chỉ IP đều được cấu hình khi ta tải xuống một đề án..

Bảng sau đây xác định các thông số cho việc đồng bộ hóa thời gian: Thông số Enable

time-of-day

synchronization using Network Time Protocol (NTP) servers

Định nghĩa Nhấp vào hộp chọn để kích hoạt sự đồng bộ hóa giờ trong ngày bằng cách sử dụng các máy chủ NTP.

Server 1

Địa chỉ IP được gán cho máy chủ thời gian mạng 1

Server 1

Địa chỉ IP được gán cho máy chủ thời gian mạng 1

Server 1

Địa chỉ IP được gán cho máy chủ thời gian mạng 1

Server 1

Địa chỉ IP được gán cho máy chủ thời gian mạng 1

Time synchronization interval

Giá trị khoảng (giây).

CHƢƠNG 6: PROFINET

Trang 6 - 31

SIMATIC S7 - 1200

Chƣơng 7 Truyền thông điểm – điểm

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 1

SIMATIC S7 - 1200

CPU hỗ trợ giao thức điểm – điểm (PtP) dành cho truyền thông nối tiếp dựa trên ký tự, trong đó chương trình người dùng xác định và thực thi một cách hoàn chỉnh giao thức lựa chọn. PtP cung cấp một sự tự do và tính linh hoạt tối đa, nhưng yêu cầu một sự thực thi bao quát trong chương trình người dùng. PtP cho phép một số lượng lớn các khả năng:  Khả năng gửi thông tin một cách trực tiếp đến một thiết bị ngoại vi, ví dụ như một máy in.  Khả năng nhận thông tin từ các thiết bị khác như các bộ đọc mã vạch, bộ đọc RFID, camera của bên thứ ba hay hệ thống nhìn, và nhiều kiểu thiết bị khác.  Khả năng trao đổi thông tin, gửi và nhận dữ liệu, với các thiết bị khác như các thiết bị GPS, camera bên thứ ba hay các hệ thống nhìn, các modem radio, v.v… Truyền thông PtP là kiểu truyền thông nối tiếp sử dụng các UART tiêu chuẩn để hỗ trợ nhiều tốc độ baud và các tùy chọn khác nhau. Các module truyền thông (Communication module – CM) RS232 hay RS485 cung cấp giao diện điện cho việc thực hiện truyền thông PtP. STEP 7 Basic cung cấp các thư viện tập lệnh mà ta có thể sử dụng trong việc lập trình ứng dụng. Các thư viện này cung cấp các chức năng truyền thông PtP cho các giao thức sau:  Giao thức điều khiển USS  Giao thức Modbus RTU Master  Giao thức Modbus RTU Slave

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 2

SIMATIC S7 - 1200

7.1.

Sử dụng các module truyền thông RS232 và RS485. Hai module truyền thông (CM) cung cấp giao diện cho truyền thông PtP gồm

có: CM 1241 RS485 và CM 1241 RS232. Ta có thể kết nối tối đa 3 module truyền thông (bất kỳ loại nào). Một CM được lắp vào bên trái CPU hay bên trái một CM khác. Các module truyền thông RS232 và RS485 có các đặc tính sau:  Cổng được cách ly  Hỗ trợ các giao thức PtP  Được cấu hình và được lập trình thông qua tập lệnh mở rộng và các hàm thư viện  Hiển thị các hoạt động phát và thu bằng các LED  Hiển thị một LED chẩn đoán  Được cấp nguồn bởi CPU. Không cần có kết nối nguồn bên ngoài.

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 3

SIMATIC S7 - 1200

7.2.

Cấu hình các cổng truyền thông. Các module truyền thông có thể được cấu hình theo hai phương pháp:

 Sử dụng mục Device configuration trong STEP 7 Basic để cấu hình các thông số cổng (tốc độ baud và tính chẵn lẻ), các thông số gửi và các thông số nhận. Các thiết lập cấu hình thiết bị được lưu trữ lâu dài trong CPU. Các thiết lập này được áp dụng sau một chu trình cấp nguồn và sau một sự chuyển đổi từ RUN sang STOP.  Sử dụng các lệnh PORT_CFG, SEND_CFG và RCV_CFG để thiết lập các thông số. Các cài đặt cổng được thiết lập bởi các lệnh là hợp lệ khi CPU đang ở chế độ RUN. Các thiết lập cổng phục hồi các thiết lập cấu hình thiết bị sau một sự chuyển đổi về STOP hay sau một chu trình cấp nguồn. Sau khi cấu hình các thiết bị phần cứng, ta cấu hình các thông số cho các giao diện truyền thông bằng cách lựa chọn một trong số các CM trong thanh đỡ (rack). Thẻ “Properties” của cửa sổ kiểm tra hiển thị các thông số của CM được lựa chọn. Lựa chọn “Port configuration” để chỉnh sửa các thông số sau:  Baud rate  Parity  Number of stop bits  Flow control (chỉ RS232)  Wait time Ngoại trừ đối với điều khiển dòng, các thông số cấu hình thiết bị là giống nhau bất chấp dù cho ta đang cấu hình một CM RS232 hay RS485. Các giá trị thông số là có thể khác nhau. Cổng còn có thể được cấu hình (hay cấu hình được tạo sẵn có thể được thay đổi) từ chương trình người dùng với lệnh PORT_CFG. CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 4

SIMATIC S7 - 1200

Lƣu ý Các giá trị thông số được thiết lập từ lệnh PORT_CFG trong chương trình người dùng sẽ khống chế các thiết lập cấu hình cổng từ STEP 7 Basic. Lưu ý rằng S71200 không giữ lại các thông số được thiết lập từ lệnh PORT_CFG trong một sự kiện mất nguồn.

Baud rate (tốc độ baud): giá trị mặc định của tốc độ baud là 9,6 kbit mỗi giây. Các lựa chọn hợp lệ là: 300 baud

2,4 kbit

19,2 kbit

76,8 kbit

600 baud

4,8 kbit

28,4 kbit

115,2 kbit

1,2 kbit

9,6 kbit

57,6 kbit

Parity (tính chẵn lẻ): giá trị mặc định đối với tính chẵn lẻ là “No parity”. Các lựa chọn hợp lệ là:  No parity (không chẵn lẻ)  Even (chẵn)  Odd (lẻ)  Mark (các bit chẵn lẻ luôn luôn được đặt lên 1)  Space (các bit chẵn lẻ luôn luôn được đặt về 0) Number of stop bits (số lượng các bit dừng): số lượng các bit dừng có thể là một hay hai. Mặc định là 1. Flow control (điều khiển dòng): đối với module truyền thông RS232, ta có thể lựa chọn cả điều khiển dòng bằng phần cứng hay điều khiển dòng bằng phần mềm. Nếu ta lựa chọn điều khiển dòng bằng phần cứng, ta có thể chọn hoặc tín hiệu RTS luôn luôn được bật, hoặc RTS được chuyển mạch. Nếu ta lựa chọn điều khiển dòng bằng phần mềm, ta có thể xác định các ký tự ASCII cho ký tự XON và XOFF. Module truyền thông RS 485 không hỗ trợ điều khiển dòng. CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 5

SIMATIC S7 - 1200

Wait time (thời gian chờ): thời gian chờ xác định thời gian mà module truyền thông chờ để nhận CTS sau khi xác nhận RTS, hay để nhận một XON sau khi nhận một XOFF, phụ thuộc vào kiểu điều khiển dòng. Nếu thời gian chờ hết hạn trước khi module truyền thông nhận một CST hay XON được mong đợi, module truyền thông sẽ hủy bỏ hoạt động phát và trả về một lỗi đến chương trình người dùng. Ta xác định thời gian chờ theo mili giây. Phạm vi là từ 0 đến 65535 mili giây.

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 6

SIMATIC S7 - 1200

7.3.

Quản lý điều khiển dòng. Điều khiển dòng tham chiếu đến một cơ cấu để điều chỉnh việc gửi và nhận

trong sự truyền phát dữ liệu để không có dữ liệu nào bị mất. Điều khiển dòng đảm bảo rằng một thiết bị phát sẽ không gửi nhiều hơn thông tin mà một thiết bị thu có thể xử lý. Điều khiển dòng có thể được hoàn thành thông qua cả phần cứng hay phần mềm. CM RS232 hỗ trợ cả điều khiển dòng bằng phần cứng và điều khiển dòng bằng phần mềm. CM RS485 không hỗ trợ điều khiển dòng. Ta chỉ định kiểu điều khiển dòng hoặc khi cấu hình cổng hoặc với lệnh PORT_CFG. Điều khiển dòng bằng phần cứng làm việc thông qua các tín hiệu truyền thông RST (Request to send) và CTS (Clear to send). Với CM RS232, tín hiệu RTS là ngõ ra từ chân số 7 và tín hiệu CTS được nhận thông qua chân số 8.CM 1241 là một thiết bị DTE (Data Terminal Equipment) mà xác nhận RTS như một ngõ ra và giám sát CTS như một ngõ vào. Điều khiển dòng bằng phần cứng: RTS đƣợc chuyển mạch Nếu ta kích hoạt điều khiển dòng bằng phần cứng RTS được chuyển mạch cho một CM RS232, module sẽ thiết lập tín hiệu RTS chủ động gửi đi dữ liệu. Nó giám sát tín hiệu CTS để xác định thiết bị nhận có thể nhận dữ liệu hay chưa. Khi tín hiệu CTS hoạt động, module có thể phát dữ liệu ngay khi tín hiệu CTS vẫn duy trì hoạt động. Nếu tín hiệu CTS chuyển sang không hoạt động, khi đó sự truyền phát phải dừng lại. Sự truyền phát khôi phục khi tín hiệu CTS trở nên hoạt động. Nếu tín hiệu CTS không trở nên hoạt động trong vòng thời gian chờ được cấu hình, module sẽ hủy bỏ sự truyền phát và trả về một lỗi đến chương trình người dùng. Ta xác định thời gian chờ trong cấu hình cổng. Điều khiển dòng RTS được chuyển mạch là hữu dụng đối với các thiết bị cần một tín hiệu mà sự truyền đi là hoạt động. Một ví dụ là modem radio sử dụng RTS như một tin hiệu “Key” để kích hoạt bộ phát radio. Điều khiển dòng RTS được chuyển mạch sẽ không hoạt động với các modem điện thoại tiêu chuẩn. Việc sử dụng RTS luôn là sự lựa chọn đối với các modem điện thoại thường.

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 7

SIMATIC S7 - 1200

Điều khiển dòng bằng phần cứng: RTS luôn luôn bật Trong trường hợp RTS luôn luôn trong một nút, theo mặc định CM 1241 đặt RTS hoạt động. Một thiết bị như modem điện thoại sẽ giám sát tín hiệu RTS từ CM và dùng tín hiệu này như một lệnh xóa để ghi (cleat-to-send). Modem chỉ truyền phát dữ liệu đến CM khi RTS hoạt động, nghĩa là, khi modem điện thoại nhận thấy một CTS đang hoạt động. Nếu RTS không hoạt động, modem điện thoại sẽ không truyền phát đến CM. Để cho phép modem gửi đi dữ liệu đến CM tại bất kỳ thời điểm nào, ta cấu hình điều khiển dòng bằng phần cứng “RTS always on”. CM vì vậy sẽ đặt tín hiệu RTS hoạt động trong mọi lúc. CM sẽ không đặt RTS ngưng hoạt động ngay cả khi module không thể nhận các ký tự. Thiết bị phát phải đảm bảo rằng nó không vận hành quá mức bộ đệm nhận của CM. Sử dụng tín hiệu DTR (Data Terminal Block Ready) và DSR (Data Set Ready) CM đặt DTR hoạt động đối với cả loại của điều khiển dòng bằng phần cứng. Module chỉ truyền phát khi tín hiệu DSR trở nên hoạt động. Trạng thái của DSR chỉ được định trị tại điểm khởi đầu của hoạt động gửi. Nếu DSR trở nên không hoạt động sau khi sự truyền phát đã bắt đầu, việc truyền phát sẽ không bị tạm ngưng. Điều khiển dòng bằng phần mềm Điều khiển dòng bằng phần mềm sử dụng các ký tự đặc biệt trong các thông điệp dùng để cung cấp điều khiển dòng. Các ký tự này là ký tự ASCII miêu tả cho XON và XOFF. XOFF chỉ thị rằng một sự truyền phát phải dừng lại. XON chỉ thị rằng một sự truyền phát có thể khôi phục. Khi thiết bị phát nhận một ký tự XOFF từ thiết bị nhận, nó sẽ ngưng truyền phát. Việc truyền phát khôi phục lại khi thiết bị phát nhận một ký tự XON. Nếu nó không nhận ký tự XON trong vòng khoảng thời gian chờ được xác định trong cấu hình của cổng, CM sẽ bỏ qua sự truyền phát và trả về một lỗi đến chương trình người dùng.

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 8

SIMATIC S7 - 1200

Điều khiển dòng bằng phần mềm đòi hỏi truyền thông theo hai chiều đây đủ, nghĩa là phần tử nhận phải có thể gửi XOFF đến phần tử phát trong khi một sự truyền phát đang trong tiến trình. Điều khiển dòng bằng phần mềm chỉ có thể thực hiện với các thông điệp mà chỉ chứa các ký tự ASCII. Các giao thức nhị phân không thể sử dụng điều khiển dòng bằng phần mềm.

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 9

SIMATIC S7 - 1200

7.4.

Cấu hình các thông số phát (gửi) và nhận. Trước khi PLC có thể tham gia trong một truyền thông PtP, ta phải cấu hình các

thông số cho việc phát (hay gửi) và nhận các thông điệp. Các thông số này ra lệnh các thức truyền thông hoạt động khi các thông điệp được phát đi hay được nhận từ một thiết bị đích. Cấu hình các thông số phát (gửi) Trong suốt việc cấu hình CM, ta cấu hình cách thức một giao diện truyền thông truyền phát dữ liệu bằng cách chỉ định thuộc tính “Transmit message configuration” cho CM được chọn. Ta còn có thể cấu hình động hay thay đổi các thông số của thông điệp phát từ chương trình người dùng bằng cách sử dụng lệnh SEND_CFG.

Lƣu ý Các giá trị thông số được thiết lập từ lệnh SEND_CFG trong chương trình người dùng sẽ khống chế các thiết lập cấu hình của cổng. Lưu ý rằng CPU không giữ lại các thông số được thiết lập từ lệnh SEND_CFG trong sự kiện mất nguồn.

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 10

SIMATIC S7 - 1200 Định nghĩa

Thông số

Chỉ định lượng thời gian phải chờ sau sự kích hoạt RTS trước khi sự truyền phát được bắt đầu. Phạm vi từ 0 đến 65535 ms, với giá trị mặc định bằng 0. Thông số này chỉ hợp lệ khi cấu hình của cổng chỉ

RST On delay

định việc điều khiển dòng phần cứng. CTS được định trị sau khi thời gian RTS On delay đã trôi qua. Thông số này chỉ áp dụng được với module RS232. Chỉ định lượng thời gian phải chờ trước việc tái kích hoạt RTS sau khi sự truyền phát hoàn tất. Phạm vi từ 0 đến 65535 ms, với giá trị mặc định bằng 0. Thông số này chỉ hợp lệ khi cấu hình của cổng chỉ

RST Off delay

định việc điều khiển dòng phần cứng. Thông số này chỉ áp dụng được với module RS232. Chỉ ra rằng dưới điểm bắt đầu của mỗi thông điệp, một sự ngắt Send

break

at (break) sẽ được gửi sau khi RTS On delay (nếu được cấu hình) đã trôi qua và CTS là hoạt động.

message start

Number of bit times Ta chỉ định có bao nhiêu các bit cấu thành một sự ngắt trong đó đường truyền được giữ trong một điều kiện giãn cách. Mặc định là

in a break

12 và tối đa là 65535, lên đến giới hạn là 8 giây. Send idle line after a break Idle break

line

after

a

Chỉ định rằng một đường truyền rỗi sẽ được gửi sau một sự ngắt tại khởi đầu của thông điệp. Thông số “Idle line after a break” chỉ định có bao nhiêu các bit cấu thành một đường truyền rỗi trong đó đường truyền được giữ trong một điều kiện đánh dấu. Mặc định là 12 và tối đa là 65535, lên đến giới hạn là 8 giây.

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 11

SIMATIC S7 - 1200

Cấu hình các thông số nhận Trong mục Device configuration, ta cấu hình cách thức mà giao diện truyền thông nhận dữ liệu, và cách thứ mà nó nhận biết cả điểm khởi đầu và kết thúc của một thông điệp. Ta chỉ định các thông số này trong phần cấu hình Receive message đối với CM được chọn. Ta còn có thể cấu hình động hay thay đổi các thông số Receive message từ chương trình người dùng bằng cách sử dụng lệnh RCV_CFG.

Lƣu ý Các giá trị thông số được thiết lập từ lệnh RCV_CFG trong chương trình người dùng sẽ khống chế các thiết lập cấu hình của cổng. Lưu ý rằng CPU không giữ lại các thông số được thiết lập từ lệnh RCV_CFG trong sự kiện mất nguồn.

Các thông số khởi động thông điệp Ta có thể xác định cách thức mà module truyền thông nhận biết điểm khởi đầu của một thông điệp. Các ký tự khởi đầu và các ký tự bao gồm trong thông điệp sẽ di chuyển vào trong bộ đệm nhận cho đến khi đáp ứng một điều kiện cuối được cấu hình. Có nhiều điều kiện khởi động có thể được chỉ định. Tất cả các điều kiện khởi động phải được đáp ứng trước khi thông điệp được chú ý là đã bắt đầu. Ví dụ, nếu ta cấu hình một thời gian đường truyền rỗi và một ký tự khởi đầu được chỉ định, trước tiên CM sẽ tìm yêu cầu thời gian đường truyền rỗi phải đáp ứng và sau đó sẽ tìm kiếm ký tự khởi đầu được chỉ định. Nếu một số ký tự khác được nhận (không phải là ký tự

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 12

SIMATIC S7 - 1200

khởi đầu được chỉ định), CM sẽ khởi động lại sự bắt đầu của việc tìm kiếm thông điệp bằng cách tìm thời gian đường dẫn rỗi lại một lần nữa. Thứ tự của các điều kiện kiểm tra khởi động là:  Đường truyền rỗi  Sự ngắt đường truyền  Các ký tự hay dãy tuần tự các ký tự Trong khi kiểm tra nhiều điều kiện khởi động, nếu một trong số các điều kiện không được đáp ứng, CM sẽ khởi động lại việc kiểm tra với điều kiện được yêu cầu trước tiên. Định nghĩa

Thông số

Điều kiện Start Character cho thấy rằng việc nhận thành công một Character ký tự đặc biệt sẽ bắt đầu một thông điệp. Ký tự này sẽ là ký tự đầu

Start

tiên nằm trong thông điệp. Bất kỳ ký tự nào được nhận trước ký tự

character

đặc biệt đó sẽ bị loại bỏ. Start

on

Any

Character

Điều kiện Any Character cho thấy rằng bất kỳ ký tự nào được nhận thành công sẽ bắt đầu khởi đầu của một thông điệp. Ký tự này sẽ là ký tự đầu tiên nằm trong thông điệp. Điều kiện Line Break cho thấy rằng một hoạt động nhận thông điệp

Line Break

sẽ khởi động sau khi một ký tự ngắt được nhận. Điều kiện Idle Line cho thấy rằng một sự nhận thông điệp sẽ khởi động chỉ một lần đường truyền nhận đã rỗi hay ở chế độ tĩnh đối với

Idle Line

số hiệu của nhiều lần các bit đã được chỉ định. Trong lần mà điều kiện này xuất hiện, khởi đầu của một thông điệp sẽ bắt đầu.

Special

condition:

Recognize message start with single Special

condition:

Recognize message start with a character sequence

Cho thấy rằng một ký tự đặc biệt chỉ ra khởi đầu của một thông điệp. Mặc định là STX. Cho thấy rằng một dãy tuần tự ký tự đặc biệt chỉ ra khởi đầu của một thông điệp. Đối với mỗi dãy tuần tự, ta chỉ định tối đa 5 ký tự. Đối với mỗi vị trí ký tự, ta chỉ định hoặc một ký tự thập lục phân đặc biệt, hoặc ký tự đó bị bỏ qua trong một sự so khớp tuần tự. Các dãy tuần tự đến sẽ được định trị chống lại các điều kiện khởi

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 13

SIMATIC S7 - 1200 động cho đến khi một điều kiện khởi động đã được thỏa mãn. Một khi dãy tuần tự khởi động đã được thỏa mãn, sự định trị của các điều kiện cuối sẽ bắt đầu. Ta có thể cấu hình tối đa 5 dãy tuần tự ký tự được chỉ định, trong đó ta có thể kích hoạt hay vô hiệu theo yêu cầu. Điều kiện khởi động được thỏa mãn khi bất kỳ một trong các dãy tuần tự ký tự được cấu hình xuất hiện.

Với sự cấu hình này, điều kiện khởi động được thỏa mãn khi các mẫu xuất hiện: 

Khi một dãy 5 ký tự được nhận, trong đó ký tự đầu tiên là 0x6A và ký tự thứ 5 là 0x1C. Trong cấu hình này, các ký tự

Sample

ở các vị trí 2, 3, và 4 có thể là bất kỳ ký tự nào. Sau khi ký tự

configuration

thứ 5 được nhận, sự định trị của điều kiện cuối sẽ bắt đầu. 

Khi hai ký tự kiên tiếp 0x6A được nhận, được đứng trước bởi bất kỳ ký tự nào. Trong trường hợp này, sự định trị của các điều kiện cuối sẽ bắt đầu sau khi dãy 0x6A thứ hai được nhận (gồm 3 ký tự). Ký tự đứng trước dãy 0x6A đầu tiên sẽ được bao gồm trong điều kiện đầu.

Các dãy tuần tự mẫu có thể thỏa mãn điều kiện đầu này là: 

6A 6A



6A 12 14 18 1C



6A 44 A5 D2 1C

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 14

SIMATIC S7 - 1200

Thông điệp và các thông số Ta còn có thể cấu hình cách thức giao diện truyền thông nhận biết kết thúc một thông điệp. Ta có thể cấu hình nhiều điều kiện cuối thông điệp. Nếu bất kỳ một trong các điều kiện được cấu hình xuất hiện, thông điệp sẽ kết thúc. Tại cùng một thời điểm có thể chỉ định nhiều điều kiện cuối. Thông điệp sẽ kết thúc khi bất kỳ một trong các điều kiện đã được thỏa mãn. Ví dụ, ta có thể chỉ định một điều kiện cuối với một kết thúc của sự hết thời gian chờ thông điệp bằng 300 mili giây, một sự hết thời gian chờ liên ký tự 40 lần bit, và một độ dài tối đa bằng 50 byte. Thông điệp sẽ kết thúc nếu thông điệp đó mất một thời gian nhiều hơn 300 mili giây để nhận, hay nếu khoảng trắng giữa hai ký tự bất kỳ nào vượt quá 40 lần bit, hay nếu 50 byte đã được nhận. Thông số

Sự hết thời gian chờ kết thúc thông điệp xuất hiện khi lượng thời gian

Recognize

end được cấu hình để chờ kết thúc thông điệp đã trôi qua. Giai đoạn hết thời

message by

Định nghĩa

message gian chờ thông điệp bắt đầu khi ký tự đầu tiên được nhận theo chỉ tiêu về khởi đầu thông điệp. Mặc định là 200 ms và phạm vi từ 0 đến 65535 ms.

timeout

Sự hết thời gian chờ kết thúc thông điệp xuất hiện khi lượng thời gian được cấu hình để chờ một phản hồi đã trôi qua trước khi một dãy tuần tự

Recognize

end khởi động hợp lệ được nhận. Giai đoạn hết thời gian phản hồi bắt đầu khi

message by

response một sự truyền phát kết thúc. Lượng hết thời gian chờ mặc định là 200 ms và phạm vi từ 0 đến 65535 ms. Ta phải cấu hình một điều kiện cuối khác

timeout

để chỉ thị kết thúc thực tế của một thông điệp. Kết thúc thông điệp xuất hiện khi khoảng hết thời gian chờ tối đa được

Recognize

end cấu hình giữa các ký tự liên tiếp trong một thông điệp đã trôi qua. Giá trị

message by

inter- mặc định đối với khoảng trống liên ký tự là 12 bit và số lượng tối đa là

character gap Recognize message

end

by max length

65535 bit, lên đến tối đa 8 giây. Kết thúc thông điệp xuất hiện khi số lượng tối đa được cấu hình của các ký tự đã được nhận. Mặc định là 0 byte và tối đa là 1024 byte.

Read message Bản thân thông điệp cho thấy độ dài của thông điệp. Kết thúc thông điệp length

from xuất hiện khi một thông điệp có độ dài được chỉ định đã được nhận.

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 15

SIMATIC S7 - 1200 Phương pháp chỉ định và diễn dịch độ dài thông điệp được thể hiện dưới

message

đây. Recognize message

end

with

a

Kết thúc thông điệp xuất hiện khi một ký tự được chỉ định đã được nhận.

character Kết thúc thông điệp xuất hiện khi một dãy tuần tự ký tự được chỉ định đã được nhận. Ta có thể chỉ định một dãy tuần tự tối đa 5 ký tự. Đối với mỗi

Recognize message

end vị trí ký tự, ta chỉ định hoặc một ký tự thập lục phân, hoặc ký tự bị bỏ qua

with

a trong sự so khớp tuần tự.

character

Các ký tự đầu nào là ký tự bị bỏ qua thì không phải là một phần của điều

sequence

kiện cuối. Các ký tự theo sau nào bị bỏ qua chính là một phần của điều kiện cuối.

Thông số

Định nghĩa

Sample

Trong trường hợp này, điều kiện cuối được thỏa mãn khi hai ký tự liên

configuration

tiếp 0x7A được nhận, được theo sau bởi hai ký tự bất kỳ. Ký tự đứng trước mẫu 0x7A 0x7A không phải là một phần của dãy tuần tự ký tự kết thúc. Hai ký tự theo sau mẫu 0x7A 0x7A là cần thiết để chấm dứt dãy tuần tự ký tự kết thúc. Các giá trị tại vị trí ký tự 4 và 5 là không liên quan, nhưng chúng phải được nhận để thỏa mãn điều kiện cuối.

Tiêu chuẩn về độ dài thông điệp nằm trong thông điệp Khi lựa chọn điều kiện đặc biệt trong đó độ dài thông điệp được bao gồm trong thông điệp, ta phải cung cấp 3 thông số xác định thông tin về độ dài thông điệp. Cấu trúc thông điệp thực tế khác nhau tùy theo giao thức được sử dụng. 3 thông số đó là: CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 16

SIMATIC S7 - 1200

 1n: vị trí ký tự (tính từ 1) nằm trong thông điệp mà vị trí đó khởi đầu nhận dạng độ dài  Length size: số lượng các byte (1, 2 hay 4) của nhận dạng chiều dài  Length m: số lượng các ký tự theo sau nhận dạng chiều dài mà không được bao gồm trong việc đếm độ dài Các trường này xuất hiện trong mục cấu hình Receive message của Device properties. Ví dụ 1: xem xét một thông điệp được cấu trúc theo giao thức sau đây: STX

Các ký tự từ 3 đến 14 đƣợc đếm bởi độ dài

Len (n) ADR

1

2

3

STX

0x0C

xx

PKE 4

5 xxxx

INDEX 6

7 xxxx

PWD 8

9 xxxx

STW 10

11

xxxx

HSW 12

13

xxxx

BC 14 xx

Cấu hình các thông số độ dài thông điệp nhận đối với thông điệp này như sau:  n = 2 (độ dài thông điệp được khởi đầu với byte 2)  Length size = 1 (độ dài thông điệp được xác định trong 1 byte).  Length m = 0 (không có các ký tự thêm vào theo nhận dạng thông điệp mà không được đếm trong giá trị đếm chiều dài. 12 ký tự theo bộ nhận dạng chiều dài). Trong ví dụ này, các ký tự bao hàm từ 3 đến 14 là các ký tự được đếm bởi thông số Len (n).

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 17

SIMATIC S7 - 1200

Ví dụ 2: xem xét một thông điệp khác được cấu trúc theo giao thức sau:

SD1

1 xx

Len

Len

(n)

(n)

2

3

0x06 0x06

Các ký tự từ 5 đến 10 đƣợc đếm bởi độ dài SD2

FCS

ED

10

11

12

xx

xx

xx

Đơn vị dữ liệu = 3 byte

DA

SA

FA

4

5

6

7

8

9

xx

xx

xx

xx

xx

xx

Cấu hình các thông số độ dài thông điệp nhận đối vói thông điệp này như sau:  1n = 3 (độ dài thông điệp khởi đầu tại byte 3).  Length size = 1 (độ dài thông điệp được xác định trong 1 byte).  Length m = 3 (có 3 ký tự theo sau nhận dạng thông điệp mà không được đếm trong chiều dài. Trong giao thức của ví dụ này, các ký tự SD2, FCS và ED không được đếm trong giá trị đếm chiều dài. 6 ký tự khác được đếm trong giá trị đếm chiều dài; do đó tổng số lượng các ký tự theo sau nhận dạng thông điệp là 9). Trong ví dụ này, các ký tự bao hàm từ 5 đến 10 là các ký tự được đếm bởi thông số Len (n).

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 18

SIMATIC S7 - 1200

7.5.

Lập trình truyền thông PtP. STEP 7 Basic cung cấp tập lệnh mở rộng cho phép chương trình người dùng

thực hiện truyền thông PtP với một giao thức được thiết kế và được xác định trong chương trình người dùng. Các lệnh này có thể được xem xét đến trong hai danh mục:  Tập lệnh cấu hình  Tập lệnh truyền thông Các lệnh cấu hình Trước khi chương trình người dùng có thể tham gia trong truyền thông PtP, ta phải cấu hình cổng giao diện truyền thông và các thông số cho việc gửi và nhận dữ liệu. Ta có thể thực hiện cấu hình cổng và cấu hình thông điệp cho mỗi module truyền thông xuyên suốt quá trình cấu hình hay xuyên suốt các lệnh sau đây trong chương trình người dùng:  Lệnh PORT_CFG  Lệnh SEND_CFG  Lệnh RCV_CFG Các lệnh truyền thông Các lệnh truyền thông PtP cho phép chương trình người dùng gửi các thông điệp đến và nhận các thông điệp từ các module truyền thông. Tất cả các hàm PtP đều vận hành một cách không đồng bộ. Chương trình người dùng có thể sử dụng một cấu trúc hỏi vòng để xác định trạng thái của việc truyền phát và thu nhận. Lệnh SEND_PTP và RCV_PTP có thể thực thi một cách đồng thời. Các module truyền thông đệm việc phát và thu các thông điệp với kích thước bộ đệm tối đa lên đến 1024 byte. Các module truyền thông gửi/nhận các thông điệp đến/từ các thiết bị PtP thực tế. Giao thức thông điệp nằm trong bộ đệm mà vừa được nhận (từ) hoặc vừa được gửi (đến) một cổng truyền thông được chỉ định. CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 19

SIMATIC S7 - 1200

 Lệnh SEND_PTP  Lệnh RCV_PTP Các lệnh bổ sung cung cấp khả năng đặt lại bộ đệm nhận, và để nhận được và thiết lập các tín hiệu RS232 được chỉ định.  RCV_RST  SNG_GET  SGN_SET 7.5.1. Cấu trúc hỏi vòng. Tập lệnh PtP S7-1200 phải được gọi một cách theo chu trình/tuần hoàn để kiểm tra các thông điệp được nhận. Việc hỏi vòng gửi đi sẽ cho chương trình người dùng biết khi nào việc truyền phát đã hoàn thành. Cấu trúc hỏi vòng: phần chủ Tuần tự thông thường đối với một phần chủ là như sau: 1. Lệnh SEND_PTP khởi đầu một sự truyền phát đến module truyền thông. 2. Lệnh SEND_PTP được thực thi theo những lần quét xảy ra sau để hỏi vòng trạng thái hoàn tất việc phát. 3. Khi lệnh SEND_PTP chỉ ra rằng việc truyền phát hoàn thành, đoạn mã người dùng có thể chuẩn bị để nhận phản hồi. 4. Lệnh RCV_PTP được thực thi một các lặp lại để kiểm tra phản hồi. Khi CM đã thu thập một thông điệp phản hồi, lệnh RCV_PTP sẽ sao chép phản hồi đó đến CPU và chỉ ra rằng dữ liệu mới đã được nhận. 5. Chương trình người dùng có thể thực thi phản hồi. 6. Trở về bước 1 và lặp lại chu trình. Cấu trúc kiểm tra vòng: phần phụ thuộc Tuần tự thông thường đối với một phần phụ thuộc là như sau: 1. Chương trình người dùng thực thi lệnh RCV_PTP trong mỗi lần quét. 2. Khi CM đã nhận một yêu cầu, lệnh RCV_PTP sẽ chỉ thị rằng dữ liệu mới đã sẵn sàng và yêu cầu sẽ được sao chép vào trong CPU. CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 20

SIMATIC S7 - 1200

3. Chương trình người dùng phục vụ yêu cầu và sinh ra một phản hồi. 4. Sử dụng lệnh SEND_PTP để gửi phản hồi đó trở về phần chủ. 5. Thực thi lặp lại lệnh SEND_PTP để đảm bảo sự phát đi xuất hiện. 6. Trở về bước 1 và lặp lại chu trình. Phần phụ thuộc phải chịu trách nhiệm đối với việc gọi RCV_PTP một cách thường xuyên đủ để nhận một sự truyền phát từ phần chủ trước khi hết thời gian chờ đối với phần chủ trong lúc đợi một phản hồi. Để thành lập tác vụ này, chương trình người dùng có thể gọi RCV_PTP từ một OB theo chu trình, trong đó thời gian chu trình đủ đầy để nhận một sự truyền phát từ phần chủ trước khi khoảng hết thời gian chờ đã trôi qua. Nếu ta thiết lập thời gian chu trình đối với OB để cung cấp hai lần thực thi nằm trong khoảng hết thời gian của phần chủ, chương trình người dùng sẽ thu nhận sự truyền phát mà không để mất bất kỳ phần nào.

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 21

SIMATIC S7 - 1200

7.6.

Tập lệnh PtP.

7.6.1. Các thông số chung đối với tập lệnh PtP. Các trạng thái LED của module truyền thông (CM) Có 3 bộ chỉ thị LED trên module truyền thông:  LED chẩn đoán (Diagnostic): LED này nhấp nháy màu đỏ cho đến khi nó được ghi địa chỉ bởi CPU. Sau khi CPU được bật nguồn, nó sẽ kiểm tra các module và ghi địa chỉ CM. LED lúc này sẽ chuyển sang nhấp nháy màu xanh. Điều này có nghĩa là CPU đã ghi địa chỉ CM, nhưng đã không cung cấp sự cấu hình đến CPU. Cấu hình được tải xuống đến module khi chương trình được tải xuống vào CPU. Sau một sự tải xuống đến CPU, LED chẩn đoán trên module truyền thông sẽ sáng màu xanh ổn định.  LED phát (Transmit): LED này được đặt phía trên LED nhận. LED phát sẽ phát sáng khi dữ liệu đang được truyền ra ngoài cổng truyền thông.  LED nhận (Receive): LED này sẽ phát sáng khi dữ liệu đang được nhận bởi cổng truyền thông. Độ phân giải số lần bit Một vài thông số được chỉ định trong một số lần bit tại tốc độ baud được cấu hình. Việc chỉ định một thông số theo số lần bit cho phép thông số đó độc lập với tốc độ baud. Tất cả các thông số được đo theo đơn vị số lần bit có thể được chỉ định đến một con số tối đa là 65535. Tuy nhiên, lượng thời gian tối đa có thể được đo bởi S71200 là 8 giây. Thông số ngõ vào REQ Nhiều lệnh PtP sử dụng một ngõ vào REQ mà ngõ vào đó khởi chạy sự vận hành trên một sự chuyển đổi từ mức thấp lên mức cao. Ngõ vào REQ phải là mức cao (TRUE) đối với thực thi của một lệnh, nhưng ngõ vào REQ có thể vẫn duy trì TRUE lâu như ta mong muốn. Lệnh sẽ không khởi chạy một vận hành nào khác cho đến khi nó được gọi với ngõ vào REQ nhận giá trị FALSE để lệnh có thể khôi phục trạng thái

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 22

SIMATIC S7 - 1200

lược sử của ngõ vào REQ. Điều này là cần thiết để lệnh có thể phát hiện sự chuyển đổi từ mức thấp lên mức cao để khởi chạy lần thực thi tiếp theo. Khi đặt một lệnh PtP, ta được nhắc để định danh DB mẫu. Sử dụng một DB đơn nhất đối với mỗi kiểu dữ liệu của lệnh PtP. Điều đó nghĩa là, tất cả các lệnh SEND_PTP của một cổng đã cho phải có cùng DB mẫu, nhưng lệnh SEND_PTP và RCV_PTP phải có các DB mẫu khác nhau. Điều này đảm bảo rằng các ngõ vào như REQ được thực thi một cách đúng đắn bởi mỗi lệnh. Thông số ngõ vào PORT Từ trình đơn thả xuống (có liên quan đến ngõ vào PORT) ta lựa chọn bộ định danh cổng cho CM mà ta muốn giá trị mẫu này của lệnh sẽ hoạt động. Số hiệu này còn có thể được tìm thấy với vai trò là “hardware identifier” trong thông tin cấu hình cho CM. Các thông số ngõ ra NDR, DONE, ERROR và STATUS  Ngõ ra DONE chỉ thị rằng hoạt động được yêu cầu đã hoàn thành mà không có lỗi. Thông số này sẽ được đặt đối với một lần quét.  Ngõ ra NDR (New Data Ready) chỉ thị rằng hoạt động được yêu cầu đã hoàn thành mà không có lỗi và dữ liệu mới đã vừa được nhận. Ngõ ra này sẽ được đặt đối với một lần quét.  Ngõ ra ERROR chỉ thị rằn hoạt động được yêu cầu đã hoàn thành với một lỗi. Ngõ ra này sẽ được đặt đối với một lần quét.  Ngõ ra STATUS được sử dụng để báo cáo các lỗi hay các kết quả trạng thái trung gian. -

Nếu bit DONE hay NDR được đặt, STATUS sẽ được đặt về 0 hay đến một mã truyền tin.

-

Nếu bit ERROR được đặt, STATUS sẽ được đặt đến một mã lỗi.

-

Nếu không có bit nào trong số các bit trên được đặt, khi đó lệnh sẽ trả về các kết quả trạng thái miêu tả trạng thái hiện thời của chức năng, ví dụ như một trạng thái bận.

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 23

SIMATIC S7 - 1200

Các mã điều kiện chung STATUS

Miêu tả

(W#16#...) 0000

Không có lỗi

8x3A

Con trỏ không hợp lệ trong thông số x

8070

Tất cả bộ nhớ mẫu bên trong đang được sử dụng

8080

Số hiệu cổng không hợp lệ

8081

Hết thời gian chờ, lỗi module hay lỗi bên trong khác

8082

Thông số hóa thất bại vì thông số hóa đang được xử lý nền sau Bộ đệm tràn ra:

8083

CM đã trả về một thông điệp được nhận với độ dài lớn hơn thông số độ dài được cho phép.

8090

Độ dài ký tự không sai, module con sai, hay thông điệp không hợp lệ

8091

Phiên bản sai trong thông điệp thông số hóa

8092

Độ dài bản ghi sai trong thông điệp thông số hóa

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 24

SIMATIC S7 - 1200

7.6.2. Lệnh PORT_CFG. Lệnh PORT_CFG (Port Configuration – cấu hình cổng) cho phép ta thay đổi các thông số của cổng, ví dụ như tốc độ baud, từ chương trình. Ta có thể thiết lập cấu hình tĩnh ban đầu của cổng

trong

các

thuộc

tính

của

mục

Device

Configuration, hay chỉ sử dụng các giá trị mặc định. Có thể thực thi lệnh PORT_CFG trong chương trình để thay đổi sự cấu hình. Các thay đổi trong cấu hình PORT_CFG thì không được lưu trữ lâu dài trong CPU. Các

thông

được

số

cấu

hình

trong

Device

Confgiuration được khôi phục khi CPU chuyển đổi từ chế độ RUN sang STOP và sau một chu trình cấp nguồn. Thông số

REQ

Kiểu

Kiểu dữ

thông số

liệu

IN

Bool

Miêu tả Kích hoạt sự thay đổi cấu hình trên ngưỡng tăng của ngõ vào này. Bộ định danh cổng truyền thông:

PORT

IN

PORT

Địa chỉ logic này là một hằng số mà có thể được tham chiếu bên trong thẻ “Constants” của bảng thẻ ghi mặc định 0 – giao thức truyền thông PtP

PROTOCOL

IN

UInt

1 … n – sự xác định trong tương lai đối với các giao thức riêng Tốc độ baud của cổng: 1 – 300 baud

BAUD

IN

UInt

2 – 600 baud 3 – 1200 baud 4 – 2400 baud 5 – 4800 baud

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 25

SIMATIC S7 - 1200 6 – 9600 baud 7 – 19200 baud 8 – 38400 baud 9 – 57600 baud 10 – 76800 baud 11 – 115200 baud Tính chẵn lẻ của cổng: 1 – Không có chẵn lẻ PARITY

IN

UInt

2 – Bậc chẵn 3 – Bậc lẻ 4 – Chẳn lẻ nhãn 5 – Chẵn lẻ vùng Các bit trong mỗi ký tự:

DATABITS

IN

UInt

1 – 8 bit dữ liệu 2 – 7 bit dữ liệu Các bit dừng:

STOPBITS

IN

UInt

1 – 1 bit dừng 2 – 2 bit dừng Điều khiển dòng: 1 – Không điều khiển dòng

FLOWCTRL

IN

UInt

2 – XON/XOFF 3 – Hardware RTS luôn luôn ON 4 – Hardware RTS được chuyển mạch Nhận dạng ký tự được sử dụng như ký tự XON.

XONCHAR

IN

Char

Thông thường là ký tự DC1 (11H). Thông số này chỉ được định trị nếu điều khiển dòng được kích hoạt. Nhận dạng ký tự được sử dụng như ký tự XOFF.

XOFFCHAR

IN

Char

Thông thường là ký tự DC3 (13H). Thông số này chỉ được định trị nếu điều khiển dòng được kích hoạt. Nhận dạng phải chờ ký tự XON bao lâu sau khi

XWAITIME

IN

UInt

nhận một ký tự XOFF, hay phải chờ tín hiệu CTS bao lâu sau khi kích hoạt RTC (từ 0 đến 65535

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 26

SIMATIC S7 - 1200 ms). Thông số này chỉ được định trị nếu điều khiển dòng được kích hoạt. DONE

OUT

Bool

ERROR

OUT

Bool

STATUS

OUT

Word

STATUS (W#16#...)

TRUE đối với một lần quét, sau khi yêu cầu cuối cùng đã được hoàn thành mà không có lỗi. TRUE đối với một lần quét, sau khi yêu cầu cuối cùng đã được hoàn thành với một lỗi. Mã điều kiện thực thi

Miêu tả

80A0

Giao thức được chỉ định không tồn tại

80A1

Tốc độ baud được chỉ định không tồn tại

80A2

Tùy chọn chẵn lẻ được chỉ định không tồn tại

80A3

Số hiệu các bit dữ liệu được chỉ định không tồn tại

80A4

Số hiệu các bit dừng được chỉ định không tồn tại

80A5

Kiểu điều khiển dòng được chỉ định không tồn tại

80A6

Thời gian chờ bằng 0 và điều khiển dòng được kích hoạt

80A7

XON và XOFF là các giá trị không hợp lệ

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 27

SIMATIC S7 - 1200

7.6.3. Lệnh SEND_CFG. Lệnh SEND_CFG (Send Configuration – cấu hình gửi) cho phép sự cấu hình động các thông số truyền phát nối tiếp đối với một cổng truyền thông PtP. Bất kỳ các thông điệp được xếp hàng nào nằm trong một CM đều sẽ bị loại bỏ một khi lệnh SEND_CFG được thực hiện. Ta có thể thiết lập cấu hình tĩnh ban đầu của cổng trong các thuộc tính Device Configuration, hay chỉ sử dụng các giá trị mặc định. Ta có thể thực thi lệnh SEND_CFG trong chương trình để thay đổi sự cấu hình. Các thông số được cấu hình trong Device Configuration được lưu trữ khi CPU chuyển đổi từ chế độ RUN sang STOP và sau một chu trình cấp nguồn. Thông số

REQ

Kiểu

Kiểu dữ

thông số

liệu

IN

Bool

Miêu tả Kích hoạt sự thay đổi cấu hình trên ngưỡng tăng của ngõ vào này. Bộ định danh cổng truyền thông:

PORT

IN

PORT

Địa chỉ logic này là một hằng số mà có thể được tham chiếu bên trong thẻ “Constants” của bảng thẻ ghi mặc định. Số mili giây phải chờ sau khi kích hoạt RTS trước bất kỳ sự truyền phát dữ liệu Tx nào xuất hiện.

RTSONDLY

IN

UInt

Thông số này chỉ hợp lệ khi điều khiển dòng bằng phần cứng được kích hoạt. Phạm vi: 0 – 65535 ms. Giá trị 0 sẽ vô hiệu hóa tính năng này Số mili giây phải chờ sau khi sự truyền phát dữ liệu Tx xuất hiện trước khi RTS bị vô hiệu hóa.

RTSOFFDLY

IN

UInt

Thông số này chỉ hợp lệ khi điều khiển dòng bằng phần cứng được kích hoạt. Phạm vi: 0 – 65535 ms. Giá trị 0 sẽ vô hiệu hóa tính năng này

BREAK

IN

UInt

Thông số này chỉ ra rằng một sự ngắt sẽ được gửi

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 28

SIMATIC S7 - 1200 dưới khởi đầu của mỗi thông điệp đối với số lượng được chỉ định các lần bit. Tối đa bằng 65535 lần bit. Giá trị 0 sẽ vô hiệu hóa tính năng. Thời gian tối đa 8 giây. Thông số này chỉ ra rằng đường truyền sẽ duy trì trạng thái rỗi đối với một số lượng được chỉ định IDLELINE

IN

UInt

các lần bit trước sự khởi động của mỗi thông điệp. Tối đa bằng 65535 lần bit. Giá trị 0 sẽ vô hiệu hóa tính năng. Thời gian tối đa 8 giây.

DONE

OUT

Bool

ERROR

OUT

Bool

STATUS

OUT

Word

STATUS (W#16#...)

TRUE đối với một lần quét, sau khi yêu cầu cuối cùng đã được hoàn thành mà không có lỗi. TRUE đối với một lần quét, sau khi yêu cầu cuối cùng đã được hoàn thành với một lỗi. Mã điều kiện thực thi

Miêu tả

80B0

Cấu hình ngắt truyền phát không được cho phép

80B1

Thời gian ngắt lớn hơn giá trị được cho phép (2500 lần bit)

80B2

Thời gian rỗi lớn hơn giá trị được cho phép (2500 lần bit)

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 29

SIMATIC S7 - 1200

7.6.4. Lệnh RCV_CFG. Lệnh RCV_CFG (Receive Configuration – cấu hình nhận) cho phép ta cấu hình động các thông số bộ nhận nối tiếp đối với một cổng truyền thông PtP. Lệnh này cấu hình điều kiện mà báo hiệu khởi đầu và kết thúc của một thông điệp được nhận. Bất kỳ các thông điệp được xếp hàng nào bên trong một CM sẽ được loại bỏ khi lệnh RCV_CFG được thực thi. Ta có thể thiết lập cấu hình tĩnh ban đầu của cổng trong các thuộc tính của mục Device Configuration, hay chỉ sử dụng các giá trị mặc định. Có thể thực thi lệnh RCV_CFG trong chương trình để thay đổi sự cấu hình. Các thay đổi trong cấu hình RCV_CFG thì không được lưu trữ lâu dài trong CPU. Các thông số được cấu hình trong Device Confgiuration được khôi phục khi CPU chuyển đổi từ chế độ RUN sang STOP và sau một chu trình cấp nguồn. Thông số

REQ

Kiểu thông số IN

Kiểu dữ liệu

Bool

Miêu tả Kích hoạt sự thay đổi cấu hình trên ngưỡng tăng của ngõ vào này. Bộ định danh cổng truyền thông:

PORT

IN

PORT

Địa chỉ logic này là một hằng số mà có thể được tham chiếu bên trong thẻ “Constants” của bảng thẻ ghi mặc định. Cấu trúc dữ liệu Conditions chỉ ra các điều

CONDITIONS

IN

Conditions

kiện thông điệp khởi đầu và kết thúc. Các điều kiện này được miêu tả phía dưới. TRUE đối với một lần quét, sau khi yêu cầu

DONE

OUT

Bool

cuối cùng đã được hoàn thành mà không có lỗi.

ERROR

OUT

Bool

STATUS

OUT

Word

TRUE đối với một lần quét, sau khi yêu cầu cuối cùng đã được hoàn thành với một lỗi. Mã điều kiện thực thi

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 30

SIMATIC S7 - 1200

Các điều kiện đầu cho lệnh RCV_PTP Lệnh RCV_PTP sử dụng cấu hình được chỉ định bởi lệnh RCV_CFG để xác định khởi đầu và kết thúc của các thông điệp truyền thông PtP. Khởi đầu của một thông điệp được xác định bởi các điều kiện đầu. Khởi đầu của một thông điệp có thể được xác định bởi một hay một sự kết hợp các điều kiện khởi động. Nếu có nhiều hơn 1 điều kiện khởi động được chỉ định, tất cả các điều kiện phải được thỏa mãn trước khi thông điệp được khởi động. Các điều kiện khởi động có thể là:  Start Character xác định rằng việc nhận thành công một ký tự riêng biệt sẽ khởi đầu một thông điệp. Ký tự này sẽ là ký tự đầu tiến bên trong thông điệp. Bất kỳ ký nào mà được nhận trước ký tự đặc biệt này sẽ bị loại bỏ.  Any Character xác định rằng bất kỳ ký tự nào được nhận thành công sẽ bắt đầu sự khởi đầu của một thông điệp. Ký tự này sẽ là ký tự đầu tiên nằm trong thông điệp.  Line Break xác định rằng một hoạt động nhận thông điệp sẽ khởi động sau khi một ký tự ngắt được nhận.  Idle Line xác định rằng một sự tiếp nhận thông điệp sẽ khởi động một khi đường truyền nhận đã trong trạng thái rỗi hay trạng thái tĩnh đối với số lượng của các lần bit được chỉ định. Một khi điều kiện này xuất hiện, khởi đầu của một thông điệp sẽ bắt đầu.

 Các ký tự  Khởi động lại bộ định thì đường truyền rỗi  Đường truyền rỗi được phát hiện và việc nhận thông điệp được khởi động  Variable Sequence: các điều kiện đầu có thể được xây dựng dựa trên một số lượng khác nhau các tuần tự ký tự (lên đến tối đa là 4) bao gồm cả một số lượng CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 31

SIMATIC S7 - 1200

các ký tự (lên đến tối đa bằng 5). Mỗi ví trí ký tự bên trong mỗi dãy tuần tự có thể được lựa chọn như một ký tự đặc biệt, hay được lựa chọn như một ký tự đại diện, nghĩa là bất kỳ ký tự nào cũng sẽ đủ điều kiện. Điều kiện khởi động này có thể được sử dụng khi các tuần tự khác nhau của các ký tự chỉ chỉ thị sự khởi đầu của một thông điệp. Xét một thông điệp được mã hóa thập lục phân được nhận sau đây: “68 10 aa 68 bb 10 aa 16” và các dãy tuần tự khởi động được cấu hình được thể hiện trong bảng dưới đây. Các dãy tuần tự khởi đầu bắt đầu để được định trị khi ký tự 68H đầu tiên được nhận một cách thành công. Dưới việc nhận thành công 4 ký tự (ký tự 68H thứ hai), sau đó điều kiện khởi động 1 được thỏa mãn. Một khi các điều kiện khởi động được thỏa mãn, sự định trị của các điều kiện cuối sẽ bắt đầu. Việc xử lý dãy tuần tự khởi đầu có thể được chấm dứt dựa vào các lỗi chẵn lẻ, định khung, hay định thì liên ký tự khác nhau. Các lỗi này gây kết quả là không có thông điệp nào được nhận, vì điều kiện đầu đã không được thỏa mãn. Điều kiện

Ký tự

Ký tự đầu tiên Ký tự đầu tiên Ký tự đầu tiên Ký tự đầu tiên

đầu

đầu tiên

+1

+2

+3

+4

1

68H

xx

xx

68H

xx

2

10H

aaH

xx

xx

xx

3

dcH

aaH

xx

xx

xx

4

E5H

xx

xx

xx

xx

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 32

SIMATIC S7 - 1200

Các điều kiện cuối đối với lệnh RCV_PTP Kết thúc của một thông điệp được xác định bởi các thông số của các điều kiện cuối. Kết thúc của một thông điệp được xác định bởi sự xuất hiện đầu tiên của một hay nhiều các điều kiện cuối được cấu hình. Các điều kiện cuối thông điệp có thể là:  Response Timeout xác định rằng một ký tự phản hồi sẽ được nhận thành công bên trong khoảng thời gian được xác định bởi RCVTIME. Bộ định thì bắt đầu ngay khi việc truyền phát hoàn tất thành công và module bắt đầu hoạt động nhận. Nếu một ký tự không được nhận bên trong khoảng RCVTIME, khi đó một lỗi sẽ được trả về đến lệnh RCV_PTP tương ứng. Kết thúc thời gian chờ phản hồi không xác định một điều kiện cuối đặc trưng. Nó chỉ xác định rằng một ký tự sẽ được nhận thành công bên trong thời gian được chỉ định. Một điều kiện cuối riêng biệt phải được sử dụng để xác định điều kiện cuối đối với các thông điệp phản hồi.

 Các ký tự được phát  Các ký tự được nhận  Ký tự đầu tiên phải được nhận thành công trong khoảng thời gian này  Message Timeout xác định rằng một thông điệp sẽ được nhận bên trong khoảng thời gian được xác định bởi MSGTIME. Bộ định thì bắt đầu ngay khi điều kiện đầu đã được thỏa mãn.

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 33

SIMATIC S7 - 1200

 Các ký tự được nhận  Điều kiện Start Message được thỏa mãn: bộ định thì thông điệp sẽ khởi động  Bộ định thì thông điệp đã kết thúc và chấm dứt thông điệp  Intercharacter Gap là thời gian được tính từ kết thúc của một ký tự (bit dừng cuối cùng) cho đến kết thúc của ký tự tiếp theo. Nếu thời gian giữa hai ký tự bất kỳ vượt quá số lần bit được cấu hình, thông điệp sẽ được chấm dứt.

 Các ký tự được nhận  Khởi động lại bộ định thì liên ký tự  Bộ định thì liên ký tự đã kết thúc và chấm dứt thông điệp với một số lỗi  Maximum Length: hoạt động nhận sẽ dừng một khi số lượng được chỉ định của các ký tự đã được nhận. Điều kiện này có thể được sử dụng để ngăn chặn một lỗi chạy quá bộ đệm thông điệp. Khi điều kiện cuối này được kết hợp với các điều kiện cuối hết thời gian chờ và điều kiện hết thời gian chờ xuất hiện, bất kỳ các ký tự hợp lệ được nhận nào đều được cung cấp ngay cả khi độ dài tối đa chưa được đạt đến. Điều này cho phép hỗ trợ cho các giao thức độ dài biến đổi khi chỉ có độ dài tối đa là được biết.  Combination Condition of “N+ Length Size + Length M”. Điều kiện cuối này có thể được sử dụng để xử lý một thông điệp được xếp theo kích thước biến đổi mà nó chứa một trường độ dài. -

N xác định vị trí (số lượng các ký tự trong thông điệp) mà trường độ dày bắt đầu. (tính từ 1)

-

Length Size xác định kích thước của trường độ dài. Các giá trị hợp lệ là 1, 2 hay 4 byte.

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 34

SIMATIC S7 - 1200

-

Length M xác định số lượng các ký tự kết thúc (theo sau trường độ dài) mà không được bao gồm nằm trong độ dài của thông điệp. Giá trị này có thể được sử dụng để chỉ định độ dài của một trường kiểm tra tổng mà kích thước trường đó không được bao gồm trong trường độ dài.

-

Ví dụ, xét một định dạng thông điệp chứa một ký tự khởi đầu, một ký tự địa chỉ, một trường độ dài 1 byte, dữ liệu thông điệp, các ký tự kiểm tra tổng và một ký tự kết thúc. Các mục nhập vào với “Len” phù hợp với thông số N. Giá trị của N bằng 3 chỉ định rằng byte độ dài là 3 byte được định vị vào trong thông điệp. Giá trị Length Size bằng 1 chỉ định rằng giá trị dành cho độ dài của thông điệp được chứa trong 1 byte. Các trường kiểm tra tổng và trường ký tự kết thúc phù hợp với thông số “Lenth M”. Giá trị của “Length M” bằng 3 chỉ định số lượng các byte của trường kiểm tra tổng và trường ký tự.

Start

Address

Len (N)

char (1)

(2)

(3)

1xx

xx

xx

Message … (x)

xx

xx

Checksum và End char và Length M x+1 x+2 x+3

xx

xx

xx

 Variable characters: điều kiện cuối này có thể được sử dụng để kết thúc việc nhận dựa trên dãy tuần tự ký tự khác nhau. Các dãy tuần tự có thể bao gồm một số lượng biến đổi các ký tự (lên đến tối đa bằng 5). Mỗi vị trí ký tự bên trong mỗi dãy tuần tự có thể được lựa chọn như một ký tự đặc biệt, hay được lựa chọn như một ký tự đại diện, nghĩa là bất kỳ ký tự nào cũng sẽ làm thỏa mãn điều kiện. Bất kỳ các ký tự đầu nào được cấu hình để được bỏ qua đều không cần thiết để trở thành một phần trong thông điệp. Bất kỳ các ký tự kế tiếp nào bị bỏ qua đều cần thiết để trở thành một phần thông điệp.

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 35

SIMATIC S7 - 1200

Thông số cấu trúc kiểu dữ liệu CONDITIONS (các điều kiện đầu) Thông số

Kiểu

Kiểu dữ

thông số

liệu

Miêu tả Chỉ định điều kiện khởi động:

STARTCOND

IN

UInt



01H – Start Char



02H – Any Char



04H – Line Break



08H – Idle Line



10H – Sequence 1



20H – Sequence 2



40H – Sequence 3



80H – Sequence 4

Số lượng các lần bit cần thiết cho kết thúc thời IDLETIME

IN

UInt

gian của đường truyền rỗi. Chỉ được sử dụng với một điều kiện đường truyền rỗi. Phạm vi từ 0 đến 65535.

STARTCHAR

IN

Byte

Ký tự khởi đầu được sử dụng với điều kiện ký tự khởi đầu. Điều khiển Sequence 1 bỏ qua/so sánh đối với mỗi ký tự: dưới đây là các bit kích hoạt cho mỗi ký tự trong dãy tuần tự khởi động

STRSEQ1CTL

IN

Byte



01H – Ký tự 1



02H – Ký tự 2



04H – Ký tự 3



08H – Ký tự 4



10H – Ký tự 5

Việc vô hiệu hóa các bit có liên quan với một ký tự đồng nghĩa với bất kỳ ký tự nào cũng sẽ phù hợp, trong vị trí dãy tuần tự này. STRSEQ1

IN

Char[5]

STRSEQ2CTL

IN

Byte

Các ký tự khởi động Sequence 1 (5 ký tự) Điều khiển bỏ qua/so sánh Sequence 2 cho mỗi ký tự

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 36

SIMATIC S7 - 1200 STRSEQ2

IN

Char[5]

STRSEQ3CTL

IN

Byte

STRSEQ3

IN

Char[5]

STRSEQ4CTL

IN

Byte

STRSEQ4

IN

Char[5]

Các ký tự khởi động Sequence 2 (5 ký tự) Điều khiển bỏ qua/so sánh Sequence 3 cho mỗi ký tự Các ký tự khởi động Sequence 3 (5 ký tự) Điều khiển bỏ qua/so sánh Sequence 4 cho mỗi ký tự Các ký tự khởi động Sequence 4 (5 ký tự)

Thông số cấu trúc kiểu dữ liệu CONDITIONS (các điều kiện cuối) Thông số

Kiểu

Kiểu dữ

thông số

liệu

Miêu tả Thông số này chỉ định điều kiện cuối của thông điệp:

ENDCOND

IN

UInt



01H – thời gian phản hồi



02H – thời gian thông điệp



04H – khoảng trắng liên ký tự



08H – độ dài tối đa



10H – N + LEN + M



20H – dãy tuần tự

Độ dài thông điệp tối đa: chỉ được sử dụng khi điều MAXLEN

IN

UInt

kiện độ dài thông điệp tối đa được lựa chọn. Phạm vi từ 0 đến 1023 byte. Vị trí byte bên trong thông điệp của trường độ dài. Chỉ

N

IN

UInt

được sử dụng với điều kiện cuối N + LEN + M. Phạm vi từ 0 đến 1023 byte. Xác định số lượng các ký tự theo sau trường độ dài mà

LENGTHM

IN

UInt

không được bao gồm trong giá trị của trường độ dài. Thông số này chỉ được sử dụng với điều kiện cuối N + LEN + M. Phạm vi từ 0 đến 255 byte. Xác định thời gian phải chờ để được nhận đối với ký tự

RCVTIME

IN

UInt

đầu tiên. Hoạt động nhận sẽ được chấm dứt với một lỗi nếu một ký tự không được nhận thành công bên trong thời gian được định trước. Thông số này chỉ được sử

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 37

SIMATIC S7 - 1200 dụng với điều kiện thời gian phản hồi. Phạm vi từ 0 đến 65535 lần bit, hay tối đa 8 giây. Thông số này không được thực sự định trị như một điều kiện cuối bì nó chỉ định trị các điều kiện đầu. Ta phải lựa chọn một điều kiện cuối riêng biệt. Xác định thời gian thông điệp trọn vẹn phải chờ để được nhận một cách hoàn tất một khi ký tự đầu tiên đã MSGTIME

IN

UInt

được nhận. Thông số này chỉ được sử dụng khi điều kiện hết thời gian chờ được lựa chọn. Phạm vi từ 0 đến 65535 mili giây. Xác định số lượng các lần bit giữa các ký tự. Nếu số lượng các lần bit giữa các ký tự vượt quá giá trị được

CHARGAP

IN

UInt

chỉ định, khi đó điều kiện cuối sẽ được thỏa mãn. Thông số này chỉ được sử dụng với điều kiện khoảng cách liên ký tự. Phạm vi từ 0 đến 65535 mili giây. Điều khiển bỏ qua/so sánh Sequence 1 cho mỗi ký tự: Có các bit kích hoạt cho mỗi ký tự đối với dãy tuần tự

ENDSEQ1CTL

IN

Byte

kết thúc. Ký tự 1 là bit 0, ký tự 2 là bit 1, … , ký tự 5 là bit 4. Việc vô hiệu bit có liên quan đến một ký tự có nghĩa là bất kỳ ký tự nào cũng sẽ phù hợp, trong vị trí dãy tuần tự này.

ENDSEQ1

IN

Char[5]

Các ký tự khởi đầu Sequence 1 (5 ký tự)

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 38

SIMATIC S7 - 1200

Các mã điều kiện STATUS

Miêu tả

(W#16#...) 80C0 80C1 80C2 80C3

Điều kiện đầu không hợp lệ được chọn Điều kiện cuối không hợp lệ được chọn, không có điều kiện cuối được chọn Ngắt thu nhận được kích hoạt và điều này là không thể Điều kiện cuối độ dài tối đa được kích hoạt và độ dài tối đa là 0 hay > 1024

80C4

Độ dài được tính toán được kích hoạt và N > = 1023

80C5

Độ dài được tính toán được kích hoạt và độ dài không phải là 1, 2 hay 4

80C6

Độ dài được tính toán được kích hoạt và giá trị M > 255

80C7

Độ dài được tính toán được kích hoạt và > 1024

80C8

Kết thúc thời gian chờ phản hồi được kích hoạt và thời gian phản hồi bằng 0

80C9

Khoảng trắng liên ký tự được kích hoạt và bằng 0 hay > 2500

80CA

Kết thúc thời gian đường truyền rỗi được kích hoạt và bằng 0 hay > 2500

80CB

Dãy tuần tự cuối được kích hoạt nhưng tất cả ký tự là “don’t care”

80CC

Dãy tuần tự đầu (bất kỳ trong 4 dãy) được kích hoạt nhưng tất cả các ký tự là “don’t care”

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 39

SIMATIC S7 - 1200

7.6.5. Lệnh SEND_PTP. Lệnh SEND_PTP (send PtP data – gửi dữ liệu PtP) bắt đầu sự truyền phát của dữ liệu. SEND_PTP truyền phát bộ đệm được chỉ định vào CM. Chương trình trong CPU tiếp tục trong khi CM gửi dữ liệu tại tốc độ baud được chỉ định. Chỉ một hoạt động gửi có thể trì hoãn tại một thời gian đã cho. CM sẽ trả về một lỗi nếu một lệnh SEND_PTP thứ hai được thực thi trong khi CM vừa đang phát đi một thông điệp. Thông số

Kiểu

Kiểu dữ

thông số

liệu

Miêu tả Kích hoạt sự truyền phát được yêu cầu trên

REQ

IN

Bool

ngưỡng tăng của ngõ vào kích hoạt truyền phát này. Thông số này khởi chạy sự truyền phát của các nội dung trong bộ đệm đến CM PtP. Bộ định danh cổng truyền thông:

PORT

IN

PORT

Địa chỉ logic này là một hằng số mà có thể được tham chiếu bên trong thẻ “Constants” của bảng thẻ ghi mặc định. Thông số này chỉ đến vị trí khởi đầu của bộ đệm

BUFFER

IN

Variant

truyền phát. Dữ liệu Boolean hay các mảng Boolean không được hỗ trợ Độ dài khung được phát từ các byte

LENGTH

IN

UInt

Khi truyền phát một cấu trúc phức, luôn luôn sử dụng độ dài bằng 0. Thông số này lựa chọn bộ đệm như một giao thức PtP bình thường hay một giao thức được cung cấp

PTRCL

IN

Bool

bởi Siemens mà được thực thi bên trong CM gắn kèm. FALSE = chương trình người dùng đã điều khiển các hoạt động PtP (chỉ là tùy chọn hợp lệ)

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 40

SIMATIC S7 - 1200

DONE

OUT

Bool

ERROR

OUT

Bool

STATUS

OUT

Word

TRUE đối với một lần quét, sau khi yêu cầu cuối cùng đã được hoàn thành mà không có lỗi. TRUE đối với một lần quét, sau khi yêu cầu cuối cùng đã được hoàn thành với một lỗi. Mã điều kiện thực thi

Trong khi một hoạt động truyền phát đang trong tiến trình, các ngõ ra DONE và ERROR là FALSE. Khi một hoạt động phát hoàn tất, hoặc ngõ ra DONE hoặc ngõ ra ERROR sẽ được đặt là TRUE đối với một chu trình quét để thể hiện trạng thái của hoạt động phát. Trong khi DONE và ERROR là TRUE, ngõ ra STATUS là hợp lệ. Lệnh trả về một trạng thái bằng 16#7001 nếu module truyền thông (CM) chấp nhận dữ liệu truyền phát. Những sự thực thi theo sau lệnh SEND_PTP trả về một giá trị 16#7002 nếu các CM vẫn đang bận truyền phát. Khi sự vận hành là hoàn tất, CM sẽ trả về trạng thái của hoạt động truyền phát, bằng 16#0000, nếu không có lỗi nào xuất hiện. Những sự thực thi sau đó của lệnh SEND_PTP với REQ ở mức thấp sẽ trả về một trạng thái bằng 16#7000 (không bận rộn). Mối quan hệ giữa các giá trị ngõ ra với REQ: Mối quan hệ này chỉ ra rằng lệnh được gọi một cách định kỳ để kiểm tra trạng thái của tiến trình truyền phát. Trong giản đồ dưới đây, nó chỉ ra rằng lệnh được gọi trong mỗi chu trình quét (được biểu diễn bởi các giá trị STATUS).

Giản đồ sau đây cho thấy các thông số DONE và STATUS là hợp lệ như thế nào đối với chỉ một lần quét nếu đường truyền REQ là một xung (đối với một lần quét) để khởi chạy hoạt động phát.

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 41

SIMATIC S7 - 1200

Giản đồ sau đây cho thấy mối quan hệ giữa các thông số DONE, ERROR và STATUS khi có một lỗi.

STATUS

Miêu tả

(W#16#...) 80D0

Yêu cầu mới trong khi bộ truyền phát hoạt động

80D1

Truyền phát bị hủy bỏ bởi không có CTS bên trong thời gian chờ

80D2

Truyền phát bị hủy bỏ bởi không có DSR từ thiết bị DCE

80D3

Truyền phát bị hủy bỏ bởi quá dòng được xếp hàng (phát nhiều hơn 1024 byte)

7000

Không bận rộn

7001

Bận rộn khi đang nhận yêu cầu (lần gọi đầu tiên)

7002

Bận rộn trong một sự hỏi vòng

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 42

SIMATIC S7 - 1200

Mối tƣơng tác của các thông số LENGTH và DATA đối với lệnh SEND_PTP Kích thước tối thiểu của dữ liệu mà có thể được truyền phát bởi lệnh SEND_PTP là 1 byte. Thông số DATA xác định kích thước của dữ liệu để truyền. Ta không thể sử dụng kiểu Bool hay các mảng Bool đối với thông số DATA. Thông số

Thông số

LENGTH

DATA

LENGTH = 0

Không sử dụng Kiểu

LENGTH > 0

Miêu tả Dữ liệu hoàn tất được gửi như được xác định tại thông số DATA. Ta không cần phải chỉ định số lượng các byte được truyền phát khi LENGTH = 0.

dữ

liệu thành phần

Giá trị LENGTH phải chứa giá trị đếm byte đối với kiểu dữ liệu này. Nếu không, sẽ không có dữ liệu được truyền và lỗi 8088H được trả về. Giá trị LENGTH có thể chứa một giá trị đếm byte nhỏ hơn độ dài byte

Cấu trúc

hoàn chỉnh của cấu trúc. Trong trường hợp này, chỉ có các byte LENGTH đầu tiên là được truyền phát. Giá trị LENGTH có thể chứa một giá trị đếm byte nhỏ hơn độ dài byte tối đa của mảng. Trong trường hợp này, chỉ có các phần tử mảng nào nằm vừa một cách hoàn chỉnh trong các byte LENTH là được truyền

Mảng

phát. Giá trị LENGTH phải là nhiều bộ đếm byte phần tử dữ liệu. Nếu không, STATUS = 8088H, ERROR = 1, và không có sự truyền phát nào xuất hiện. Bố trí bộ nhớ hoàn chỉnh của định dạng chuỗi được truyền phát. Giá trị LENGTH phải bao gồm các byte dành cho độ dài tối đa, độ dài thức tế và các ký tự của chuỗi.

Chuỗi

Đối với kiểu dữ liệu STRING, tất cả các độ dài và các ký tự đều có kích thước 1 byte. Nếu một chuỗi được sử dụng như một thông số thực tế tại thông số DATA, giá trị LENGTH còn phải bao gồm 2 byte dành cho 2 trường độ dài.

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 43

SIMATIC S7 - 1200

7.6.6. Lệnh RCV_PTP. Lệnh RCV_PTP (Receive PtP – nhận PtP) kiểm tra các thông điệp nào đã được nhận trong CM. Nếu một thông điệp là có sẵn, nó sẽ được truyền từ CM đến CPU. Một lỗi sẽ trả về giá trị STATUS thích hợp. Giá trị STATUS là hợp lệ khi hoặc DNR hoặc ERROR là TRUE. Giá trị STATUS cung cấp lý do cho sự chấm dứt hoạt động nhận trong CM. Thông số này thường là một giá trị dương, chỉ thị rằng hoạt động nhận đã thành công và do đó tiến trình nhận được chấm dứt một cách bình thường. Nếu giá trị STATUS là âm (bit có trọng số lớn nhất của giá trị thập lục phân được đặt), điều đó chỉ ra rằng hoạt động nhận đã được chấm dứt đối với một điều kiện lỗi như là các lỗi chẵn lẻ, lỗi định khung hay lỗi chạy quá. Mỗi CM PtP có thể đệm lên đến tối đa 1 kB. Đây có thể là một thông điệp lớn hoặc nhiều thông điệp nhỏ hơn. Thông số

Kiểu

Kiểu dữ

thông số

liệu

Miêu tả Khi ngõ vào này là TRUE, kiểm tra CM đối với các thông điệp được nhận. Nếu một thông điệp đã được nhận thành công, nó sẽ được truyền từ

EN_R

IN

Bool

module đến CPU. Khi EN_R là FALSE, CM được kiểm tra đối với các thông điệp được nhận và ngõ ra STATUS được đặt, nhưng thông điệp không được truyền vào CPU. Bộ định danh cổng truyền thông:

PORT

IN

PORT

Địa chỉ logic này là một hằng số mà có thể được tham chiếu bên trong thẻ “Constants” của bảng thẻ ghi mặc định. Thông số này chỉ đến vị trí khởi đầu của bộ đệm

BUFFER

IN

Variant

truyền phát. Bộ đệm này phải đủ lớn để nhận thông điệp với độ dài tối đa. Dữ liệu Boolean hay các mảng Boolean không

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 44

SIMATIC S7 - 1200 được hỗ trợ TRUE đối với một lần quét, khi dữ liệu mới là sẵn

NDR

OUT

Bool

ERROR

OUT

Bool

STATUS

OUT

Word

Mã điều kiện thực thi

LENGTH

OUT

UInt

Độ dài của thông điệp được trả về (tính theo byte)

sàng và sự hoạt động hoàn tất mà không có lỗi. TRUE đối với một lần quét, sau khi yêu cầu cuối cùng đã được hoàn thành với một lỗi.

STATUS

Miêu tả

(W#16#...) 0000

Không có bộ đệm nào hiện diện

80E0

Thông điệp được chấm dứt vì bộ đệm nhận đã đầy

80E1

Thông điệp được chấm dứt do lỗi chẵn lẻ

80E2

Thông điệp được chấm dứt do lỗi định khung

80E3

Thông điệp được chấm dứt do lỗi chạy quá

80E4

Thông điệp được chấm dứt do độ dài tính toán vượt quá kích thước bộ đệm

0094

Thông điệp được chấm dứt do độ dài ký tự tối đa được nhận

0095

Thông điệp được chấm dứt do kết thúc thời gian thông điệp

0096

Thông điệp được chấm dứt do kết thúc thời gian liên ký tự

0097

Thông điệp được chấm dứt do kết thúc thời gian phản hồi

0098 0099

Thông điệp được chấm dứt do điều kiện độ dài “N + LEN + M” đã được thỏa mãn Thông điệp được chấm dứt dãy tuần tự cuối đã được thỏa mãn

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 45

vSIMATIC S7 - 1200

7.6.7. Lệnh RCV_RST. Lệnh RCV_RST (Receiver Reset – đặt lại bộ nhận) xóa đi các bộ đệm nhận trong CM.

Thông số

REQ

Kiểu

Kiểu dữ

thông số

liệu

IN

Bool

Miêu tả Kích hoạt sự đặt lại bộ nhận trên ngưỡng tăng của ngõ vào kích hoạt này. Bộ định danh cổng truyền thông:

PORT

IN

PORT

Cổng phải được chỉ định bằng cách sử dụng các địa chỉ logic của module. Khi là TRUE đối với một lần quét, nó chỉ ra rằng

DONE

OUT

Bool

yêu cầu cuối cùng đã được hoàn thành mà không có lỗi. Khi là TRUE, cho thấy rằng yêu cầu cuối cùng đã

ERROR

OUT

Bool

được hoàn thành với các lỗi. Ngoài ra, khi ngõ ra này là TRUE, ngõ ra STATUS sẽ chứa các mã lỗi có liên quan.

STATUS

OUT

Word

Mã lỗi

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 46

SIMATIC S7 - 1200

7.6.8. Lệnh SGN_GET. Lệnh SGN_GET (Get RS232 Signals – nhận tín hiệu RS232) đọc trạng thái hiện thời của các tín hiệu truyền thông RS232. Chức năng này chỉ hợp lệ đối với CM RS232.

Thông số

REQ

Kiểu

Kiểu dữ

thông số

liệu

IN

Bool

Miêu tả Các giá trị trạng thái nhận tín hiệu RS232 trên ngưỡng tăng của ngõ vào này. Bộ định danh cổng truyền thông:

PORT

IN

PORT

Địa chỉ logic này là một hằng số mà có thể được tham chiếu bên trong thẻ “Constants” của bảng thẻ ghi mặc định. TRUE đối với một lần quét, khi dữ liệu mới sẵn

NDR

OUT

Bool

ERROR

OUT

Bool

STATUS

OUT

Word

Mã điều kiện thực thi

DTR

OUT

Bool

Đầu dữ liệu sẵn sàng, module sẵn sàng (ngõ ra)

DSR

OUT

Bool

RTS

OUT

Bool

CTS

OUT

Bool

DCD

OUT

Bool

RING

OUT

Bool

sàng và sự vận hành hoàn tất mà không có lỗi. TRUE đối với một lần quét, sau khi sự vận hành đã được hoàn thành với một lỗi.

Dữ liệu thiết lập sẵn sàng, đối tác truyền thông sẵn sàng (ngõ vào) Yêu cầu gửi, module sẵn sàng để gửi (ngõ ra) Xóa để gửi, đối tác truyền thông có thể nhận dữ liệu (ngõ vào) Bộ mang dữ liệu phát hiện, nhận cấp độ tín hiệu (luôn luôn sai, không được hỗ trợ) Bộ chỉ thị vòng, chỉ thị của các lần gọi đi vào (luôn luôn sai, không được hỗ trợ)

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 47

SIMATIC S7 - 1200 STATUS (W#16#...)

Miêu tả

80F0

CM là module RS485 và không có tín hiệu nào có sẵn

80F1

Các tín hiệu không thể được đặt vì điều khiển dòng bằng phần cứng

80F2

Không thể đặt DSR vì module là DTE

80F3

Không thể đặt DTR vì module là DCE

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 48

SIMATIC S7 - 1200

7.6.9. Lệnh SGN_SET. Lệnh SGN_SET (Set RS232 Signals – đặt các tín hiệu RS232) đặt trạng thái của các tín hiệu truyền thông RS232. Chức năng này chỉ hợp lệ đối với CM RS232.

Thông số

REQ

Kiểu

Kiểu dữ

thông số

liệu

IN

Bool

Miêu tả Khởi động hoạt động thiết lập các tín hiệu RS232, trên trên ngưỡng tăng của ngõ vào này. Bộ định danh cổng truyền thông:

PORT

IN

PORT

Địa chỉ logic này là một hằng số mà có thể được tham chiếu bên trong thẻ “Constants” của bảng thẻ ghi mặc định. Lựa chọn tín hiệu để đặt (cho phép nhiều lựa chọn):

SIGNAL

IN

Byte

RTS

IN

Bool

DTR

IN

Bool

DSR

IN

Bool

ERROR

OUT

Bool

STATUS

OUT

Word



01H = thiết lập RTS



02H = thiết lập DTR



03H = thiết lập DSR

Yêu cầu gửi, module sẵn sàng gửi giá trị để đặt (đúng hay sai) Đầu dữ liệu sẵn sàng, module sẵn sàng giá trị để đặt (đúng hay sai) Dữ liệu thiết lập sẵn sàng, (chỉ áp dụng đối với giao diện kiểu DCE) (không sử dụng) TRUE đối với một lần quét, sau khi yêu cầu cuối cùng đã được hoàn thành với một lỗi. Mã điều kiện thực thi

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 49

SIMATIC S7 - 1200 STATUS (W#16#...)

Miêu tả

80F0

CM là module RS485 và không có tín hiệu nào có sẵn

80F1

Các tín hiệu không thể được đặt vì điều khiển dòng bằng phần cứng

80F2

Không thể đặt DSR vì module là DTE

80F3

Không thể đặt DTR vì module là DCE

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 50

SIMATIC S7 - 1200

7.7.

Các lỗi.

Các giá trị trả về của các lệnh PtP Thông

Kiểu dữ

Mặc

số

liệu

định

DONE

Boolean

FALSE

ERROR

Boolean

FALSE

Miêu tả TRUE đối với một lần quét, chỉ ra rằng yêu cầu cuối cùng được hoàn thành mà không có lỗi. TRUE, chỉ ra rằng yêu cầu cuối cùng được hoàn thành với các lỗi, mã lỗi có thể áp dụng nằm trong STATUS. 2 byte chứa lớp của lỗi và số hiệu lỗi, nếu có thể áp

STATUS

Word

dụng. STATUS giữ lại giá trị của nó đối với quá trình

0

thực thi của chức năng.

Các lớp lỗi và các lỗi Miêu tả lớp

Các lớp lỗi

Port configuration

80Ax

Transmit configuration

80Bx

Reveive configuration

80Cx

Transmission runtime

80Dx

Reception runtime

80Ex

Signal handling

80Fx

Miêu tả Được sử dụng để xác định các lỗi cấu hình cổng chung Được sử dụng để xác định các lỗi cấu hình phát chung Được sử dụng để xác định các lỗi cấu hình nhận chung Được sử dụng để xác định các lỗi thời gian vận hành truyền phát chung Được sử dụng để xác định các lỗi thời gian vận hành thu nhận chung Được sử dụng để xác định các lỗi chung có liên quan với tất cả việc xử lý tín hiệu

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 51

SIMATIC S7 - 1200

Các lỗi cấu hình cổng ID sự kiện/lỗi

Miêu tả

0x80A0

Giao thức được chỉ định không tồn tại

0x80A1

Tốc độ baud được chỉ định không tồn tại

0x80A2

Tính chẵn lẻ được chỉ định không tồn tại

0x80A3

Số lượng các bit dữ liệu được chỉ định không tồn tại

0x80A4

Số hiệu các bit dừng được chỉ định không tồn tại

0x80A5

Kiểu điều khiển dòng được chỉ định không tồn tại

0x80B0

Giao thức được chỉ định không tồn tại

0x80B1

Tốc độ baud được chỉ định không tồn tại

0x80B2

Tính chẵn lẻ được chỉ định không tồn tại

0x80B3

Số lượng các bit dữ liệu được chỉ định không tồn tại

0x80B4

Số hiệu các bit dừng được chỉ định không tồn tại

0x80B5

Kiểu điều khiển dòng được chỉ định không tồn tại

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 52

SIMATIC S7 - 1200

Các lỗi cấu hình nhận ID sự kiện/lỗi

Miêu tả

0x80C0

Lỗi điều kiện đầu

0x80C1

Lỗi điều kiện cuối

0x80C3

Lỗi độ dài tối đa

0x80C4

Lỗi giá trị N (liên quan đến N + LEN + M)

0x80C5

Lỗi kích thước độ dài (liên quan đến N + LEN + M)

0x80C6

Lỗi giá trị M (liên quan đến N + LEN + M)

0x80C7

Lỗi giá trị N-Length-M (liên quan đến N + LEN + M) Lỗi kết thúc thời gian chờ phản hồi, không có thông điệp nào được

0x80C8

nhận trong suốt thời gian nhận được chỉ định (liên quan đến RCVTIME hay MSGTIME)

0x80C9 0x80CA

0x80CB

0x80CC

Lỗi kết thúc thời gian chờ liên ký tự (liên quan đến CHARGAP) Lỗi kết thúc thời gian chờ đường truyền rỗi (liên quan đến Idle Line) Một dãy tuần tự cuối được chỉ định là được cấu hình với tất cả các ký tự là “don’t care” Một dãy tuần tự đầu được chỉ định là được cấu hình với tất cả các ký tự là “don’t care”

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 53

SIMATIC S7 - 1200

Các lỗi tín hiệu ID sự kiện/lỗi 0x80F0

0x80F1 0x80F2

Miêu tả Module truyền thông là một module RS485 và không có tín hiệu nào có sẵn Module truyền thông là một module RS232, nhưng không có tín hiệu nào có thể thiết lập vì điều khiển dòng H/W được kích hoạt Tín hiệu DSR không thể được đặt vì module là một thiết bị DTE

Các lỗi thời gian vận hành truyền phát ID sự kiện/lỗi Buffer Limit 0x80D0

Miêu tả Tổng bộ đệm phát có sẵn của CPU đã bị vượt quá Một yêu cầu mới đã được nhận trong khi bộ phát đang hoạt động Bộ nhận đã ban hành một yêu cầu điều khiển dòng để hoãn lại một sự truyền phát hoạt động và không bao giờ được kích hoạt trở lại sự truyền

0x80D1

phát trong suốt thời gian chờ được chỉ định. Lỗi này còn được sinh ra trong suốt điều khiển dòng phần cứng khi bộ nhận không xác nhận CTS bên trong thời gian chờ được chỉ định.

0x80D2

Yêu cầu phát đã bị hủy bỏ vì không có tín hiệu DSR được nhận từ DCE

0x80D3

Tổng bộ đệm nhận có sẵn của CPU đã bị vượt quá

0x7000

Chức năng phát không bận rộn

0x7001

Chức năng phát bận rộn với lần gọi đầu tiên

0x7002

Chức năng phát bận rộn với các lần gọi tiếp theo (các kiểm tra vòng sau lần gọi đầu tiên)

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 54

SIMATIC S7 - 1200

Các giá trị trả về trong thời gian vận hành thu nhận ID sự kiện/lỗi

Miêu tả

0x80E0

Thông điệp đã được chấm dứt vì bộ đệm nhận đầy

0x80E1

Thông điệp đã được chấm dứt do kết quả của một lỗi chẵn lẻ

0x80E2

Thông điệp đã được chấm dứt do kết quả của một lỗi định khung

0x80E3

Thông điệp đã được chấm dứt do kết quả của một lỗi chạy quá

0x80E4

0x0094

0x0095

0x0096

0x0097

0x0098

0x0099

Thông điệp đã được chấm dứt do kết quả của một độ dài được chỉ định vượt quá kích thước bộ đệm tổng Thông điệp đã được chấm dứt vì độ dài ký tự tối đa đã được nhận (MAXLEN) Thông điệp đã được chấm dứt vì thông điệp hoàn chỉnh đã không được nhận trong thời gian được chỉ định (MSGTIME) Thông điệp đã được chấm dứt vì ký tự tiếp theo không được nhận bên trong quá trình thời gian liên ký tự (CHARGAP) Thông điệp đã được chấm dứt vì ký tự đầu tiên không được nhận trong thời gian được chỉ định (RCVTIME) Thông điệp đã được chấm dứt vì điều kiện độ dài “N + LEN + M” đã được thỏa mãn (N + LEN + M) Thông điệp đã được chấm dứt vì dãy tuần tự kết thúc đã được thỏa mãn (ENDSEQ)

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 55

SIMATIC S7 - 1200

Các lỗi thông số khác ID sự kiện/lỗi

Miêu tả

0x8n3A

Một con trỏ không hợp lệ đã được cung cấp trên thông số N

0x8070

Tất cả bộ nhớ tức thời bên trong đang được sử dụng

0x8080

Số hiệu cổng không hợp lệ

0x8082 0x8083 0x0085 0x0088

Sự thông số hóa thất bại bởi thông số hóa vừa được xử lý trong nền sau Bộ đệm tràn ra. CM trả về nhiều dữ liệu hơn được cho phép Thông số LEN có giá trị bằng 0 hay lớn hơn giá trị lớn nhất được cho phép Thông số LEN lớn hơn vùng nhớ được chỉ định trong DATA

CHƢƠNG 7: TRUYỀN THÔNG ĐIỂM – ĐIỂM

Trang 7 - 56

SIMATIC S7 - 1200

Chƣơng 8 Các công cụ trực tuyến và chẩn đoán

CHƢƠNG 8: CÁC CÔNG CỤ TRỰC TUYẾN VÀ CHẨN ĐOÁN

Trang 8 - 1

SIMATIC S7 - 1200

8.1.

Các LED trạng thái. CPU và các module I/O sử dụng các LED để cung cấp thông tin về cả trạng thái

hoạt động của module lẫn của I/O. CPU cung cấp các bộ chỉ thị trạng thái sau đây:  STOP/RUN -

Màu cam thuần túy chỉ thị chế độ STOP

-

Màu xanh lá thuần túy chỉ thị chế độ RUN

-

Màu nhấp nháy (luân phiên giữa xanh lá và cam) chỉ thị rằng CPU đang khởi động

 ERROR -

Màu đỏ nhấp nháy chỉ thị một lỗi, như một lỗi nội bộ trong CPU, một lỗi với thẻ nhớ, hay một lỗi về cấu hình (các module không thích ứng)

-

Màu đỏ thuần túy chỉ thị phần cứng bị hỏng

 MAINT (Maintenance) nhấp nháy khi ta gắn vào một thẻ nhớ. CPU sau đó chuyển sang chế độ STOP. Sau khi CPU đã chuyển sang chế độ STOP, thực hiện một trong các hàm sau đây để bắt đầu sự định lượng thẻ nhớ: -

Thay đổi CPU sang chế độ RUN

-

Thực hiện một sự đặt lại bộ nhớ (MRES)

-

Chu trình cấp điện CPU

CHƢƠNG 8: CÁC CÔNG CỤ TRỰC TUYẾN VÀ CHẨN ĐOÁN

Trang 8 - 2

SIMATIC S7 - 1200

Miêu tả Nguồn bị ngắt

Màu cam/ xanh lá

Màu đỏ

Màu cam

STOP/RUN

ERROR

MAINT

Off

Off

Off

-

Off

Khởi động, tự kiểm tra, cập Nhấp nháy (luân phiên màu nhật firmware

cam và xanh lá)

Chế độ STOP

On (màu cam)

-

-

Chế độ RUN

On (màu cam)

-

-

Lấy ra thẻ nhớ

On (màu cam)

-

Nhấp nháy

Lỗi

On (cả màu cam lẫn xanh lá)

Nhấp nháy

-

Được yêu cầu duy trì

On (cả màu cam lẫn xanh lá)

-

On

Phần cứng bị hỏng

On (màu cam)

On

Off

Nhấp nháy

Nhấp nháy

Kiểm tra LED hay firmware Nhấp nháy (luân phiên màu CPU bị hỏng

cam và xanh lá)

CPU còn cung cấp hai LED chỉ thị trạng thái của truyền thông PROFINET. Để xem các LED PROFINET, ta mở tấm che dãy đầu nối ở dưới đáy.  Link (xanh lá) được bật lên chỉ thị một kết nối thành công  Rx/Tx (màu vàng) bật lên chỉ thị hoạt động truyền phát CPU và mỗi module tín hiệu (CM) kiểu số cung cấp một LED kênh I/O cho mỗi một trong các ngõ vào và ngõ ra số. Kênh I/O (xanh lá) chuyển sang bật hay tắt để chỉ thị trạng thái của ngõ vào hay ngõ ra riêng lẻ. Thêm vào đó, mỗi SM kiểu số cung cấp một LED DIAG chỉ thị trạng thái của module:  Màu xanh lá chỉ thị rằng module đang làm việc  Màu đỏ chỉ thị rằng module bị hỏng hay không làm việc Mỗi SM kiểu tương tự cung cấp LED kênh I/O cho mỗi một trong các ngõ vào và ngõ ra kiểu tương tự. CHƢƠNG 8: CÁC CÔNG CỤ TRỰC TUYẾN VÀ CHẨN ĐOÁN

Trang 8 - 3

SIMATIC S7 - 1200

 Màu xanh lá chỉ thị rằng kênh đã vừa được cấu hình và đang hoạt động  Màu đỏ chỉ thị một điều kiện lỗi của một ngõ vào hay ngõ ra kiểu tương tự riêng lẻ Thêm vào đó, mỗi SM kiểu tương tự cung cấp một LED DIAG chỉ thị trang thái của module:  Màu xanh lá chỉ thị rằng module đang làm việc  Màu đỏ chỉ thị rằng module bị hư hỏng hay không làm việc SM phát hiện sự có hiện diện hay vắng mặt của tín hiệu đến module (tín hiệu lề, nếu cần) DIAG (Màu đỏ /

Kênh I/O (Màu đỏ /

Xanh lá)

Xanh lá)

Tín hiệu bên lề bị tắt

Màu đỏ nhấp nháy

Màu đỏ nhấp nháy

Không được cấu hình hay cập nhật trong

Màu xanh lá nhấp

Miêu tả

tiến trình

nháy

Off

Module được cấu hình mà không có lỗi

On (màu xanh lá)

On (màu xanh lá)

Điều kiện lỗi

Màu đỏ nhấp nháy

-

Lỗi I/O (với các chẩn đoán được kích hoạt)

-

Màu đỏ nhấp nháy

Lỗi I/O (với các chẩn đoán được kích hoạt)

-

On (màu xanh lá)

CHƢƠNG 8: CÁC CÔNG CỤ TRỰC TUYẾN VÀ CHẨN ĐOÁN

Trang 8 - 4

SIMATIC S7 - 1200

8.2.

Tham gia trực tuyến và kết nối đến một CPU. Một kết nối trực tuyến giữa thiết bị lập trình và một hệ thống đích là cần thiết

cho việc nạp các chương trình các dữ liệu thiết kế đề án đến hệ thống đích cũng như cho các hoạt động như sau:  Kiểm tra các chương trình người dùng  Hiển thị và thay đổi chế độ vận hành của CPU  Hiển thị và thiết lập ngày và giờ trong ngày của CPU  Hiển thị thông tin module  So sánh trực tuyến và ngoại tuyến các khối  Chẩn đoán phần cứng Sau đó ta có thể truy xuất dữ liệu trên hệ thống đích trong kiểu xem trực tuyến hay chẩn đoán bằng cách sử dụng thẻ tác vụ “Online tools”.

Trạng thái trực tuyến hiện thời của một thiết bị được chỉ thị bởi một biểu tượng nằm kế bên phải thiết bị trong mục điều hướng đề án. Màu cam chỉ thị một kết nối trực tuyến. Lựa chọn “Accessible Nodes” để tìm một CPU trên mạng. Nhấp vào “Go online” để kết nối đến một CPU trên mạng.

CHƢƠNG 8: CÁC CÔNG CỤ TRỰC TUYẾN VÀ CHẨN ĐOÁN

Trang 8 - 5

SIMATIC S7 - 1200

8.3.

Thiết lập địa chỉ IP và thời gian trong ngày. Ta có thể thiết lập địa chỉ IP và thời gian trong ngày trong CPU trực tuyến.

Sau khi kết nối đến một CPU trực tuyến từ vùng “Online & Diagnostic”, ta có thể hiển thị hay thay đổi địa chỉ IP. Ta cũng có thể hiển thị hay thiết lập các thông số thời gian và ngày của CPU trực tuyến.

CHƢƠNG 8: CÁC CÔNG CỤ TRỰC TUYẾN VÀ CHẨN ĐOÁN

Trang 8 - 6

SIMATIC S7 - 1200

8.4.

Bảng điều khiển CPU dành cho CPU trực tuyến. Thẻ tác vụ “CPU operator panel” hiển thị chế độ

đang hoạt động (STOP hay RUN) của CPU trực tuyến: bảng này còn thể hiện khi nào CPU có lỗi hay khi các giá trị đang bị ép buộc. Ta sử dụng bảng vận hành CPU để thay đổi chế độ hoạt động của một CPU trực tuyến. 8.5.

Giám sát thời gian chu trình và việc sử dụng bộ nhớ. Ta có thể giám sát thời gian chu trình và việc sử dụng bộ nhớ của một CPU trực

tuyến. Sau khi kết nối đến một CPU trực tuyến, ta có thể xem các đại lượng đo sau đây:  Thời gian chu trình  Việc sử dụng bộ nhớ

CHƢƠNG 8: CÁC CÔNG CỤ TRỰC TUYẾN VÀ CHẨN ĐOÁN

Trang 8 - 7

SIMATIC S7 - 1200

8.6.

Hiển thị các sự kiện chẩn đoán trong CPU. Ta sử dụng bộ đệm chẩn đoán để xem lại hoạt động gần đây trong CPU. Bộ

đệm chẩn đoán chứa các mục nhập vào sau đây:  Các sự kiện chẩn đoán  Các thay đổi trong chế độ vận hành của CPU (chuyển đổi sang chế độ STOP hay RUN)

Mục nhập đầu tiên chứa sự kiện mới nhất. Mỗi mục nhập trong bộ đệm chẩn đoán chứa ngày và giờ mà sự kiện đã được ghi lại, cùng với một miêu tả. Số lượng tối đa các mục nhập phụ thuộc vào CPU. Có tối đa 50 mục nhập được hỗ trợ. Chỉ có 10 sự kiện gần đây nhất trong bộ đệm chẩn đoán là được lưu trữ thường xuyên. Việc khôi phục CPU trở về thiết lập của nhà máy sẽ đặt lại bộ đệm chẩn đoán bằng cách xóa đi các mục nhập vào.

CHƢƠNG 8: CÁC CÔNG CỤ TRỰC TUYẾN VÀ CHẨN ĐOÁN

Trang 8 - 8

SIMATIC S7 - 1200

8.7.

Các bảng quan sát dành cho giám sát chƣơng trình ngƣời dùng. Bảng quan sát cho phép ta thực hiện việc giám sát và điều khiển các hàm trên

các điểm dữ liệu giống như CPU thực thi chương trình. Các điểm dữ liệu này có thể là ảnh tiến trình (I hay Q), thực thể (I_:P hay Q_:P), M, hay DB phụ thuộc vào chức năng giám sát hay điều khiển. Chức năng giám sát không làm thay đổi tuần tự chương trình. Nó cung cấp thông tin về tuần tự chương trình và dữ liệu của chương trình trong CPU. Chức năng điều khiển cho phép người dùng điều khiển tuần tự và dữ liệu của chương trình. Sự thận trọng cần được chấp hành khi sử dụng các chức năng điều khiển. Các chức năng này có thể ảnh hưởng một cách trầm trọng đến sự thực thi của chương trình người dùng/chương trình hệ thống. 3 chức năng điều khiển gồm có: Modify (chỉnh sửa), Force (ép buộc) và Enable Outputs (kích hoạt ngõ ra) trong chế độ STOP. Với bảng quan sát, ta có thể thực hiện các chức năng trực tuyến sau đây:  Giám sát trạng thái các thẻ ghi  Chỉnh sửa các giá trị đối với các thẻ ghi riêng biệt  Ép buộc một thẻ ghi với một giá trị riêng Ta lựa chọn khi nào giám sát hay chỉnh sửa thẻ ghi:  Khởi đầu của chu kỳ quét: đọc hay ghi các giá trị tại khởi đầu chu kỳ quét  Kết thúc của chu kỳ quét: đọc hay ghi các giá trị tại kết thúc chu kỳ quét  Chuyển sang dừng

CHƢƠNG 8: CÁC CÔNG CỤ TRỰC TUYẾN VÀ CHẨN ĐOÁN

Trang 8 - 9

SIMATIC S7 - 1200

Để tạo ra một bảng quan sát: 1. Nhấp đôi chuột vào “Add new watch table” để mở ra một bảng quan sát mới. 2. Nhập vào tên thẻ ghi để thêm một thẻ ghi vào bảng quan sát.

Các tùy chọn sau đây là có sẵn dành cho các thẻ ghi giám sát:  Monitor all: lệnh này khởi động việc giám sát các thẻ ghi nhìn thấy được trong bảng quan sát đang hoạt động.  Monitor now: lệnh này khởi động việc giám sát các thẻ ghi nhìn thấy được trong bảng quan sát đang hoạt động. Bảng quan sát sẽ giám sát các thẻ ghi ngay lập tức và chỉ một lần. Các tùy chọn sau đây là có sẵn dành cho việc chỉnh sửa các thẻ ghi:  “Modify to 0” thiết lập giá trị của địa chỉ được chọn về “0”.  “Modify to 1” thiết lập giá trị của địa chỉ được chọn về “1”.  “Modify now” thay đổi ngay lập tức giá trị của địa chỉ được chọn cho một chu kỳ quét.  “Modify with trigger” thay đổi giá trị của địa chỉ được chọn. Chức năng này không cung cấp sự hồi tiếp để chỉ thị rằng địa chỉ được chọn thực tế đã được chỉnh sửa. Nếu sự hồi tiếp của thay đổi được yêu cầu, ta sử dụng chức năng “Modify now”.  “Enable peripheral outputs” làm vô hiệu ngõ ra của lệnh và chỉ có sẵn khi CPU đang ở chế độ STOP. Để giám sát các thẻ ghi, ta phải có một kết nối trực tuyến đến CPU.

CHƢƠNG 8: CÁC CÔNG CỤ TRỰC TUYẾN VÀ CHẨN ĐOÁN

Trang 8 - 10

SIMATIC S7 - 1200

Các chức năng khác nhau có thể được lựa chọn bằng cách sử dụng các nút ở trên bảng quan sát. Nhập vào tên thẻ ghi để giám sát và lựa chọn một định dạng hiển thị từ mục lựa chọn thả xuống. Với một kết nối trực tuyến đến CPU, việc nhấp vào nút “Monitor” sẽ hiển thị giá trị thực tế của điểm dữ liệu trong trường “Monitor value”. Sử dụng một kích hoạt khi giám sát hay chỉnh sửa các thẻ ghi PLC Việc kích hoạt xác định tại điểm nào trong chu kỳ quét mà địa chỉ được chọn sẽ được giám sát hay được chỉnh sửa. Kiểu kích

Miêu tả

hoạt Thường xuyên Tại khởi đầu của

chu

kỳ

quét

Thường xuyên: thu thập dữ liệu một cách liên tục tại khởi đầu chu kỳ quét, sau khi CPU đọc các ngõ vào Một lần: thu thập dữ liệu tại khởi đầu của chu kỳ quét, sau khi CPU đọc các ngõ vào

Tại kết thúc của

Thu thập dữ liệu một cách liên tục

chu

kỳ

quét

Thường xuyên: thu thập dữ liệu một cách liên tục tại kết thúc chu kỳ quét, trước khi CPU ghi các ngõ ra Một lần: thu thập dữ liệu tại kết thúc của chu kỳ quét, trước khi CPU ghi các ngõ ra Thường xuyên: thu thập dữ liệu một cách liên tục khi CPU chuyển về

Tại sự chuyển về STOP

STOP Một lần: thu thập dữ liệu một lần sau khi CPU chuyển về STOP

CHƢƠNG 8: CÁC CÔNG CỤ TRỰC TUYẾN VÀ CHẨN ĐOÁN

Trang 8 - 11

SIMATIC S7 - 1200

Để chỉnh sửa một thẻ ghi PLC tại một sự kích hoạt được đã cho, lựa chọn hoặc khởi đầu hoặc kết thúc của chu kỳ.  Chỉnh sửa một ngõ ra: sự kiện kích hoạt tốt nhất cho việc chỉnh sửa một ngõ ra là tại kết thúc của chu kỳ quét, ngay lập tức trước khi CPU ghi vào các ngõ ra. Ta giám sát giá trị của các ngõ ra tại khởi đầu của chu kỳ quét để xác định giá trị nào được ghi đến các ngõ ra vật lý. Ngoài ra, giám sát các ngõ ra trước khi CPU ghi các giá trị đến các ngõ ra vật lý nhằm mục đích kiểm tra logic chương trình và để so sánh đến trạng thái I/O thực tại.  Chỉnh sửa một ngõ vào: sự kiện kích hoạt tốt nhất để chỉnh sửa một ngõ vào là tại khởi đầu của chu kỳ, ngay lập tức sau khi CPU đọc các ngõ vào và trước khi chương trình người dùng sử dụng các giá trị ngõ vào. Nếu đang chỉnh sửa các ngõ vào tại khởi đầu của chu kỳ quét, ta còn nên giám sát giá trị của các ngõ vào tại kết thúc của chu kỳ quét để đảm bảo rằng, giá trị của ngõ vào tại kết thúc chu kỳ quét không bị thay đổi từ sự khởi động của chu kỳ quét. Nếu có một sự khác biệt giữa các giá trị, chương trình người dùng có thể đang ghi đến một ngõ vào đang có lỗi. Để chẩn đoán tại sao CPU có thể đã đi vào chế độ STOP, sử dụng kích hoạt “Transition to STOP” để bắt giữ các giá trị xử lý sau cùng. Kích hoạt các ngõ ra trong chế độ STOP Bảng quan sát cho phép ta ghi vào các ngõ ra khi CPU đang ở trong chế độ STOP. Chức năng này cho phép ta kiểm tra việc nối dây ở các ngõ ra và kiểm chứng rằng dây nối được nối đến một chân ngõ ra sẽ khởi chạy một tín hiệu mức cao hay mức thấp đến đầu nối của thiết bị xử lý mà nó được kết nối đến. CẢNH BÁO Ngay cả khi CPU đang trong chế độ STOP, việc kích hoạt một ngõ ra vật lý có thể làm kích hoạt điểm xử lý mà nó được kết nối đến.

CHƢƠNG 8: CÁC CÔNG CỤ TRỰC TUYẾN VÀ CHẨN ĐOÁN

Trang 8 - 12

SIMATIC S7 - 1200

Ta có thể thay đổi trạng thái của các ngõ ra trong chế độ STOP khi các ngõ ra được khởi động. Không thể chỉnh sửa các ngõ ra trong chế độ STOP nếu các chúng bị vô hiệu.  Để kích hoạt sự sửa đổi các ngõ ra trong chế độ STOP, ta lựa chọn tùy chọn “Enable peripheral outputs” của lệnh “Modify” trong trình đơn “Online”, hay bằng cách nhấp chuột phải lên hàng trong bảng quan sát.  Việc thiết lập CPU về chế độ RUN làm vô hiệu tùy chọn “Enable peripheral outputs”.  Nếu bất kỳ các ngõ vào hay ngõ ra nào bị ép buộc, CPU sẽ không cho phép khởi động các ngõ ra trong khi đang ở chế độ STOP. Trước tiên chức năng ép buộc phải bị bỏ qua. Ép buộc các giá trị trong CPU CPU cho phép ta ép buộc (các) điểm ngõ vào và ngõ ra bằng cách chỉ ra địa chỉ ngõ vào hay ngõ ra vật lý (I_:P hay Q_:P) trong bảng quan sát và bắt đầu việc ép buộc. Trong chương trình, việc đọc các ngõ vào vật lý sẽ bị ghi đè lên bởi một giá trị bị ép buộc. Chương trình sử dụng giá trị bị ép buộc trong quá trình xử lý. Khi chương trình ghi một ngõ ra vật lý, giá trị ngõ ra bị ghi đè lên bởi giá trị ép buộc. Giá trị bị ép buộc xuất hiện tại ngõ ra vật lý và được sử dụng bởi tiến trình. Khi một ngõ vào hay ngõ ra bị ép buộc trong bảng quan sát, các hoạt động ép buộc trở thành một phần của chương trình người dùng. Ngay cả khi phần mềm chương trình đã được đóng lại, các lựa chọn ép buộc vẫn duy trì hoạt động trong chương trình CPU đang vận hành cho đến khi chúng bị xóa bằng việc tham gia trực tuyến với phần mềm lập trình và việc dừng chức năng ép buộc. Các chương trình với các điểm ép buộc được nạp trong CPU khác từ một thẻ nhớ sẽ tiếp tục ép buộc các điểm được lựa chọn trong chương trình. Nếu CPU đang thực thi chương trình người dùng từ một thẻ nhớ được bảo vệ chống ghi, ta không thể khởi chạy hay thay đổi việc ép buộc các I/O từ bảng quan sát, vì ta không thể khống chế các giá trị trong một chương trình người dùng được bảo vệ chống ghi. Bất kỳ sự cố gắng nào nhằm ép buộc các giá trị được bảo vệ chống ghi sẽ CHƢƠNG 8: CÁC CÔNG CỤ TRỰC TUYẾN VÀ CHẨN ĐOÁN

Trang 8 - 13

SIMATIC S7 - 1200

phát sinh ra một lỗi. Nếu ta sử dụng một thẻ nhớ để truyền đi một chương trình người dùng, bất kỳ các phần tử bị ép buộc nào trên đó sẽ được truyền đến CPU.

Lƣu ý Các điểm I/O kiểu số được sử dụng bởi bộ đếm tốc độ cao (HSC), bộ điều chế độ rộng xung (PWM) và các thiết bị ngõ ra chuỗi xung (PTO) đều được gán giá trị trong suốt sự cấu hình thiết bị. Khi các địa chỉ điểm I/O kiểu số được gán đến các thiết bị này, các giá trị của các địa chỉ điểm I/O được gán không thể bị sửa đổi bởi chức năng ép buộc của bảng quan sát.

CHƢƠNG 8: CÁC CÔNG CỤ TRỰC TUYẾN VÀ CHẨN ĐOÁN

Trang 8 - 14

SIMATIC S7 - 1200

Khởi động

RUN

A Việc xóa của vùng nhớ I không bị

 Trong khi đang ghi bộ nhớ Q đến

ảnh hưởng bởi chức năng ép buộc.

các ngõ ra vật lý, CPU áp dụng giá trị ép buộc như là các ngõ ra được cập nhật.  Khi đang đọc các ngõ vào vật lý,

B Sự khởi chạy của các giá trị ngõ ra

CPU áp dụng các giá trị ép buộc chỉ ưu

không bị ảnh hưởng bởi chức năng ép

tiên để sao chép các ngõ vào vào trong

buộc.

bộ nhớ I.  Trong suốt việc thực thi chương

C Trong suốt sự thực thi của các OB khởi động, CPU áp dụng giá trị ép buộc khi chương trình người dùng truy xuất ngõ vào vật lý.

trình người dùng (các OB chu kỳ chương trình), CPU áp dụng giá trị ép buộc khi chương trình người dùng truy xuất ngõ vào vật lý hay ghi ngõ ra vật lý.  Việc xử lý các yêu cầu truyền thông

D Việc lưu trữ các sự kiện ngắt bên

và các chẩn đoán tự kiểm tra không bị

trong hàng không bị ảnh hưởng.

ảnh hưởng bởi chức năng ép buộc.

E Việc khởi động ghi đến các ngõ ra

 Việc xử lý các ngắt trong suốt bất kỳ

không bị ảnh hưởng.

một phần nào của chu kỳ quét không bị ảnh hưởng.

CHƢƠNG 8: CÁC CÔNG CỤ TRỰC TUYẾN VÀ CHẨN ĐOÁN

Trang 8 - 15

More Documents from "An Doan"

Plc-scada.pdf
December 2019 2
Bai Giang Thuy Khi.docx
December 2019 2
April 14, 2006
June 2020 3
Contoh Proposal.docx
October 2019 34