phần 2: Tài liệu lập trình PLC Siemens tia pro2 ver VN. TIA Portal hướng dẫn 1 Thiết bị 2 Vận hành phần cứng 3 phương pháp thiết kế chương trình 4 Chức năng 5 Xử lý tín hiệu tương tự Analog và số học 6 FC, FB và nhiều trường hợp 7 Dữ liệu phức tạp và địa chỉ 8 khối được tối ưu hóa 9 tin nhắn cảnh báo HMI 10 OB chẩn đoán và lỗi hệ thống 11 Giới thiệu về SCL 12 Giới thiệu về S7-Graph (1) 13 Tích hợp và chạy thử Drive với Startdrive 14 Đào tạo và hỗ trợ
Trang 11
2
bằng cách chỉ định rõ ràng cái gọi là khối dữ liệu cá thể trong quá trình gọi khối chức năng
Khái niệm khởi tạo các khối chức năng có ý nghĩa rất lớn và tạo nên sự khác biệt cơ bản cho các chức năng Việc tạo thẻ trong ngôn ngữ cấp cao, chẳng hạn như "C" chỉ định tên thẻ và loại dữ liệu được gọi là "khởi tạo" hoặc "hình thành phiên bản"
Cũng giống như thẻ, các khối chức năng cũng được “khởi tạo” Chỉ thông qua việc gán vùng dữ liệu riêng trong đó các giá trị của tham số khối cũng như các biến tĩnh được lưu trữ thì khối chức năng mới trở thành một đơn vị thực thi (ví dụ FB)
bằng cách khai báo rõ ràng các phiên bản của bộ đếm IEC hoặc chức năng hẹn giờ IEC trong khối dữ liệu toàn cầu
Sau đó, việc điều khiển một đơn vị xử lý vật lý, chẳng hạn như một ổ đĩa hoặc một nồi hơi diễn ra với sự trợ giúp của một phiên bản FB, tức là một khối chức năng với vùng dữ liệu liên quan Dữ liệu liên quan cho đơn vị quy trình này sau đó được lưu trữ trong vùng dữ liệu này
bằng cách khai báo rõ ràng các phiên bản của một khối chức năng trong khối chức năng cấp cao hơn (xem thêm các trang sau, mô hình nhiều phiên bản)
Việc hình thành một phiên bản FB, tức là việc gán vùng bộ nhớ của chính nó trong cuộc gọi FB có thể xảy
ra theo hai cách trong BƯỚC 7:
Khởi tạo
1
Dữ liệu cá thể và nhiều cá thể 6.5.
Trang 26.5.1 Ví dụ: Lưu trữ
phiên bản bộ đếm/bộ đếm thời gian IEC trong cơ sở dữ liệu toàn cầu
TIA-PRO2 - Tài liệu đào tạo về hàm, khối chức năng và đa trường
hợp V13.01.00 6-12
Ứng dụng
Cùng với đó, dữ liệu phiên bản của bộ đếm và bộ định thời IEC được sử dụng trong khối dữ liệu toàn cầu cũng có thể được thu thập trong một hàm (FC) (xem hình)
Tuy nhiên, cần lưu ý rằng do điều này, việc gọi FC (trong ví dụ "FC_Test") không tuân thủ IEC và
do đó không thể sử dụng lại được, vì ngay cả việc truyền các phiên bản bộ đếm IEC, cũng thể hiện việc sử dụng toán hạng chung
STEP7 cung cấp khả năng tạo các phiên bản của bộ đếm và bộ định thời IEC trong DB toàn cầu
Trang 3trước đây bạn đã khai báo trong "DB_Bay" (DB123).
2 Trong "FB_Statistics" (FB18), hãy thay thế các DB phiên bản đơn, riêng biệt bằng các phiên bản
Để thực hiện, hãy chia vùng soạn thảo theo chiều ngang (xem hình) sao cho hai khối “DB_Bay”
Chia theo chiều ngang Khu vực soạn thảo
6.5.2 Bài tập 1: “FB_Statistics” (FB18):
Tạo các phiên bản bộ đếm IEC trong DB toàn cầu
TIA-PRO2 - Tài liệu đào tạo về hàm, khối chức năng và đa trường
hợp V13.01.00
6-13
Trang 4Khối "FB_Fault" (FB17) nhằm thay thế khối "FC_Fault" (FC17) và thực hiện chính xác các chức năng tương tự và do đó đáp ứng đầy đủ các yêu cầu đã nêu của IEC61131-3.
Theo tiêu chuẩn IEC61131-3, không có toán hạng chung nào có thể được sử dụng trong FC và FB, nghĩa
là không có đầu vào, đầu ra, bộ nhớ bit, biến khối dữ liệu, bộ định thời SIMATIC hoặc bộ đếm SIMATIC - chỉ cho phép các toán hạng cục bộ, nghĩa là chỉ tham số và biến cục bộ
Giao tiếp của khối với "thế giới bên ngoài" của nó chỉ diễn ra thông qua giao diện của khối hoặc chỉ thông qua các tham số đầu vào, đầu ra và vào/ra
Mô tả công việc
tuân thủ theo tiêu chuẩn IEC và có thể tái sử dụng
6.6 Mô tả công việc: Lập trình "FB_Fault" (FB17)
TIA-PRO2 - Tài liệu đào tạo về hàm, khối chức năng và đa trường
hợp V13.01.00 6-14
Trang 5Khái niệm phiên bản của STEP 7 có những lợi ích sau:
• bằng cách xác định rõ ràng một khối dữ liệu cá thể khi một khối chức năng được gọi
Một trường hợp là gì?
• bằng cách khai báo rõ ràng các phiên bản của một khối chức năng trong khối chức năng cấp cao hơn (mô hình nhiều phiên bản) Sau đó, BƯỚC 7 đảm bảo rằng vùng dữ liệu cần thiết cho phiên bản được thiết lập trong vùng dữ liệu của FB cấp cao hơn
Khái niệm khởi tạo các khối chức năng có tầm quan trọng rất lớn và tạo thành tiêu chí phân biệt thiết yếu cho các chức năng Việc thiết lập các biến trong ngôn ngữ cấp cao như "C" dưới sự khai báo tên biến và kiểu dữ liệu trong khai báo được gọi là "khởi tạo" hoặc "tạo cá thể"
• Trong cuộc gọi của FB, không có biện pháp nào để lưu và quản lý dữ liệu cục bộ ngoại trừ
Những lợi ích
Khởi tạo
Cũng giống như các biến, các khối chức năng cũng được "khởi tạo" Chỉ thông qua vùng dữ liệu 'riêng' này, trong đó các giá trị tham số khối cũng như các biến tĩnh được lưu trữ, FB mới trở thành một đơn vị thực thi (phiên bản FB) Sau đó, việc điều khiển một đơn vị xử lý vật lý, chẳng hạn như một ổ đĩa hoặc một nồi hơi, diễn ra với sự trợ giúp của một phiên bản FB, tức là một khối chức năng với vùng dữ liệu được chỉ định Dữ liệu liên quan cho đơn vị quy trình này sau đó được lưu trữ trong vùng dữ liệu này
để phân công các DB mẫu
• Một khối chức năng có thể được sử dụng nhiều lần nhờ vào khái niệm cá thể Ví dụ: nếu một số ổ đĩa cùng loại được điều khiển thì việc này sẽ diễn ra bằng cách sử dụng một số phiên bản của FB Dữ liệu trạng thái của các ổ đĩa riêng lẻ được lưu trữ trong các biến tĩnh của FB
Bạn có thể tạo một phiên bản FB, tức là gán vùng bộ nhớ riêng của nó trong cuộc gọi FB, theo hai cách trong BƯỚC 7:
6.6.1 Hình thành thể hiện của các khối chức năng
TIA-PRO2 - Tài liệu đào tạo về hàm, khối chức năng và đa trường
hợp V13.01.00
6-15
Trang 6• Mô hình đa phiên bản "hàn" một khối chức năng và một vùng dữ liệu phiên bản thành một
• Mô hình đa phiên bản hỗ trợ phong cách lập trình hướng đối tượng
Khi tạo cơ sở dữ liệu phiên bản cấp cao hơn, BƯỚC 7 đảm bảo rằng các vùng dữ liệu cần thiết cho các phiên bản riêng lẻ được thiết lập trong vùng dữ liệu của FB10 cấp cao hơn
• Các phiên bản riêng lẻ không yêu cầu khối dữ liệu riêng mỗi lần Trong hệ thống phân cấp lệnh gọi của các khối chức năng, chỉ có một DB phiên bản được sử dụng trong lệnh gọi khối chức năng "bên ngoài"
Với mục đích này, các phiên bản của khối chức năng được gọi được khai báo với kiểu dữ liệu FB1 hoặc FB2 bằng cách sử dụng các mã định danh ký hiệu (Drill, Motor_1 và Motor_2) Việc này diễn ra trong phần khai báo của khối hàm FB 10 đang gọi trong phần "biến tĩnh" Trong khối chức năng cấp cao hơn, các phiên bản riêng lẻ sau đó được gọi bằng cách sử dụng mã định danh ký hiệu của chúng Tuy nhiên, khối chức năng FB10 cấp cao hơn phải được gọi bằng DB phiên bản riêng của nó (DB10)
Việc sử dụng mô hình nhiều phiên bản có những lợi ích sau:
Ngoài việc khởi tạo các khối chức năng khi bạn chỉ định một DB phiên bản trong lệnh gọi FB, BƯỚC 7 còn hỗ trợ khai báo rõ ràng các phiên bản FB trong khối hàm cấp cao hơn
Những lợi ích
đối tượng (ví dụ FB), cũng có thể được xử lý dưới dạng một đơn vị Người lập trình không phải đảm nhiệm việc quản lý (tạo, đánh địa chỉ) các vùng dữ liệu cá thể riêng lẻ Anh ta chỉ cần cung cấp một DB mẫu cho FB "bên ngoài"
Mô hình nhiều trường hợp
Trong lệnh gọi các phiên bản riêng lẻ sử dụng tên tượng trưng, macro CALL đảm bảo rằng thanh ghi AR2 được đặt ở đầu vùng dữ liệu được gán cho phiên bản để các tham số và biến cục bộ của phiên bản cũng được truy cập trong quá trình xử lý của khối chức năng được gọi
để khoan
FB10
chỉ số khoan
Logic điều khiển động cơ
ví dụ OB_Chu kỳ chương trình
.
cho máy khoan
6.6.2 Cấu trúc của mô hình nhiều trường hợp
TIA-PRO2 - Tài liệu đào tạo về hàm, khối chức năng và đa trường
hợp V13.01.00 6-16
Trang 76.6.3 Bài 2: Lập trình “FB_Fault” (FB17)
tuân thủ theo tiêu chuẩn IEC và có thể tái sử dụng
TIA-PRO2 - Tài liệu đào tạo về hàm, khối chức năng và đa trường
được sử dụng làm thành phần thư viện được bảo vệ bí quyết"
3 Biên dịch khối và sau đó kiểm tra xem khối đã được cấp thuộc tính "Khối có thể
4 Trong OB1, thay thế lệnh gọi "FC_Fault" (FC17) bằng lệnh gọi "FB_Fault" (FB 17) và đồng thời chuyển khối dữ liệu "DB_FB17_Fault" (DB 17) làm khối dữ liệu cá thể
Cho đến nay, việc giám sát thời gian của các chuỗi vận chuyển từ rào cản ánh sáng đến Vịnh 1, 2 hoặc 3 được triển khai trong "FC_Fault" (FC17) Chức năng hẹn giờ IEC "TON" được sử dụng cho việc này do đó được chuyển tới khối dữ liệu DB 104 dưới dạng DB mẫu
Nhiệm vụ
(Cây dự án, nhấp chuột phải vào khối -> Thuộc tính -> Chung -> Thuộc tính)
1 Chèn "FB_Fault" (FB17) mới vào chương trình S7 của bạn và gọi "Hướng dẫn cơ bản TON"
phải làm gì
chức năng
5 Tải tất cả các khối được sửa đổi/mới được tạo vào CPU và kiểm tra xem chương trình như thế nào
Trang 82 Trong hộp thoại xuất hiện, chọn "Đa phiên bản" và đặt tên cho nó.
Như trước đây với khối "FB_Fault" (FB17), "FB_Statistics" (FB18) giờ đây cũng được sửa đổi theo cách đáp ứng các yêu cầu của IEC61131-3 và cùng với đó là thuộc tính khối "Khối có thể được được sử dụng làm thành phần thư viện được bảo vệ bí quyết"
phải làm gì
Tiếp tục trên trang tiếp theo
Đối với điều này, các biến toàn cục "DB_Bay".Counter_Bay1 (2) (3) được sử dụng cho đến nay trong chương trình, được dùng để lưu trữ dữ liệu phiên bản của bộ đếm IEC, phải được thay thế bằng nhiều phiên bản
1 Mở "FB_Statistics" (FB18), nhấp chuột phải vào một trong các bộ đếm IEC và chọn chức năng
Nhiệm vụ
"Thay đổi phiên bản " (xem hình)
Trong "FB_Statistics" (FB18), việc đếm các bộ phận được vận chuyển đến Vịnh 1, 2 hoặc 3 được thực hiện bằng bộ đếm IEC có dữ liệu phiên bản được lưu trữ trong khối dữ liệu chung
6-18 TIA-PRO2 - Tài liệu đào tạo về hàm, khối chức năng và đa trường hợp V13.01.00
1xR 6.6.4 Bài tập 3: Lập trình "FB_Statistics" (FB18) dưới dạng có thể sử dụng lại
Trang 97 Lưu dự án của bạn.
4 Kiểm tra xem "FB_Statistics" (FB18) có được cấp thuộc tính khối "Khối có thể được sử dụng làm thành phần thư viện được bảo vệ bí quyết" hay không
5 Xóa khối dữ liệu "DB_Bay" (DB123) vì nó không còn cần thiết nữa
6 Tải toàn bộ chương trình S7 vào CPU và kiểm tra tất cả các chức năng của chương trình
(Cây dự án, nhấp chuột phải vào khối -> Thuộc tính -> Chung -> Thuộc tính)
3 Sau khi bạn đã tạo nhiều phiên bản cho tất cả các bộ đếm IEC, hãy biên dịch toàn bộ chương trình S7, vì lệnh gọi "FB_Statistics" (FB18) trong OB1 và DB đa phiên bản được chuyển đến FB đó cũng được cập nhật
TIA-PRO2 - Tài liệu đào tạo về hàm, khối chức năng và đa trường
hợp V13.01.00
6-19
Trang 107.3.5.1 Truy cập DT bằng AT-View 7-12 7.3.
Bài 2: Mở rộng “DB_OP” (DB99) và kết nối màn hình TP “Statistic” 7-27
7.3.1 Các kiểu dữ liệu cơ bản 7-6
7.3.8.
7.3.12.1 Sử dụng UDT 7-23
Bài 4: Kiểm tra “FB_Weights” (FB35) bằng PLCSIM 7-31
Mô phỏng thiết bị HMI 7-35
Bài tập bổ sung: Mô phỏng bảng điều khiển cảm ứng 7-36
Ý nghĩa của biến và kiểu dữ liệu 7-4
7.3.5 Dấu thời gian: DATE_AND_TIME (DT) 7-11
MẢNG 7-18
7.2.
Mô phỏng Bộ điều khiển PLC (S7-PLCSIM S7-1200/1500) 7-25
7.3.6 Dấu thời gian: DTL 7-13
7.3.10.1 Ví dụ về truy cập mảng được lập chỉ mục: Lưu trọng lượng bộ phận trong WeightStore 7-20
Tổng quan: Các kiểu dữ liệu trong BƯỚC 7 7-5
7.3.7.1 Truy cập STRING bằng AT-View 7-15
7.3.12 Các kiểu dữ liệu PLC: UDT (Loại dữ liệu do người dùng xác định) 7-22
Bài tập 1: Tạo “UDT_WeightStore” và Cơ sở dữ liệu trọng lượng “DB_Weights” 7-26
7.7.2.
Bài 3: Lập trình “FB_Weights” (FB35) 7-29
7.7.3.
7.3.2 Các kiểu dữ liệu cho bộ đếm thời gian, ngày tháng và thời gian trong ngày 7-7
Truy cập theo lát (Tất cả các ngôn ngữ) 7 -16
7.4.
Bài tập 5: Vận hành “FB_Weights” (FB35) 7-32
7.7.4 Hướng dẫn mở rộng: STRING, DT 7-37
Các biến "Dịch chuyển" (Sao chép) của Kiểu dữ liệu phức tạp 7-24
Thông tin thêm 7-33
7.3.4 Ý nghĩa của các kiểu dữ liệu phức tạp 7-10
Mô tả nhiệm vụ: Quản lý giá trị trọng lượng trong WeightStore và hiển thị giá trị thống kê7-3
địa chỉ phức tạp, V13.01.00
Trang 11TIA-PRO2 - Tài liệu đào tạo về dữ liệu và
địa chỉ phức tạp, V13.01.00 7-2
làm quen với các cách truy cập trực tiếp và gián tiếp khác nhau vào các biến phức tạp và có thể sử dụng chúng
làm quen với việc sử dụng các loại dữ liệu phức tạp và có thể giải thích nó
Trang 12Chức năng chương trình cho đến bây giờ
Chương trình hiện đang được mở rộng để tiết kiệm trọng lượng của các bộ phận vận chuyển Để làm điều này, một kho lưu trữ trọng lượng (WeightStore) được tạo ra trong đó trọng lượng (mô phỏng) của bộ phận vận chuyển
sẽ được lưu ngay khi nó đến khoang tự do
Mở rộng chương trình
Chỉ sau khi tắt "P_Operation" (Q0.1) rồi bật lại, tất cả các giá trị thống kê và trọng lượng mới được ghi
đè bằng 0 và các trình tự vận chuyển bộ phận mới mới có thể được bắt đầu
Các bộ phận vận chuyển được tính cho từng khoang và dữ liệu thống kê - tổng số lượng cũng như việc sử dụng
3 khoang - được xác định Sau khi một bộ phận đã đến một khoang, khoang đó có thể được kích hoạt lại ngay lập tức bằng cách nhấn nút ấn khoang liên quan để có thể vận chuyển bất kỳ số lượng bộ phận nào đến từng khoang Chỉ khi tắt và bật lại "P_Operation" (Q0.1) thì bộ đếm IEC mới được sử dụng để đếm cũng như các giá trị thống kê được đặt lại về 0
Vì dung lượng lưu trữ trọng lượng bị giới hạn (max_Quant), số lượng bộ phận tối đa cũng có thể được vận chuyển Nếu đạt đến số lượng bộ phận tối đa này thì không thể bắt đầu vận chuyển thêm ở khoang chắn ánh sáng (đèn báo sáng tối), ngay cả khi một hoặc nhiều Vịnh 1, 2 hoặc 3 được bật (miễn phí)
Khi "P_Operation" (Q0.1) được bật, các bộ phận được đặt trên băng tải tại khoang chắn ánh sáng, được cân (mô phỏng trọng lượng thông qua "S_SliderPoti1" (IW10) trên bộ mô phỏng) và sau khi nhấn nút ấn khoang, sẽ được vận chuyển đến Vịnh 1, 2 hoặc 3 miễn phí tiếp theo Khi một bộ phận đến khoang, đèn báo sẽ báo hiệu, với đèn nhấp nháy, bộ phận đó có thể được tháo ra Sau đó, nó có đèn sáng liên tục cho biết vịnh vẫn còn người ở Sau khi xác nhận bằng cách sử dụng nút ấn khoang liên quan, đèn báo khoang sẽ tối và khoang lại được giải phóng
Trong màn hình cảm ứng "Thống kê", ngoài các giá trị thống kê cho đến nay, trọng lượng tối thiểu, tối đa và trung bình cho đến thời điểm hiện tại cũng được hiển thị cũng như tổng của tất cả các trọng lượng
7-3
TIA-PRO2 - Tài liệu đào tạo về dữ liệu và
địa chỉ phức tạp, V13.01.00
272 245 310
7.1 Mô tả nhiệm vụ: Quản lý giá trị trọng lượng trong WeightStore và hiển
thị giá trị thống kê
Trang 13Kiểu dữ liệu xác định giá trị nào được dữ liệu chấp nhận và hướng dẫn nào có thể được thực hiện với các giá trị này Kiểu dữ liệu được xác định duy nhất
Ý nghĩa của các biến
Thường rất khó để quyết định cách trình bày dữ liệu và các khả năng sẵn có thường hạn chế sự lựa chọn Một mặt, các thuộc tính của đối tượng mà dữ liệu mô tả phải được phản ánh chính xác Mặt khác, nó cũng phải có khả năng thực hiện các hướng dẫn cần thiết để xử lý dữ liệu
tín hiệu (ví dụ WORD) Cho đến bây giờ, người lập trình có quyền ghi nhớ về định dạng và mục đích của các
vị trí bộ nhớ riêng lẻ Theo đó, việc lập trình dễ xảy ra lỗi
Loại dữ liệu
• các hướng dẫn được phép
Trong lập trình PLC truyền thống, địa chỉ bộ nhớ PLC được truy cập trực tiếp bằng cách chỉ định vùng toán hạng (ví dụ: bộ nhớ M= bit, I=đầu vào, v.v.), độ dài truy cập (ví dụ: B=byte, W=word, v.v.) ) và bằng cách chỉ định địa chỉ byte/(bit) Các vùng bộ nhớ này được xử lý thông qua địa chỉ tuyệt đối có thể được sử dụng trong chương trình cho các mục đích khác nhau, ví dụ như số nguyên (ví dụ DINT), dưới dạng
số dấu phẩy động (ví dụ REAL) hoặc đơn giản là tập hợp các số riêng lẻ
Dữ liệu thể hiện sự trừu tượng của thực tế trong đó các thuộc tính không liên quan của đối tượng bị bỏ qua.Hoạt động PLC "truyền thống"
Phạm vi giá trị có thể
Vùng nhớ Kiểu dữ liệu
Các hướng dẫn được phép Các kiểu dữ liệu trừu tượng từ nền tảng
Bằng cách khai báo một biến, các thuộc
tính sau được xác định:
Kiểu dữ liệu thiết lập:
Các biến thể hiện sự trừu tượng của thực tế và cho
phép bạn lưu và sau đó tiếp tục xử lý các giá trị
7.2 Ý nghĩa của biến và kiểu dữ liệu
Trang 14Các kiểu dữ liệu cơ bản
và trong các khối để khai báo các biến cục bộ (TEMP, STAT) cũng như các tham số (IN, OUT và INOUT)
Các biến của kiểu dữ liệu phức tạp không thể hoàn toàn đầy đủ được xử lý bằng các lệnh cơ bản (chẳng hạn như A, O, L, T, +I) nhưng chỉ các thành phần riêng lẻ của kiểu dữ liệu cơ bản
Kiểu dữ liệu PLC là kiểu dữ liệu do bạn xác định, được sử dụng làm mẫu để khai báo tham số và biến thuộc kiểu dữ liệu phức tạp (ví dụ: biến cấu trúc) UDT được tạo bằng Trình chỉnh sửa khối dữ liệu và chứa cấu trúc dữ liệu được tạo thành từ các kiểu dữ liệu cơ bản và/hoặc phức tạp Khi khai báo một biến theo kiểu dữ liệu UDTx, một biến cấu trúc được tạo có cấu trúc dữ liệu bên trong được xác định bởi UDT UDT có thể được sử dụng
để khai báo các biến trong khối dữ liệu toàn cục và trong các khối để khai báo các biến cục bộ (TEMP, STAT) cũng như các tham số (IN, OUT và INOUT)
Các kiểu dữ liệu PLC
Các kiểu dữ liệu do
người dùng xác định
• Mảng (ARRAY)
• Loại thời gian (DT(DATE_AND_TIME), DTL, LDT(L_DATE_AND_TIME)
• Kiểu dữ liệu PLC / UDT (Loại dữ liệu do người dùng xác định )
• Chuỗi ký tự (STRING), chuỗi ký tự Unicode (WSTRING)
• Các kiểu dữ liệu bit (BOOL, BYTE, WORD, DWORD,LWORD, CHAR, WCHAR)
địa chỉ phức tạp, V13.01.00
Trang 15Các biến có phần mở rộng U đại diện cho một số nguyên không dấu.
trong Unicode
Kiểu dữ liệu: SINT, USINT
BOOL, BYTE, WORD, DWORD, CHAR, WCHAR
Các biến có phần mở rộng S biểu thị một số nguyên có độ dài 8 bit
Phần mở rộng của INT, DINT, REAL, WORD
Các biến có phần mở rộng L biểu thị một số có độ dài 64 bit thuộc kiểu dữ liệu
Các kiểu dữ liệu: LWORD, LINT, ULINT, LREAL
Các biến của các kiểu dữ liệu này đại diện cho các số mà các phép tính số học có liên quan có thể được thực hiện
L - Dài
7-6 TIA-PRO2 - Tài liệu đào tạo về dữ liệu và địa chỉ phức tạp, V13.01.00
7.3.1 Các kiểu dữ liệu cơ bản
32CHAR
MD80
USINT
16LWORD
Trang 16Một biến có kiểu dữ liệu DATE được lưu trữ trong một từ dưới dạng số nguyên không dấu Nội dung của biến biểu thị số ngày kể từ ngày 01.01.1990 (ví dụ: D#2003-
độ phân giải cao hơn có thể được lưu
nano giây kể từ đầu ngày
Một biến có kiểu dữ liệu TIME (thời lượng tính bằng [ms]) chiếm một từ kép Biến này được sử dụng,
ví dụ, để xác định giá trị thời gian trong các chức năng hẹn giờ của IEC Nội dung của biến được hiểu
là số DINT tính bằng mili giây và có thể dương hoặc âm (ví dụ: T#1s=L#1 000, T#24d20h31m23s647ms
DATE_AND_LTIME (LDT)
LTOD#10:20:30.400_365_215LTIME
Độ dài (tính bằng bit)
LT#11350d20h25m14s830ms652µs315nsTHỜI GIAN
DT#1984-01-21-13-45-56-567-3
S5TIME
TIME_OF_DAY (TOD)NGÀY
7.3.2 Các kiểu dữ liệu cho Bộ hẹn giờ, Ngày và Giờ trong ngày
TIA-PRO2 - Tài liệu đào tạo về dữ liệu và
Trang 17DTL
Ưu điểm: các giá trị riêng lẻ (ngày, giờ, v.v.) dễ đọc hơn
Kiểu dữ liệu DATE_AND_TIME biểu thị một thời điểm bao gồm ngày và thời gian trong ngày Thay vì DATE_AND_TIME, bạn cũng có thể sử dụng chữ viết tắt DT
Kiểu dữ liệu DTL có độ dài 12 byte và giống như LDT, lưu trữ thông tin về ngày và giờ chính xác đến từng nano giây kể từ ngày 1.1.1970, chỉ trong cấu trúc được xác định trước
Trang 18Các biến có kiểu dữ liệu phức tạp chỉ có thể được khai báo trong khối dữ liệu toàn cục và dưới dạng tham số hoặc biến cục bộ của khối logic.
Chúng cho phép bạn tạo các kiểu dữ liệu phù hợp với vấn đề của mình mà bạn có thể cấu trúc số lượng lớn dữ liệu và xử lý nó một cách tượng trưng
Các kiểu dữ liệu phức tạp được xác định trước, theo đó độ dài của các kiểu dữ liệu ARRAY (trường), STRUCT (cấu trúc), STRING (chuỗi ký tự) và WSTRING (chuỗi ký tự trong unicode) do người dùng xác định
Các kiểu dữ liệu phức tạp (mảng và cấu trúc) bao gồm các nhóm kiểu dữ liệu cơ bản hoặc phức tạp
Các kiểu dữ liệu phức tạp
Các kiểu dữ liệu do người dùng xác định đại diện cho các cấu trúc tự xác định Cấu trúc này được lưu trữ trong các khối UDT (UDT1 đến UDT65535) và có thể được sử dụng làm "mẫu" trong kiểu dữ liệu của biến khác Bạn có thể tiết kiệm thời gian gõ khi nhập khối dữ liệu nếu bạn cần cùng một cấu trúc nhiều lần
Kiểu dữ liệu do người dùng xác định (UDT)
TIA-PRO2 - Tài liệu đào tạo về dữ liệu và
ký tự +2) `SIEMENS'
(Trường, Nhóm các thành phần có cùng kiểu dữ liệu)
ký tự + 2) WSTRING#`Xin chào SITRAIN'
đã xác định người dùng
đã xác định người dùng
UDT dưới dạng khối
(Cấu trúc, Nhóm thành phần có kiểu dữ liệu khác nhau)
254 ký tự)
8 * (số `Đây là một chuỗi'
Hiện tại: THỰC SỰMẢNG
Giá trị đo được: ARRAY[1 20] của INT
ký tự ở dạng unicode)7.3.3 Các kiểu dữ liệu phức tạp
Trang 19Cho phép:
ngoài
Động cơ:="Hall_1".M[5]
GỌI #Bộ điều khiển
trong động cơ UDT1
.
out
stat Kiểm soát FB1
trong ổ UDT1
7-10 TIA-PRO2 - Tài liệu đào tạo về dữ liệu và địa chỉ phức tạp, V13.01.00
Cấu trúc dữ liệu "tốt hơn":
Dạng dữ liệu nhỏ gọn truyền trong lệnh gọi khối:
Bằng cách này, vô số đơn vị thông tin cơ bản có thể được chuyển giao giữa lệnh gọi và khối được gọi một cách tinh tế và nhỏ gọn
Kết quả xử lý cũng được trả về dưới dạng tham số cho khối gọi
Các kiểu dữ liệu phức tạp rất hữu ích cho việc tổ chức dữ liệu phức tạp Bằng cách này, người lập trình có thể xác định cấu trúc dữ liệu theo nhiệm vụ của mình Anh ta có thể kết hợp các đơn vị thông tin cơ bản, có liên quan đến logic thành một "đơn vị" mới có tên riêng
Các kiểu dữ liệu phức tạp
Các kiểu dữ liệu phức tạp (mảng và cấu trúc) là kết quả của việc nhóm các kiểu dữ liệu cơ bản hoặc phức tạp
Đặc biệt, dữ liệu phức tạp có thể được truyền trong lệnh gọi khối dưới dạng một đơn vị Nghĩa là, trong một tham
số cho khối được gọi
Kiểu truyền dữ liệu này giúp cho việc lập trình có cấu trúc trở nên khả thi và đảm bảo khả năng sử dụng lại ở mức
độ cao của phần mềm được tạo một lần
Toàn bộ nhiệm vụ được tự động hóa được chia thành các khối riêng lẻ Trong phần câu lệnh (mã) của khối được gọi, không thực hiện truy cập vào các toán hạng chung, chẳng hạn như các bit bộ nhớ hoặc các biến trong DB toàn cục Việc xử lý thông tin được thực hiện độc quyền với các tham số trong đó dữ liệu quy trình liên quan được truyền
Lập trình có cấu trúc
Khả năng sử dụng lại phần mềm
Một ví dụ điển hình cho cấu trúc là bản ghi dữ liệu (tập dữ liệu) cho một ổ đĩa Ổ đĩa được mô tả dưới dạng bản ghi các thuộc tính (thuộc tính, trạng thái), chẳng hạn như #Set_speed, #Actual_speed, #Enable và #Disturbance Một
số thuộc tính này có thể lần lượt là cấu trúc
Phù hợp với công việc
Làm cho việc lập trình có cấu trúc trở nên khả thi
Chỉ chặn "giao tiếp" thông qua danh sách tham số
Với kiểu dữ liệu "đúng"
Phần mềm có thể tái sử dụng
7.3.4 Ý nghĩa của các kiểu dữ liệu phức tạp
.
Có thể truyền nhiều mục dữ liệu trong một tham số
.
.
5
Trang 20Bạn không cần phải chỉ định mili giây.
DATE_AND_TIME hoặc DT là từ khóa và do đó cũng có thể được viết bằng chữ thường
Ghi chú
• DT#năm-tháng-ngày-giờ:phút:giây.milli giâyBài tập trước phải thuộc loại:
Kiểu dữ liệu DATE_AND_TIME biểu thị một thời điểm, bao gồm ngày và giờ trong ngày Thay vì DATE_AND_TIME bạn cũng có thể sử dụng DT viết tắt
Ngày trong tuần (1 7)
Byte n+6
(00 59) 5 = thứ năm
(tất cả các giá trị được mã hóa BCD)
Mili giây Kết cấu:
7 = thứ bảy
Tháng
Byte n+1 Byte n+3
Mã định danh ngày trong tuần:
Trang 21Do các thành phần của dấu thời gian không thể được đánh địa chỉ một cách tượng trưng nên các thành phần này chỉ có thể được đọc bằng phương pháp đánh địa chỉ gián tiếp hoặc bằng cách tạo chế độ xem AT Nếu cấu trúc của khung nhìn AT được tạo chính xác theo dấu thời gian thì các vùng dữ liệu của dấu thời gian có thể được truy cập một cách tượng trưng bằng cách sử dụng các thành phần cấu trúc của khung nhìn AT.
Biến có thể được xếp chồng trong các khối logic có quyền truy cập tiêu chuẩn hoặc trong các khối logic có quyền truy cập được tối ưu hóa cho các biến bằng cách sử dụng cài đặt lưu giữ "Đặt trong IDB".
Cấu trúc dữ liệu của dấu thời gian thuộc kiểu dữ liệu DATE AND TIME bao gồm 8 byte Các giá trị cho năm, tháng, ngày, giờ, phút, giây, mili giây và mã định danh ngày trong tuần được lưu trữ ở định dạng BCD
Quy tắc:
Nếu biến khung nhìn AT thuộc loại CẤU TRÚC, thì cấu trúc vẫn phải được tạo
Khai báo AT View
Các kiểu dữ liệu VARIANT và INSTANCE không thể chồng lên nhau
Độ dài dữ liệu của biến xếp chồng phải bằng hoặc nhỏ hơn độ dài dữ liệu của biến xếp chồng
Chế độ xem AT không phải là tham số bổ sung hay biến bổ sung Theo đó, chế độ xem AT đối với một tham số cũng không xuất hiện trong giao diện của nó trong quá trình gọi khối Chế độ xem AT đối với biến tạm thời hoặc biến tĩnh cũng không chiếm bất kỳ không gian bộ nhớ nào trên ngăn xếp dữ liệu cục bộ hoặc trong khối dữ liệu phiên bản
7.3.5.1 Truy cập DT bằng AT-View
2 Tạo biến view AT kiểu dữ liệu AT (xác nhận bằng phím Return),
Các thẻ PLC có cấu trúc được khai báo là tham số trong giao diện không thể được xếp chồng lên nhau
Các khối từ thư viện được khai báo là tham số trong giao diện không thể được xếp chồng lên nhau
1 Tạo các biến được xếp chồng lên nhau,
Sử dụng Chế độ xem AT để đọc Dấu thời gian của Loại dữ liệu NGÀY VÀ GIỜ (DT)
TIA-PRO2 - Tài liệu đào tạo về dữ liệu và
địa chỉ phức tạp, V13.01.00 7-12
Trang 22Kiểu dữ liệu DTL (Ngày và Giờ) đại diện cho một thời điểm, bao gồm ngày, giờ trong ngày và mã định danh ngày trong tuần.
Hơn nữa, các giá trị của các phần tử cấu trúc riêng lẻ được mã hóa theo kiểu dữ liệu số học để chúng có thể được chương trình xử lý thêm bằng "Hàm toán học" có sẵn
Không giống như dấu thời gian của kiểu dữ liệu DT, dấu thời gian của kiểu dữ liệu DTL được tạo ra dưới dạng cấu trúc mà các thành phần riêng lẻ có thể được đánh địa chỉ một cách tượng trưng
Tổng quan
7.3.6 Dấu thời gian: DTL
TIA-PRO2 - Tài liệu đào tạo về dữ liệu và
Trang 23Cũng giống như các biến ARRAY hoặc STRUCT, các biến thuộc kiểu dữ liệu STRING có thể được chuyển đến các tham số khối có cùng kiểu dữ liệu, tức là có cùng độ dài STRING.
Các hướng dẫn tiêu chuẩn yêu cầu hai phần thông tin này để xử lý các biến STRING
Tổng quan
Khi thiết lập biến, bạn nhập độ dài tối đa của nó vào byte đầu tiên của biến theo khai báo biến Tương tự, số ký tự ASCII được lưu trữ thực tế theo giá trị bắt đầu được nhập vào byte thứ hai
Chỉ định mức tối đa số lượng
ký tự có thể lưu trữ Byte n+1
chiều dài tối đa= 8
B#16#00 Byte n1)
Byte n+9
B#16#00 Byte n+8
B#16#00 Byte n+3
B#16#00
Chỉ định số lượng ký tự hợp lệ thực tế được lưu trữ
Byte n+7 Byte n+67.3.7 Chuỗi ký tự: STRING
TIA-PRO2 - Tài liệu đào tạo về dữ liệu và
địa chỉ phức tạp, V13.01.00 7-14
Trang 24AT Xem các thông số và biến
7.3.7.1 Truy cập STRING bằng AT-View
Khởi tạo FirstWord bằng 0 :
tối đa chiều dài=254 hiện tại.chiều dài =0
chiều dài dòng chảy
xuất hiện dưới dạng tham số chính thức trong cuộc gọi
Trang 25Việc truy cập lát cắt cho phép truy cập bit, byte, từ và từ kép vào các biến có kích thước lớn hơn tương ứng.
Truy cập lát cắt
Ví dụ, với quyền truy cập bit, các bit riêng lẻ của một biến số nguyên có thể được quét hoặc byte thấp và byte cao
có thể được tải ngay cả khi không tồn tại tên tượng trưng cho các phần tử biến này
L "My_Var".%W3
X 7
Ví dụ:
từng chữ:
B0 W3
7.3.8 Truy cập theo lát (Tất cả ngôn ngữ)
7-16 TIA-PRO2 - Tài liệu đào tạo về dữ liệu và địa chỉ phức tạp, V13.01.00
Trang 26Ví dụ: một bit riêng lẻ của biến Số nguyên không thể được đánh địa chỉ một cách tượng trưng và chỉ có thể được quét bằng phương pháp đánh địa chỉ gián tiếp hoặc bằng cách truy cập lát cắt.
Trong ví dụ được hiển thị, bit dấu (bit số 15) của biến khối dữ liệu Weight được quét để kiểm tra xem giá trị của biến có dương hay không và có hợp lý hay không (giá trị trọng số âm không thể tồn tại và do đó sẽ không tồn tại) có vẻ hợp lý)
Ví dụ: Quét bit dấu của biến số nguyên
Trang 27Ghi chú
mã yêu cầu
• Kiểu dữ liệu của phần tử mảng
Đối với một khối có thuộc tính khối "Truy cập khối được tối ưu hóa", một bit yêu cầu không gian bộ nhớ
là 1 byte Điều này cũng đúng nếu bạn sử dụng ARRAY <Datatype> Do đó, ví dụ: ARRAY [0 1] của BOOL yêu cầu 2 byte trong một khối được tối ưu hóa
Giới hạn mảng tối đa phụ thuộc vào các yếu tố sau:
• Kích thước tối đa của khối dữ liệu của CPU (bạn sẽ tìm thấy thêm thông tin trong phần tương ứng
• Dự trữ bộ nhớ (chỉ trong các khối có quyền truy cập được tối ưu hóa)
Kiểu dữ liệu của các thành phần (trong một mảng) có thể là chuỗi bit, số nguyên, số dấu phẩy động, bộ đếm thời gian, chuỗi ký tự, cấu trúc hoặc kiểu dữ liệu PLC (UDT) Các loại tham số hoặc FB (mô hình nhiều phiên bản) không được phép
Kiểu dữ liệu ARRAY biểu thị một trường có số lượng thành phần (phần tử) cố định của cùng một kiểu dữ liệu Một trường (=ARRAY) có thể có tối đa sáu thứ nguyên (số lượng chỉ mục)
• Toàn bộ chiều dài của Mảng có sẵn trong một khối dữ liệu Trong khối chương trình (OB, FB hoặc FC), độ dài có thể giảm tùy theo dung lượng bộ nhớ mà chương trình
thủ công)
TIA-PRO2 - Tài liệu đào tạo về dữ liệu và
địa chỉ phức tạp, V13.01.00 7-18
Nhóm các thành phần có cùng kiểu dữ liệu
Truy cập mảng với địa chỉ trực tiếp
MẢNG:
7.3.9 MẢNG
Trang 28Truy cập mảng được lập chỉ mục với lệnh FBD "MOVE" và lệnh STL "L, T"
Lệnh báo hiệu lỗi với Trạng thái '0' ở đầu ra ENO khi phần tử mảng được chỉ định qua INDEX đầu vào không tồn tại trong mảng được chỉ định ở đầu ra MEMBER
Lệnh báo hiệu lỗi với Trạng thái '0' ở đầu ra ENO khi phần tử mảng được chỉ định qua INDEX đầu vào không tồn tại trong mảng được chỉ định ở đầu vào MEMBER
Các kiểu dữ liệu của mảng được chỉ định ở đầu ra MEMBER và của toán hạng ở đầu vào VALUE phải khớp với kiểu dữ liệu của lệnh "FieldWrite"
Các kiểu dữ liệu của mảng được chỉ định ở đầu vào MEMBER và biến được chỉ định ở đầu ra VALUE phải khớp với kiểu dữ liệu của lệnh "FieldRead"
Lệnh "FieldWrite" ghi giá trị của toán hạng được truyền ở VALUE đầu vào vào mảng được truyền ở đầu
ra MEMBER Giá trị được ghi trong phần tử mảng có số được chỉ định thông qua INDEX đầu vào (mặc dù trình chỉnh sửa khối luôn hiển thị phần tử mảng đầu tiên #WeightStore.Part_Weight[1] ở đầu
ra MEMBER)
Lệnh "FieldRead" đọc giá trị của một phần tử mảng của mảng được truyền ở đầu vào MEMBER và ghi giá trị này vào biến được chỉ định ở đầu ra VALUE Giá trị của phần tử mảng được đọc có số được chỉ định thông qua INDEX đầu vào
Giống như các lệnh "FieldRead" và "FieldWrite", các truy cập mảng được lập chỉ mục, đọc và ghi có thể được lập trình trong FBD bằng lệnh MOVE cũng như trong STL với các lệnh L và T (Tải và Truyền qua bộ tích lũy mô phỏng ACCU1)
Trang 29Ví dụ: Tiết kiệm trọng lượng một phần trong kho cân
Lệnh "FieldWrite" ghi giá trị #Weight vào biến mảng #WeightStore.PartWeight[i]
vào chính xác phần tử mảng có số được chỉ định thông qua #part_no
Trong ví dụ được hiển thị, giá trị của biến #WeightStore.curr_Quant được tăng thêm 1 mỗi khi một bộ phận đến, nghĩa là với mỗi lần thực thi khối Như vậy, giá trị của biến này tương ứng chính xác với số phần tử của biến mảng #WeightStore.PartWeight[i], trong đó giá
trị hiện tại của biến #Weight sẽ được lưu lại
(mặc dù trình chỉnh sửa khối luôn hiển thị phần tử mảng đầu tiên #WeightStore.PartWeight[1] ở đầu
ra MEMBER)
7.3.10.1 Ví dụ về truy cập mảng được lập chỉ mục:
Lưu trọng lượng phần trong WeightStore
TIA-PRO2 - Tài liệu đào tạo về dữ liệu và
địa chỉ phức tạp, V13.01.00 7-20
THANH NIÊN
STL
Giao diện
giống hệt nhau
Trang 30Tổng quan
Các thành phần cấu trúc riêng lẻ có thể được gán trước các giá trị trong phần khai báo (cột: Giá trị bắt đầu) Các tham số hoặc biến sau đây không thể được khởi tạo:
Kiểu dữ liệu CẤU TRÚC (Cấu trúc) đại diện cho một số thành phần cụ thể, mỗi thành phần có thể có các kiểu
dữ liệu khác nhau Một cấu trúc có thể có tới tám cấp độ lồng nhau
Một cấu trúc có thể được khai báo trong phần khai báo của khối logic, trong DB toàn cục hoặc trong kiểu
dữ liệu PLC (UDT)
• các tham số đầu vào, đầu ra và vào/ra cho FC • tham
số vào/ra trong FB
• dữ liệu cục bộ trong OB, FB và FC
Kiểu dữ liệu của các thành phần trong cấu trúc có thể là chuỗi bit, số nguyên, số dấu phẩy động, bộ định thời, chuỗi ký tự, cấu trúc hoặc kiểu dữ liệu PLC (UDT) Các loại tham số hoặc FB (mô hình nhiều phiên bản) không được phép
Kiểu dữ liệu của giá trị khởi tạo phải tương thích với kiểu dữ liệu của thành phần
Khởi tạo STRUCT
Truy cập cấu trúc với địa chỉ trực tiếp
7.3.11 Cấu trúc: CẤU TRÚC
Trang 31Tổng quan
Bằng cách sử dụng các kiểu dữ liệu hướng ứng dụng, một nhiệm vụ cần giải quyết có thể được tổ chức rõ ràng hơn
Khi cấu trúc dữ liệu lặp lại thường xuyên trong chương trình người dùng để khai báo các biến và tham số hoặc khi cấu trúc dữ liệu được xác định bằng tên riêng của nó thì BƯỚC 7 cho phép các kiểu dữ liệu PLC do người dùng xác định (do người dùng xác định) loại dữ liệu hoặc Loại dữ liệu do người dùng xác định, UDT) sẽ được tạo (như typedef trong ngôn ngữ cấp cao "C")
Sau đó, người dùng cũng như nhà sản xuất có thể thiết kế và triển khai các loại dữ liệu phù hợp với vấn đề của họ
Bằng cách tạo kiểu dữ liệu PLC (UDT), một "mẫu" hợp lệ toàn cầu sẽ được tạo, sau đó có thể được sử dụng bao nhiêu lần tùy thích để khai báo các biến và tham số mới hoặc để tạo DB toàn cầu
Tạo các kiểu dữ liệu PLC (UDT)
TIA-PRO2 - Tài liệu đào tạo về dữ liệu và
địa chỉ phức tạp, V13.01.00 7-22
Truy cập cấu trúc
Truy cập cấu trúc với địa chỉ trực tiếp
với địa chỉ trực tiếp
7.3.12 Các loại dữ liệu PLC: UDT (Loại dữ liệu do người dùng xác định)
Trang 32Giống như Cấu trúc, bạn cũng có thể xác định các giá trị mặc định trong kiểu dữ liệu PLC Nếu kiểu dữ liệu PLC sau đó được sử dụng để khai báo một biến, thì các giá trị mặc định này sẽ được sử dụng làm giá trị bắt đầu của biến này (không dành cho các tham số trong FC, không dành cho các tham số vào/ra của FB và không dành cho các biến tạm thời).
Các kiểu dữ liệu PLC được gán trước giống như Cấu trúc và sau đó được sử dụng trong chương trình người dùng Cấu trúc của kiểu dữ liệu PLC giống như cấu trúc của Cấu trúc Với việc tạo kiểu dữ liệu PLC, việc khai báo các biến có thể được chương trình người dùng xử lý vẫn chưa diễn ra Kiểu dữ liệu PLC là một "mẫu"
mà bạn có thể sử dụng bao nhiêu lần tùy thích để khai báo các biến mới
Giá trị ban đầu (bắt đầu) cho UDT
Trong ví dụ được hiển thị, kiểu dữ liệu PLC "UDT_Motor" bao gồm các thành phần SET_Speed, ACT_Speed, kích hoạt, lỗi và CosPi
Trong khối dữ liệu "DB_Test" (DB1), UDT được sử dụng để khai báo biến khối dữ liệu Motor; trong “FC_Drive” (FC120) để khai báo tham số INOUT Motor
Khai báo tham số theo UDT
Khai báo biến theo UDT
Trang 33Sao chép các biến của kiểu dữ liệu phức tạp
Trong ví dụ hiển thị, 5 phần tử của Mảng nguồn "DB_Weight".WeightStorte2, bắt đầu từ phần tử thứ 4, được sao chép vào Mảng đích "DB_Weight_opt."WeightStorte3, bắt đầu từ phần tử thứ 2
Lệnh MOVE sao chép các biến của bất kỳ kiểu dữ liệu nào (ngay cả các biến phức tạp được khai báo theo kiểu dữ liệu PLC) Nguồn (IN) và đích (OUT) phải có cùng loại dữ liệu, tuy nhiên có thể được đặt trong các vùng dữ liệu được tối ưu hóa cũng như không được tối ưu hóa
• MOVE_BLK (không hiển thị trong hình)
yếu tố Các kiểu dữ liệu (sơ cấp hoặc khai báo theo kiểu dữ liệu PLC) của phần tử Mảng của biến mảng tại <SRC> và <DEST> phải khớp nhau Cả nguồn và đích đều có thể được đặt trong vùng dữ liệu được tối ưu hóa hoặc không được tối ưu hóa
S7-1500 S7-1200 S7-300/400/WinAC S7-1500 S7-1200 S7-300/400/WinAC
Các biến "Dịch chuyển" (Sao chép) của Kiểu dữ liệu phức tạp 7.4.
Trang 347.5 Mô phỏng Bộ điều khiển PLC (S7-PLCSIM S7-1200/1500)
TIA-PRO2 - Tài liệu đào tạo về dữ liệu và
2 Trong cột "Bits", để chuyển đổi giá trị của các bit riêng lẻ của liên kết
nhất quán trong các nhóm trong đó tất cả các biến được kích hoạt
Trong phần mềm PLCSIM, chương trình đã tải sẽ được xử lý nhờ đó bạn có thể theo dõi và thay đổi các biến riêng lẻ
"Sửa đổi không phải đầu vào" phải được kích hoạt (bật) bằng nút
Bộ điều khiển PLC có thể được mô phỏng mà không cần phần cứng thực bằng PLCSIM
nút "Tải",
Để có thể thay đổi đầu ra, bit bộ nhớ hoặc biến trong khối dữ liệu, hàm
1 Chọn (tô sáng) Bộ điều khiển PLC,
1 Với sự trợ giúp của nút
.Ngoài ra, bạn có thể theo dõi giá trị thực tế của các biến trong cột “Giá trị giám sát/sửa đổi”
Làm thế nào để tiến hành:
Vì không có đầu vào thực nào tồn tại nên chúng phải được kiểm soát trong cái gọi là bảng SIM Có ba khả năng cho việc này:
,
3 Trong hộp thoại "Tải xuống mở rộng về thiết bị" thiết lập giao diện (giao diện PG/PC: PLCSIM
S7-được viết với các giá trị từ cột "Sửa đổi nhất quán",
2 Bắt đầu mô phỏng bằng biểu tượng
Trang 35và Cơ sở dữ liệu trọng lượng "DB_Weights"
7.6 Bài tập 1: Tạo “UDT_WeightStore”
TIA-PRO2 - Tài liệu đào tạo về dữ liệu và
địa chỉ phức tạp, V13.01.00 7-26
1 Tạo kiểu dữ liệu PLC mới "UDT_WeightStore" như trong hình Đảm bảo rằng
2 Tạo mới “DB_Weights” (DB123) và trong đó khai báo các biến cấu trúc hoặc lưu trữ trọng lượng WeightStore_A, WeightStore_B và WeightStore_C theo “UDT_WeightStore” (xem hình)
Trang 36"Thống kê"
7.6.1 Bài tập 2: Mở rộng “DB_OP” (DB99) và kết nối màn hình TP
TIA-PRO2 - Tài liệu đào tạo về dữ liệu và
1 Mở rộng "DB_OP" (DB99) bằng cách thêm các biến max_Weight, av_Weight, min_Weight và
Ngoài các giá trị thống kê đã được hiển thị liên quan đến số lượng bộ phận và trọng lượng hiện tại, giá trị tối đa, tối thiểu và trung bình của trọng lượng đã lưu cho đến nay cũng như tổng của chúng giờ đây cũng sẽ được hiển thị trên màn hình bảng cảm ứng "Thống kê"
Weight_Sum với các kiểu dữ liệu liên quan như trong hình
phải làm gì
Nhiệm vụ
Tiếp tục trên trang tiếp theo
Trang 373 Tải cấu hình đã sửa đổi vào bảng cảm ứng và trong cửa sổ Thanh tra, hãy kiểm tra xem quá trình biên dịch và tải có thể được thực hiện mà không gặp lỗi hay không.
Trang 38Thông số đầu vào (IN)xem hình):
Tiếp tục trên trang tiếp theo
Với cạnh tăng ở đầu vào này, khối sẽ ghi đè tất cả các giá trị của #WeightStore bằng 0 (ngoại trừ max_Quant)
#Hoạt động (BOOL)
•
Khối mới "FB_Weights" (FB35) sẽ được lập trình Nó nhằm mục đích lưu trữ trọng lượng của các bộ phận vận chuyển trong kho chứa trọng lượng và xác định giá trị tối đa, trung bình và tối thiểu của các trọng lượng đã lưu cũng như tổng của chúng
Với Tín hiệu '1' ở đầu vào này, khối tăng WeightStore.curr_Quant lên 1 và ghi giá trị này vào tham số
#Weight trong WeightStore.PartWeight[part_no] Vì điều này chỉ xảy ra một lần cho mỗi phần nên một cạnh phải được chuyển qua đây
#new_Trọng lượng (BOOL)
Nhiệm vụ
1 Chèn khối "FB_Weights" (FB35) mới và cung cấp cho nó các tham số sau (đồng thời
Trọng lượng hiện được đặt trên trình mô phỏng
#Trọng lượng (INT)
phải làm gì
#Cân nặng < #phút_Cân nặng ? WeightStore.PartWeight[part_no] := #Weight
#Weight_Sum := #Weight_Sum + #Weight
#Cân nặng > #cân nặng tối đa ?
#av_Weight := #Weight_Sum / #part_no
7-29 TIA-PRO2 - Tài liệu đào tạo về dữ liệu và
địa chỉ phức tạp, V13.01.00
Trang 39#max_Quant (INT):
#av_Trọng lượng (THỰC):
Kho lưu trữ trọng lượng trong đó trọng lượng của bộ phận được lưu
Trọng lượng phần lớn nhất được lưu trữ
Cửa hàng trọng lượng ("UDT_WeightStore")
Thông số đầu ra (OUT)
Giá trị trung bình của trọng lượng tất cả các bộ phận
Số lượng trọng lượng bộ phận hiện tại = WeightStore.curr_Quant
2 Viết chương trình cho "FB_Weights" (FB35) và thực hiện như trong sơ đồ cấu trúc
#Trọng lượng_Tổng (INT):
Tín hiệu '1', khi WeightStore.curr_Quant >= WeightStore.max_Quant
Đánh giá cạnh tích cực ở đầu vào #Hoạt động để khởi tạo việc lưu trữ trọng lượng
#aux_Operation_on (BOOL)
#đầy đủ (BOOL):
Trọng lượng phần nhỏ nhất được lưu trữ
#max_Trọng lượng (INT):
•
Đầu ra của giá trị từ WeightStore.max_Quant
Thông số vào/ra (INOUT)Tổng của tất cả trọng lượng bộ phận được lưu trữ
TIA-PRO2 - Tài liệu đào tạo về dữ liệu và
địa chỉ phức tạp, V13.01.00 7-30
Trang 405 Trong bảng nhập các biến “P_Operation” (để chuyển đổi chế độ vận hành),
2 Trong OB1, lập trình lệnh gọi "FB_Weight(s)" (FB35) và gán các tham số cho nó bằng cách sử dụng các toán hạng thực tế được hiển thị trong hình
phần mới được vận chuyển bit M200.0 "Sim_New_Part" (bit bộ nhớ được tự động đặt lại về 0 trong chương trình và giá trị TRUE chỉ trong một chu kỳ)
4 Trong PLCSIM, mở bảng SIM hoặc tạo bảng mới
9 Trong cột "Bits", kích hoạt bit "P_Operation" cho Operation = ON và để mô phỏng một
,
6 Mở khối dữ liệu “DB_Weights” và “DB_OP” và theo dõi (quan sát) WeightStore_BKiểm tra chức năng của Khối "FB_Weight(s)" bằng PLCSIM
10 Kiểm tra xem các giá trị của "DB_Weights".WeightStore_B có đúng không
"S_SliderPoti1" (để cài đặt trọng lượng), "DB_Conveyor".weight (để kiểm tra trọng lượng) và M200.0 ("Sim_New_Part" làm bit mô phỏng cho "Phần mới đã được vận chuyển")
1 Mở rộng "DB_Conveyor" (DB100) bằng cách thêm biến mới WeightStore_full (BOOL)
7 Trong PLCSIM, đặt cho biến S_SliderPoti1 một giá trị từ 0 đến 27648 số thập phân (các giá trị tương ứng với các giá trị của biến "DB_Conveyor".weight" 0 đến 500 số thập phân),
Phải làm gì:
của khối dữ liệu “DB_Weights” cũng như các giá trị được tính toán trong khối dữ liệu “DB_OP”
giao diện trong hộp thoại
3 Bắt đầu mô phỏng CPU và chỉ định "PLCSIM S71200/S71500" cho PG/PC
để
8 Kích hoạt (Bật) chức năng "Sửa đổi đầu vào không phải đầu vào" bằng cách sử dụng nút thay đổi đầu ra, bit bộ nhớ và biến của khối dữ liệu
7.6.3 Bài 4: Kiểm tra “FB_Weights” (FB35) bằng PLCSIM
TIA-PRO2 - Tài liệu đào tạo về dữ liệu và