Tự động hóa – Cách Dùng https://cachdung.com Tiện ích cho cuộc sống Sat, 30 Jul 2022 03:30:20 +0000 vi hourly 1 https://wordpress.org/?v=5.9.9 https://cachdung.com/wp-content/uploads/2020/04/cropped-logofv-32x32.png Tự động hóa – Cách Dùng https://cachdung.com 32 32 Ngành cơ điện tử ra đời như thế nào? https://cachdung.com/blog/nganh-co-dien-tu-ra-doi-nhu-the-nao.html Sat, 30 Jul 2022 03:30:20 +0000 https://cachdung.com/?p=6171 Cơ điện tử là thuật ngữ chỉ lĩnh vực khoa học công nghệ giao nhau giữa cơ khí với kỹ thuật điện-điện tử, điều khiển hệ thống và công nghệ thông tin. Từ cơ điện tử, tiếng Anh “Mediationics” được viết tắt của từ ghép giữa Mechanics và Electronics, được người Nhật sử đụng đầu tiên [...]

The post Ngành cơ điện tử ra đời như thế nào? appeared first on Cách Dùng.

]]>
Cơ điện tử là thuật ngữ chỉ lĩnh vực khoa học công nghệ giao nhau giữa cơ khí với kỹ thuật điện-điện tử, điều khiển hệ thống và công nghệ thông tin.

Từ cơ điện tử, tiếng Anh “Mediationics” được viết tắt của từ ghép giữa Mechanics và Electronics, được người Nhật sử đụng đầu tiên vào năm 1975 [1] trong việc điều khiển động cơ điện bằng máy tính. Thuật ngữ này sau đó trở nên phổ thông ở Nhật và nhanh chóng được nhiều nước trên thế giới sử dụng khi các linh kiện điện tử và tiếp theo là máy tính được sử dụng ngày càng nhiều trong điều khiển thiết bị, đặc biệt trong các hệ thống sản xuất.

Tác nhân chính dẫn đến việc cơ điện tử thành thuật ngữ phổ thông là khi nhu cầu về một bộ môn đào tạo riêng biệt, độc lập bất ngờ được hình thành dựa trên khả năng sử dụng năng lực máy tính và thiết bị điều khiển số không quá đắt, lưu hành tương đối sẩn trong các viện nghiên cứu và các trường đại học. Sự phát triển linh kiện thiết bị điện tử sô’ và khoa học máy tính trong những năm 80 đẩy nhanh đáng kể khả năng áp đụng chúng trong những dự án công nghệ và sản xuất. Trong khoảng thời gian này các viện nghiên cứu và các nhà công nghiệp đã nhận thức ra sự cần thiết đào tạo lại cho các kĩ sư cơ khí về các vấn đề của ngành đa công nghệ này. Đã gần 25 năm trôi qua kể từ khi thuật ngữ cơ điện tử được xem xét như là sự tích hợp của kĩ thuật cơ khí, điện và điện lử, thì hiện nay, thuật ngữ này vẫn là một khái niệm tiến triển không ngừng, nó có cả nghĩa chung lẫn nghĩa riêng để sử dụng.

Rất nhiều người có quan điểm “cơ điện tử” là lĩnh vực đa công nghệ, phát triển trên cơ sở của ngành cơ khí truyền thống, kỹ thuật điện tử và tin học. Sau đây là một số định nghĩa về cơ điện tử của một số cơ quan tổ chức:

  • Cơ điện tử là sự kết hợp của kỹ thuật cơ khí, điểu khiển điện tử và kỹ thuật hệ thống trong thiết kế sản phẩm và quá trình (theo Nanyang Politechnic Singapore).
  • Cơ điện tử là sự kết hợp đổng vận của kỹ thuật cơ khí, điểu khiển điện tử và tư duy hệ thống thiết kế sản phẩm và các quá trình sản xuất (theo uỷ ban Tư vấn Phát triển và Nghiên cứu Công nghiệp châu Âu viết tắt IRĐAC).
  • Cơ điện tử là hệ thống thiết kế và chế tạo sản phẩm mà hệ thống dó có các chức năng cơ khí và chức núng điều khiên thuật toán thích hợp (theo trang “Mechatronics Porum” ở w.w.w.)
  • Cơ điện tử được xem xét như là các ứng dụng kỹ thuật đồng thời (concurrent engineering) vào thiết kế về tích hợp các hệ thống cơ-điện tử (theo trường Đại học Atlanta U.S.A).
  • Hệ thống cơ điện tử là máy được tích hợp với các hệ thống được lập trình hoặc khả trình với sự nhận thức, hoạt động và truyền thông (theo Royal Institute of Technology- Thụy Điển).
  • Cư điện tử là sự kết hợp 3 công nghệ then chốt: cơ khí, điện và điều khiển (theo Louisian State University U.S.A).
  • Cơ điện tử là sự kết hợp giữa 4 mảng kiến thức: cơ khí. điện tử, điều khiển và máy tính (theo giáo sư Kevin Craig khoa Cơ khí và Kỹ thuật Hàng không của Đại học Renssenlaser U.S.A).

Đa sô các trường đại học của Anh, Đức, Áo, Úc đcu thống nhất quan điểm cơ điện tử là sự phối hợp của kỹ thuật cơ khí, điện tử và công nghệ thông tin.v..v…. Không có một giới hạn định nghĩa về thuật ngữ cơ điện tử. về bản chất, việc ứng đụng cơ diện tử không phải là một cuộc cách mạng khoa học kỹ thuật. Đó là một sự tiến triển, ứng đụng kỹ thuật mới nhất của khoa học cơ khí chính xác, lí thuyết điều khiển, khoa học máy tính, điện và điện tử trong quá trình thiết kế để tạo nên những sản phẩm có khả năng tương thích cao với nhiêu chức năng. Điều này đã được nhiều nhà thiết kế và kỹ sư nhìn thấy trước và đưa vào sản phẩm của mình do vậy thực chất các sản phẩm cơ điện tử đã tổn tại và phát triển trước khi có những quan điểm rõ ràng về chúng.

Theo dòng lịch sử, đa số các hệ thường sản xuất cũng như các sản phẩm hàng hoá được cơ khí hoá hoàn toàn khi có sự hiện diện của động cơ điện hoặc thuỷ lực trong kết cấu, dó là xuất phát điểm. Sự xuất hiện các linh kiện bán dẫn trong thập kỷ 50 và các máy tính diện tử sô’ trong những năm 70 đã tạo nên những hệ thống nối ghép tương hỗ giữa kỹ thuật cơ khí với diện tử, điều khiển vi tính có tính đa ngành cao tiếp theo. Phần lún các sản phẩm cơ điện tử trong thời kì này liên quan đến kỹ thuật servo, được sử đụng cho những sản phẩm như mở cửa tự động, máy bán hàng tự dộng, camera tự điều chỉnh tiêu cự V..V… Những sản phẩm cơ điện tử thế hệ này đã thổ hiện được kết cấu đơn giản hơn trong cùng chức năng nhờ việc sử dụng phương pháp điều khiển tiên tiến, phù hợp với cơ cấn chấp hành đơn giản.

Trong những năm 80, sự phát triển của công nghệ thông tin làm cúc kỹ sư nảy sinh và bắt dầu áp dựng các bộ vi xử lí vào các hệ thống cơ khí dế cải thiện dặc tính cúa hệ thống. Máy công cụ, thiết bị điểu khiển số và robot trở nên gọn hơn, trong khi các ứng đựng trong lĩnh vực xc 4 bánh như điều khiên động cơ điện tử và các bộ phanh an toàn trở nên phổ biến.Kỹ thuật cơ điện tử là gì? Điều gì khiến ngành học này được thu hút đến vậy

Còn ở tháp kỷ 90, cõng nghệ truyền thông đã bổ sung vào cơ điện tử tính mềm dẻo, hỗn hợp: các sản phẩm có thể nối kết thành mạng lớn. Sự phát triển này tạo nên các chức năng như vận hành từ xa các cánh tay máy, điều khiển hệ thống sản xuất qua mạng, đặt hàng-thiết kế- tạo mẫu (protype)- sản xuất trong một khoảng không gian võ cùng rộng V…V. Cùng thời gian những cảm biến mới nhỏ hơn, thậm chí siêu cực nhỏ và công nghệ mới về kích truyền dộng (actuator) dược tăng cường trong các hệ thống sản phẩm mới. Các hệ thống cơ -điện tử siêu nhỏ (micromechatronics) mở xu hướng phát triển công nghệ siêu nhỏ (nano technology) trong thế kỷ 21.

Sự mở mang dự đoán dược trong thiết kế, phát triển sản xuất, kỹ thuật tự động và sản phẩm tiêu đùng dã kích thích và thúc đẩy các nhà quản lí và các kỹ sư thiết kế, chế tạo, khai thác công nghệ cơ điện tử. Điều này đặt ra thách thức trong dào tạo về công nghệ cơ điện tử để có thể đáp ứng các nhu cầu trong ứng dụng tự động hoá trong các ngành công nghiệp kể cả công nghiệp tiêu đùng.

Về đào tạo, từ 1983 Viện Kỹ thuật Nhật Bản- Singapo đã đưa vào khoá đào tạo kỹ thuật cơ điện tử (mechatronics cnginerring) chương trình 2 năm dể đào tạo lại kỹ sư cơ khí. Khoá giảng đầu tiên mang tên “Mechatronics” cho kỹ sư và học viên cao học (B.Eng/M.Eng) dược thực hiện ở trường Đại học Landcastcr (U.K) trong năm 1984/1985. Kể từ dó các khoá đào tạo về cơ diện tử bắt đầu phát triển mạnh ở tất cả các nước công nghiệp phát triển và dang phát triển. Cả những nước “con rồng mới” thuộc vùng châu Á -Thái Bình Dương cũng đã rất nhanh nhạy dưa ngành dào tạo mới này vào giảng dạy. Những năm đầu thập kỷ 90, 4 trường đại học bách khoa cua Singapo có chương trình 3 năm đào tạo chính quy kỹ sư cơ điện tử. Trường dại học TUT-Nhật Bản là trường dại học duy nhất ở châu A dưa cơ diện tủ vào giảng dạy chính thức như là một khoa riêng của trường. Cùng thời gian đó, hấu hết sinh viên các khoa kỹ thuật ở các trường đại học khác ở Nhật đều dược dạy các nguyên lí cơ bản của cơ diện tứ và hướng nghiên cứu trong lĩnh vực này. ơ trường Đại học Sidney úc cưng đã có các khoá đào tạo và cấp bằng kỹ sư theo chuyên ngành cư điện tử từ những nãm đầu 90, tiếp theo không lâu là các trường đại học Curtin và New South Wcles. ở châu Âu, từ năm 1980 dã có các hoạt dộng có liên quan đến đào tạo cơ điện tử, nhưng khoá học chính thức về cơ điện tử trong trường đại học thì chỉ bắt đẩu từ chương trình một năm cao học tại trường dại học Katholieke (Leuuven -Bỉ) trong 1986 và đến 1989 trường này đã mở ngành dào tạo cơ diện tủ. Nám 1989 Trung tâm Nghiên cứu cơ điện tử thuộc trường Đại học Twente (Hà Lan) được thành lập để phối hợp các chương trình nghiên cứu giảng dạy của nhà trường. Trong năm 1990 một loạt các trường dại học ở CHLB Đức, Đan Mạch, Hà Lan, Ireland (châu Âu) dưa cơ diện tử vào giảng dạy. Từ 1992 – 1996 Liên Minh Châu Âu đã tài trự để thực hiện dự án TEMOUS dưa khoá học cư diện tử vào giảng dạy tại các khoa cơ khí của các trường dại học. TU Brno, CTU, TU Plzeo, University Libre Bruxelles, University College Dublin, Johannes Kepler University Linz, Loughborough University of Technology, University Stuttgart.

Tài liệu nghiên cứu cuộc cách mạng công nghiệp lần thứ tư 4.0

Các trường dại học ở Anh giảng dạy cơ điện tử, bắt đầu từ Trường Lancaster, tiếp theo là các trường Đại học London, Surrey, Dundee, Hull, Brunel, Loughborough, Manchester và Leeds, ở Bắc Mỹ mặc dù có rất nhiều trường đại học hoạt dộng trong lĩnh vực cơ diện tử, nhưng cho đến 1995 vẫn chưa xuất hiện những khoá giảng dạy mang tên “Cơ điện tử”. Đến nay hầu như tất cá các trường đại học kỹ thuật của Mỹ đều dã có khoa này. Tính đến 1999 trôn thế giới có khoảng 90 trường đại học và viện nghiên cứu có đào tạo giảng dạy và nghiên cứu về cơ diện tử [3], Nhìn chung, cơ diện tử dược coi là một ngành tích hợp các đối

tượng cơ bản đang tồn tại của các bộ môn có liên quan theo hình thức khác với truyền thống phát triển hàm lâm một ngành học. Để đáp ứng là ngành da công nghệ, gắn với sự thay dổi trong cấu trúc chương trình giảng dạy hướng kỹ thuật (engineering), nhiều trường đại học theo dặc thù ricng của mình dã dưa ra những chương trình giảng dạy khác nhau, tuy nhiên phạm vi dào tạo liên quan dến cơ điện tử thường bao gồm 4 lĩnh vực thể hiện như hình l.l. ở đây, những vấn đề học thuật được coi là không thể thiếu dược trong thiết kế sản phẩm và quy trình chế tạo sản phẩm là: khoa học máy tính, kỹ thuật kích truyền đọng cơ khí-thuỷ lực-khí nén -diện- diện tử, kỹ thuật diện- diện tử- vi diện tử, cảm biến, vật liệu, điều khiển và tự dộng hoá, dộng lực học và robot, CAĐ/CAM, C1M và cơ sở dữ liệu công nghiệp, V…V. Trong dó những chương trình giảng dạy dược coi là cơ sở cho dào tạo cơ diện tử là thiết bị di động cơ điện (  Electromechanical Motion Device), điện tư công suất (Power Electronics) và vi điện tử (Microelectronics), vi xử lí và giao diện (Microprocessor and Interfacing), các hệ thống cơ điện (Electromechanical Systems), nhập môn cơ điện tử (Introduction to Mechatronics), lí thuyết các hệ thống điểu khiển và điều khiển các hệ cơ điện tử (Control systems Theory and Control of Mechatronic Systems), các hệ thống cơ diện tử và các cấu trúc thông minh (Mechatronic System and Smart Structures), các hệ thống cơ điện tử siêu nhỏ (Microelectromechanical Systems) và các hệ thống cơ điện tử nano (Nano electromechanical Systems).

The post Ngành cơ điện tử ra đời như thế nào? appeared first on Cách Dùng.

]]>
Hướng dẫn S7-1200_Bài 8: Tập lệnh lập trình – Tập lệnh mở rộng https://cachdung.com/blog/tap-lenh-lap-trinh-tap-lenh-mo-rong.html Mon, 25 Mar 2019 04:29:16 +0000 http://cachdung.tranyen.com/?p=2176     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ổ [...]

The post Hướng dẫn S7-1200_Bài 8: Tập lệnh lập trình – Tập lệnh mở rộng appeared first on Cách Dùng.

]]>

 

 

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 GetErrorlD 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.

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 Dlnt) hay (Dlnt 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

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.

Có thể thực hiện hai phép cộng kiểu dữ liệu sau:
T_ADD (Time Add) cộng giá trị ngõ vào INI (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.

  • Time + Time = Time
  • DTL + Time = DTL

Lựa chọn kiểu dữ liệu INI 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 INI còn thiết lập kiểu dữ liệu của thông số OUT.

Lệnh T SUB (Time Subtract) trừ một giá trị IN2 kiểu Time từ giá trị INI 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

Lựa chọn kiểu dữ liệu INI 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 INI còn thiết lập kiểu dữ liệu của thông số OUT.

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:

  • 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ờ.

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 Unỉversal 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.

Độ 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.

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ỏ hon 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 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.
  • VALSTRG 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.

Lệnh S CONV (Strỉng 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 STRGVAL và VALSTRG.

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ị)

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á ừị 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ựu 9?
  • 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 thi đượ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.

S CONV (chuyển đổi giá trị thành chuỗi)

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 ừong 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ợ.

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à

Lệnh STRG VAL

Lệnh STRG VAL (Strỉng 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 ừong 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ố FORMAT của STRG VAL

Thông số FORMAT đối với lệnh STRGVAL được xác định dưới đây. Các vị trí bit không được sử dụng phải được đặt về 0.

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)
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’ 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.
Nếu ký tự dấu phẩy ‘V’ đượ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

Lệnh VALSTRG

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ố 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á ừị 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.

f = định dạng ký hiệu:

r = định dạng chấm thập phân:

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 “ – ”

1 = ký hiệu lũy thừa 0 = ký hiệu dấu chấm cố định

1 = (ký tự dấu phẩy) 0 = (ký tự dấu chấm)

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.

<Các khoảng trống cách quãng> <các con số không có số 0 cách quãng> <Các con số PREC>

  • 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.

<Các khoảng ừống cách quãng> <dấu> <các con số không có số 0 cách quãng> <Các con số PREO

  • 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:

<Các khoảng ừống cách quãng> <dấu> < con số> <Các con số PREC> ‘E’ <dấu> <các con số không có số 0 cách quãng>

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

  • 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.

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.

Các ví dụ về chuyển đổi chuỗi thành giá trị S CONV

Các ví dụ về chuyển đổi giá trị thành số S CONV

Các ví dụ về chuyển đổi STRG VAL

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.

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.

Lệnh LEN

Lệnh CONCAT (Concatenate strings) nối các thông số chuỗi INI 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 INI 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.

Lệnh LEFT

Lệnh LEFT (Left substrỉng) 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.

Lệnh RIGHT

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.

Lệnh MID

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.

Lệnh DELETE

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.

Lệnh INSERT

Lệnh INSERT (1nsert substring) chèn chuỗi IN2 vào chuỗi INI. 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.

Lệnh REPLACE

Lệnh REPLACE (Repỉace 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 INI, 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 INI mà không xóa đi bất kỳ ký tự nào trong chuỗi IN 1.

•         Nếu p = 1, L các ký tự đầu tiên trong INI đượ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.
Lệnh FIND
Lệnh FIND (Find subsừ-ing) 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 INI. 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 INI thi 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.

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 RETRIGR để khởi động lại bộ định thì chu kỳ quét trong suốt một chu kỳ quét đorn. Đ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 trinh. Đ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 thi 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”

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

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ưorng 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 cycỉe) đặ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.

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 GETERROR hay GETERRORID 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_ERR_ID

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 (Diagnostỉcs) và chuyển về chế độ STOP. Tuy nhiên, nếu ta đặt một hay nhiều lệnh GETERROR 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 GETERROR 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 ỉogic 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.

Ta có thể kết nối ỉogic 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ó.

GETERROR và GETERRID 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.

 

The post Hướng dẫn S7-1200_Bài 8: Tập lệnh lập trình – Tập lệnh mở rộng appeared first on Cách Dùng.

]]>
Hướng dẫn S7-1200_Bài 7: Tập lệnh lập trình – Phép toán https://cachdung.com/blog/tap-lenh-lap-trinh-phep-toan.html https://cachdung.com/blog/tap-lenh-lap-trinh-phep-toan.html#respond Mon, 25 Mar 2019 04:22:59 +0000 http://cachdung.tranyen.com/?p=2158     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  (INI * IN2    [...]

The post Hướng dẫn S7-1200_Bài 7: Tập lệnh lập trình – Phép toán appeared first on Cách Dùng.

]]>

 

 

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  (INI * IN2         – OUT)
  • DIV      : phép chia    (IN1/IN2           =OUT)

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 INI, IN2 và OUT phải có kiểu dữ liệu giống nhau.

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 (INI và IN2) và lưu trữ kết quả trong địa chỉ nhớ được xác đị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.

Lệnh MOD

Ta sử dụng lệnh MOD (modulo) cho phép toán INI modulo IN2. Phép toán INI MOD IN2 = INI – (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 đom thả xuống.

Lưu ý:

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

Lệnh NRG

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 đon thả xuống.

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

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/OƯT – 1 = giá trị thông số IN/OƯT.

– Ta nhấp vào phía dưới tên hộp và chọn một kiểu dữ liệu từ trinh đơn thả xuống.

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.

Lệnh MIN và MAX

Ta sử dụng lệnh MIN lminimum: 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ố INI 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ố INI 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.

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.

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 (-JĨN = OUT)
  • LN : logarite tự nhiên (LN(IN) = OUT)
  • EXP : lũy thừa tự nhiên (em = 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 (INI™2 = 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à INI 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.

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.

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 MO VE.
  • Để sao chép một mảng kiểu dữ liệu cơ bản, sử dụng MOVE BLK hay UMOVEBLK.
  • Để sao chép một cấu trúc, sử dụng MO VE.
  • Để 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 MO VE
  • 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.
  • 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.

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.

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.

Các lệnh lấp đầy

Ta sử dụng các lệnh FILL_BLK và UFILL_BLK như:

  • 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.

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ẻ ừong 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.

Các lệnh FI11_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.

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 đom thả xuống.

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 Dlnt.

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.

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(ll,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).

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).

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 SCALEX đị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.

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 SCALEX đặt ENO = TRƯE 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.


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.

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.

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

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ố “Retum Value” được bỏ qua. Nếu khối hiện thời là một FC hay FB, giá trị thông số “Retum Value” được đi qua trở về đến đoạn chương trình đang gọi nhu 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ố “Retum 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.
  1. Gọi FC từ MAIN[OBl]

Ngõ vào EN trên hộp FC ừong 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.

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 duới tên hộp và lựa chọn một kiểu dữ liệu từ trình đơn thả xuống.

Việc lựa chọn kiểu dữ liệu đặt các thông số INI, IN2 và OUT về kiểu dữ liệu giống nhau. Các giá trị bit tuơng ứng của INI 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.

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ị bỉt 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 đon thả xuống.

Các lệnh mã hóa và giải mã

Lệnh ENCO mã hóa một mẫu bỉt 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 đom thả xuống.

Lệnh ENCO mã hóa một mẫu bỉt 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 đom thả xuống.

Lệnh ENCO chuyển đổi thông số IN thành một số nhị phân tưomg ứng với vị trí bỉt của bỉt đặ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ưomg ứ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. Neu 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 bỉt 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.
  • IN 4 bit (các giá trị từ 0 đến 15) được sử dụng để đặt vị trí 1 bỉt 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 bỉt trong một OUT kiểu DWord.

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.

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”.
  • Đe 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.

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í bỉt được dịch chuyển.

  • SHR: dịch chuyển mẫu bỉt 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.

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.

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.

Lệnh xoay

Ta sử dụng các lệnh xoay để xoay mẫu bỉt 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í bỉt được xoay.

  • ROR: xoay mẫu bỉt 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 đon thả xuống

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.
ENO luôn luôn là TRUE theo sự thực thi của các lệnh xoay.

The post Hướng dẫn S7-1200_Bài 7: Tập lệnh lập trình – Phép toán appeared first on Cách Dùng.

]]>
https://cachdung.com/blog/tap-lenh-lap-trinh-phep-toan.html/feed 0
Hướng dẫn S7-1200_Bài 6: Tập lệnh lập trình – Tập lệnh cơ bản https://cachdung.com/blog/tap-lenh-lap-trinh-tap-lenh-co-ban.html https://cachdung.com/blog/tap-lenh-lap-trinh-tap-lenh-co-ban.html#respond Mon, 25 Mar 2019 04:21:07 +0000 http://cachdung.tranyen.com/?p=2157     5.  Tập lệnh cơ bản 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 bỉt ngõ vào mà ta chỉ rõ sử dụng bộ định danh I (ngõ vào) hay Q [...]

The post Hướng dẫn S7-1200_Bài 6: Tập lệnh lập trình – Tập lệnh cơ bản appeared first on Cách Dùng.

]]>

 

 

5.  Tập lệnh cơ bản

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 bỉt ngõ vào mà ta chỉ rõ sử dụng bộ định danh I (ngõ vào) hay Q (ngõ ra), giá trị bỉt 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.

  • Tiếp điểm thường hở NO (Normally Open) được đóng lại (ON) khi giá trị bít được gán bằng 1.
  • Tiếp điểm thường đóng NC (Normaỉỉy Closed) được đóng lại (ON) khi giá trị bỉt đượ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 logỉc OR.

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.

  • 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”.

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 ỉogic 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 bỉt ngõ ra trong thanh ghi ảnh tiến trình về on hoặc ofj,\ 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 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ý.

  • Nếu có luồng tín hiệu chạy qua một cuộn dây ngõ ra, bỉt 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, bít 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ỉ bỉt.

  • Nếu tín hiệu vào của hộp ngõ ra là 1, bỉt 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.

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.

  • Khi SET_BF được kích hoạt, một giá ữị 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 (Sl) và reset (R) đều là đúng, địa chỉ ngõ ra OUT sẽ bằng 1.

SR là một mạch chốt reset ữội mà reset chiếm ưu thế. Nếu tín hiệu set (S) và reset (Rl) đều là đúng thì địa chỉ ngõ ra OUT sẽ là 0.

Thông số OUT định rõ địa chỉ bỉt đượ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.

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

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

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 bỉt “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 hạ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): hạ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 bỉt đượ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 ừong 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.

Cuộn dây N (LAD): bỉt đượ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 bỉt 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): bỉt đượ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 bỉt 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ị ừí 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ớ. Neu 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 ngưỡng được thuật lại bằng việc ghi giá trị ngõ ra “TRUE”. Neu 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à bỉt 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 bỉt 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 đorn 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.

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 thi 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 hô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 – ỉnstance, 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 – lnstance đượ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.

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 chi định.

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.

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 đã ừô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 đorn vị thời gian thuần túy “T#200ms” hay như các đorn vị thời gian phức hợp “T#2s_200ms”.

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 – ỉnstance, 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 Muiti – 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.

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á ữị đế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 duomg.

CTU: CTƯ đế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).

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á ừị 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á ừị 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).


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 hom 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

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 chinh 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:

  • 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á ừị 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.
  • 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 (intemal 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.

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

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 (10.3) thì 10.3 có thể được sử dụng cho các ngắt ở ngưỡng hoặc cho HSC2.

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 chi đượ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.

  1. 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.
  2. HSC4 không dùng được cho CPU 1211C vốn chỉ hỗ trợ 6 ngõ vào tích hợp.
  3. 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 Conllguration.

Các điểm I/O số đươc gán đến các thiết bi HSC không thể bi tác đông.

Các điểm 1/0 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 1/0 được gán đến những thiết bị này, giá trị của các địa chỉ điểm 1/0 đó không thể được chỉnh sửa bởi hàm tác động bảng Watch.

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.

 

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 hình đơn thả xuống.

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

Ta sử dụng các lệnh INRANGE và 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.

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ưomg trình, ta có thể lựa chọn kiểu dữ liệu từ các trình đom thả xuống.

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 (inỷìnity: 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.

The post Hướng dẫn S7-1200_Bài 6: Tập lệnh lập trình – Tập lệnh cơ bản appeared first on Cách Dùng.

]]>
https://cachdung.com/blog/tap-lenh-lap-trinh-tap-lenh-co-ban.html/feed 0
Hướng dẫn S7-1200_Bài 5: Khái niệm lập trình https://cachdung.com/blog/khai-niem-lap-trinh.html Mon, 25 Mar 2019 04:18:59 +0000 http://cachdung.tranyen.com/?p=2156 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 [...]

The post Hướng dẫn S7-1200_Bài 5: Khái niệm lập trình appeared first on Cách Dùng.

]]>
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.

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 chi 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 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.

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 hom 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 ứa 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.

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ưcmg 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)

  1. Sự thực thi chưomg trình
  2. Sự vận hành gọi một khối khác
  3. Sự thực thi chưomg trình
  4. 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ưorng 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.

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

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ưomg 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 tì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 tì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 tì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 tì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 tì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 tình dành cho chương tình, COU thực thi mỗi OB chu kỳ chương tình theo tì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 tình thứ hai (ví dụ OB 200).

Cấu hình sự hoạt động của một OB

 

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.

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ưomg 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.

{C}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 chi 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ố.

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 đơ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.

4.3.3.      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.

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ụ IECTIMERS 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á ừị 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.

Các lệnh PtP, và các lệnh PROFINET (như TSENDC 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.

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 trfnh 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.

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. Đe 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 ừá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. Neu 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.

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ưomg 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, trình đon “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, Retum)
  • Cấu trúc gọi của chưong 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.

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”.

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 (offlỉne), 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. Neu 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 chinh.
  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 ữom 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 coníiguration” để 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.

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.

 

The post Hướng dẫn S7-1200_Bài 5: Khái niệm lập trình appeared first on Cách Dùng.

]]>
Hướng dẫn S7-1200_Bài 4: Cấu hình thiết bị https://cachdung.com/blog/cau-hinh-thiet-bi.html https://cachdung.com/blog/cau-hinh-thiet-bi.html#respond Mon, 25 Mar 2019 04:16:30 +0000 http://cachdung.tranyen.com/?p=2147   3.   Cấu hình thiết bị 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. 1.Module truyền thông (CM): tối đa là 3, được chèn vào các khe số 101, 102 và 103 2. CPU: khe số 1 3.Cổng Ethernet của CPU 4. Bảng [...]

The post Hướng dẫn S7-1200_Bài 4: Cấu hình thiết bị appeared first on Cách Dùng.

]]>

 

3.   Cấu hình thiết bị

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.

1.Module truyền thông (CM): tối đa là 3, được chèn vào các khe số 101, 102 và 103

2. CPU: khe số 1

3.Cổng Ethernet của CPU

4. Bảng tín hiệu (SB): tối đa là 1, được chèn vào CPU

5. Module tín hiệu (SM) dành cho I/O tưomg 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”. read this article

Trong kiểu Project  dưới cây đề án nhấp đôi chuột vào “Add new device”

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

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 chi 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 đó.

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 “Unspeciíied 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.

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 PR0FINET: thiết lập địa chỉ IP cho CPU và sự đồng bộ hóa thòi gian
[1]    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

  • 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).

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 bỉt “íirst scan”, bìt “always on” và bỉt “always off’) và khởi động một byte của các chức năng “clock memory” (ở đó mỗi bỉt đả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.

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 moduỉe:

  • 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.


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. 

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.

3.6    Tạo ra một kết nối mạng

Người dùng sử dụng “Network view” trong Device Coníĩguration để tạo ra các kết nối mạng giữa các thiết bị ừong đề á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.

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.

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 hom 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.

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 bỉt đầ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.

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:

The post Hướng dẫn S7-1200_Bài 4: Cấu hình thiết bị appeared first on Cách Dùng.

]]>
https://cachdung.com/blog/cau-hinh-thiet-bi.html/feed 0
Hướng dẫn S7-1200_Bài 3: Lưu trữ dữ liệu, các vùng nhớ và việc ghi địa chỉ https://cachdung.com/blog/luu-tru-du-lieu-cac-vung-nho-va-viec-ghi-dia-chi.html https://cachdung.com/blog/luu-tru-du-lieu-cac-vung-nho-va-viec-ghi-dia-chi.html#respond Mon, 25 Mar 2019 04:15:14 +0000 http://cachdung.tranyen.com/?p=2146   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ưorng 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 [...]

The post Hướng dẫn S7-1200_Bài 3: Lưu trữ dữ liệu, các vùng nhớ và việc ghi địa chỉ appeared first on Cách Dùng.

]]>

 

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ưorng 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ưorng 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ớ.

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 (bỉt 4).

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 bỉt. Đ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ụ IBO, MW20 hay QD8. Các tham chiếu như là 10.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”).

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 bỉt, 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.

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 ttong lần cuối mà ảnh tiến trình ngõ vào được cập nhật.

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 14.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.

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 bỉt, 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.

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 “immediatewrite” 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 😛 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.

M (vùng nhớ bít): ta sử dụng vùng nhớ bỉt (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.

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 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.

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 bỉt, 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 DI 16 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

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ỗ ừợ í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 INI 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ỗ ữợ, 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 Interfa.ce của khối. Kiểu String chỉ có sẵn trong trình soạn thảo Interfa.ce của khối. Bảng sau đây xác định các kiểu dữ liệu cơ bản.


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.

Đị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ị dưới dạng số với độ chính xác đơn 32 bỉt (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 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 thuớ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.

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, Slnt, 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.

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[ỉ’], trong đó ỉ 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.

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.

2.4. Sử dụng 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).

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 ữong của CPU, hoặc là trong bộ nhớ nạp ngoại vi (một thẻ chương trình). Neu 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.

2.4.1. Lắp một thẻ nhớ vào CPU.

Để 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ú ý:

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.

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).

2.4.3  Thẻ chuyể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. Đe 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ớ hố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.)

  1. Trong Project tree (kiểu xem Project), mở rộng thư mục “SIMATIC Card Reader” và lựa chọn thẻ nhớ.
  2. 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.
  3. 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ẻ.

  1. 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”.
  2. Trong hộp thoại “Load preview”, nhấp vào nút “Load” để sao chép thiết bị CPU đến thẻ nhớ.
  3. 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).
  1. 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.
  2. Lấy thẻ chuyển ra khỏi CPU.
  3. 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.

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 ưê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. Neu 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).

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.)

  1. Trong Project tree (kiểu xem Project), mở rộng thư mục “SIMATIC Card Reader” và lựa chọn thẻ nhớ.
  2. 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.
  3. 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ẻ.

  1. 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”.
  2. Trong hộp thoại “Load preview”, nhấp vào nút “Load” để sao chép thiết bị CPU đến thẻ nhớ.
  3. 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

Để 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).
  1. 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.

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.

The post Hướng dẫn S7-1200_Bài 3: Lưu trữ dữ liệu, các vùng nhớ và việc ghi địa chỉ appeared first on Cách Dùng.

]]>
https://cachdung.com/blog/luu-tru-du-lieu-cac-vung-nho-va-viec-ghi-dia-chi.html/feed 0
Hướng dẫn S7-1200_Bài 2: Các khái niệm về PLC https://cachdung.com/blog/cac-khai-niem-ve-plc.html https://cachdung.com/blog/cac-khai-niem-ve-plc.html#respond Mon, 25 Mar 2019 04:12:50 +0000 http://cachdung.tranyen.com/?p=2136 2.  Các khái niệm về PLC 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ưorng 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à [...]

The post Hướng dẫn S7-1200_Bài 2: Các khái niệm về PLC appeared first on Cách Dùng.

]]>

2.  Các khái niệm về PLC

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ưorng 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.

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 tri 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à moduỉe 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. Anh 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ý.

Chu trình này cung cấp ỉogic 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. Đe 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 conííguration, 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 ‘TO addresses/HW identiíĩer”. 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).

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ữ).

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 Coníìguration đố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
  • 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 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:

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

1. Ghi bộ nhớ Q đến các ngõ ra vật lý.

2. Sao chép trạng thái các ngõ vào vật lý đến vùng nhớ I.

3. Thực thi các OB chu kỳ chưomg trình.

4. Thực hiện các chẩn đoán tự kiểm tra.

5. 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.

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 hom 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ẽ đuợ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á ưị 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:

CPU còn thực hiện các tác vụ sau đây ữong 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

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 chuơ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ưorng tự từ ảnh tiến ừì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ưorng 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.

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ưong 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

SRTDINT. Một OB trì hoãn thời gian ngắt sự thực thi chưomg 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 hình 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. Neu 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.

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 Conííguration 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.

Sự kiện khởi động xảy ra một lần ữê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 tri 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 coníiguration. Các OB được xác định cho sự kiện trong Device coníĩguration 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 ừê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ợ.

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”.

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.

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ưomg 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. Neu 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 hao 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ợ hởi OB 80:

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. Neu 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 đó.

Ta có thể lập trình tập lệnh bên ữong 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:

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. Bỉt 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 (HWID) 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).

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 phuoug 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 Conííguration” 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 RETRIGR (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ỗ ừợ 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ọ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 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.

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 Coníĩguration để 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.

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.

Đe 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. Đe 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ữ:

Bộ nhớ bỉt (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 ừong danh sách gán. Bộ nhớ bit lưu giữ luôn luôn khởi đầu tại MBO 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 MBO.
  • 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 hạ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. Đe 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ụ 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ữ. Đe 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à noi mà các phạm vi lưu giữ được xác định cho bộ nhớ M.

Bộ đếm chuẩ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”.

Đồ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

The post Hướng dẫn S7-1200_Bài 2: Các khái niệm về PLC appeared first on Cách Dùng.

]]>
https://cachdung.com/blog/cac-khai-niem-ve-plc.html/feed 0
Hướng dẫn S7 1200_Bài 1: Tổng quan về thiết bị https://cachdung.com/blog/tong-quan-ve-thiet-bi.html https://cachdung.com/blog/tong-quan-ve-thiet-bi.html#respond Mon, 25 Mar 2019 04:11:13 +0000 http://cachdung.tranyen.com/?p=2135 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 [...]

The post Hướng dẫn S7 1200_Bài 1: Tổng quan về thiết bị appeared first on Cách Dùng.

]]>

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 S7- 1200 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ẽ web. 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 ỉogic 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.

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.

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.

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.

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.

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)

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 hì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 ữong ổ 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 ý:

Để 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.

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. Đe á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 khỉ 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.

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.

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.

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.

  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.

The post Hướng dẫn S7 1200_Bài 1: Tổng quan về thiết bị appeared first on Cách Dùng.

]]>
https://cachdung.com/blog/tong-quan-ve-thiet-bi.html/feed 0
PLC S7 200_Bài 14: Các phép toán cơ bản trong điều khiển số https://cachdung.com/blog/cac-phep-toan-co-ban-trong-dieu-khien-so.html https://cachdung.com/blog/cac-phep-toan-co-ban-trong-dieu-khien-so.html#respond Mon, 25 Mar 2019 04:08:43 +0000 http://cachdung.tranyen.com/?p=2134 Các phép toán cơ bản trong điều khiển số Các hệ thống điều khiển logic trong thực tế xử lý với các dữ liệu nhị phân. Đặc điểm của các máy tính điều khiển hiện nay là xử lý dữ liệu, chất lượng điều khiển, v.v… ngày càng tăng với bộ xử lý dữ liệu [...]

The post PLC S7 200_Bài 14: Các phép toán cơ bản trong điều khiển số appeared first on Cách Dùng.

]]>

Các phép toán cơ bản trong điều khiển số

Các hệ thống điều khiển logic trong thực tế xử lý với các dữ liệu nhị phân. Đặc điểm của các máy tính điều khiển hiện nay là xử lý dữ liệu, chất lượng điều khiển, v.v… ngày càng tăng với bộ xử lý dữ liệu số sử dụng PLC.

Các biến quá trình số có thể được tìm thấy trong tất cả lĩnh vực của điều vòng hở như trong các thiết bị được kết nối cho hoạt động quá trình và giám sát hoặc trong điều khiển của các thiết bị trường. Mục đích của giám sát quá trình là cung cấp thông tin về máy móc hoặc hệ thống hoạt động nhanh chóng, ngắn gọn và rõ ràng theo từng phút, cũng như sự đúng lúc để can thiệp, điều khiển và tác động đến quá trình.

Trong hầu hết các điều khiển đơn giản trước đây, các thiết bị vào ra như màn hiển thị 7-đoạn và các nút nhấn xoay số được sử dụng để hiển thị và nhập giá trị số. Ngày nay các thiết bị thao tác và giám sát „thông minh“ thường được kết nối với PLC.

Ngày nay các thiết bị xử lý, thu thập dữ liệu và điều khiển quá trình được cung cấp trực tiếp với các biến số thông qua hệ thống bus trường. Việc kết nối các thiết bị trường, như biến tần hay hệ thống cân, sử dụng các module vào ra analog càng ngày càng không được sử dụng nữa.

Tuỳ thuộc vào kiểu thiết bị được kết nối, nhiều dạng số khác nhau để mã hóa dữ liệu được sử dụng để truyền dữ liệu giữa thiết bị và PLC, cũng như để lưu trữ và xử lý dữ liệu trong PLC.

14.1   Các dạng số trong PLC

14.1.1    Kiểu dữ liệu Integer (INT)

Giá trị kiểu dữ liệu Integer hoàn toàn là giá trị số không có dấu chấm thập phân. S7-200 lưu trữ giá trị dữ liệu kiểu Integer có dấu ở mã 16 bit. Phạm vi của số integer là -32768 đến +32767.

STEP 7 sử dụng dạng hiển thị Decimal (không phải BCD) để xác định  các hằng số của kiểu dữ liệu Integer. Nó cũng được mô tả ở dạng có dấu và không dấu. Theo nguyên lý thì có thể sử dụng các giá trị integer hằng số biểu diễn ở dạng Binary và Hexadecimal, nhưng vì không rõ ràng, nên chúng không còn phù hợp nữa. Vì lý do này, cú pháp của STEP7 chỉ cung cấp giá trị của integer biểu diễn ở decimal.

Ví dụBiểu diễn số +662 và -662

Trong hệ thống máy tính số, tất cả các giá trị được lưu trữ ở dạng mã binary. Chỉ các số 0 và 1 được sử dụng trong hệ thống số nhị phân. Cơ số 2 của hệ thống số này là kết quả từ số của các số có giá trị. Giá trị của mỗi vị trí của số nhị phân là kết quả của lũy thừa của cơ số 2. Nó được biểu diễn ở dạng 2#…. .

Giá trị số âm là sự biểu diễn các số nhị phân ở dạng bù hai. Trong dạng biểu diễn này, bit có trọng số lớn nhất (most significant bit) (bit số 15 cho kiểu dữ liệu Integer) có giá trị – 215. Vì giá trị này lớn hơn tổng của tất cả các giá trị còn lại, nên bit này được làm bit thông tin dấu. Nếu bit = 0, thì giá trị dương; nếu bit = 1, thì giá trị là âm. Việc chuyển đổi giữa các số nhị phân thành số decimal được thực hiện bằng cách cộng các giá trị của các vị trí có bit = 1. (xem ví dụ).

Trong hệ thống máy tính số, tất cả các giá trị được lưu trữ ở dạng mã binary. Chỉ các số 0 và 1 được sử dụng trong hệ thống số nhị phân. Cơ số 2 của hệ thống số này là kết quả từ số của các số có giá trị. Giá trị của mỗi vị trí của số nhị phân là kết quả của lũy thừa của cơ số 2. Nó được biểu diễn ở dạng 2#…. .

Hệ thống số hexadecimal cung cấp 16 chữ số khác nhau (0 đến 9 và A đến F). Đây là hệ thống số theo cơ số 16. Do đó, giá trị mỗi vị trí của số hexadecimal có kết quả từ lũy thừa của cơ số 16.

Các số Hexadecimal được xác định với dạng 16#. Các chữ số A đến F biểu diễn theo giá trị số decimal 10 đến 15. Giá trị 15 là giá trị cuối cùng có thể được mã hóa nhị phân của 4 bit không dấu. 4 bit nhị phân tạo thành một số của số hexadecimal.

Hằng số trong dạng số Hexadecimal không được sử dụng cho các giá trị số integer.

14.1.2    Kiểu dữ liệu Double Integer (DINT)

S7-200 lưu giá trị kiểu dữ liệu Double Integer với mã 32 bit có dấu. Phạm vi giá trị kiểu double Integer từ -2147483648 đến +2147483647.

S7-200 sử dụng số decimal (không phải BCD) để xác định một hằng số kiểu dữ liệu Double Integer.

Ví dụ: Biểu diễn số +540809 và – 540809

14.1.3    Kiểu dữ liệu số thực (REAL)

Các kiểu dữ liệu INT và DINT được mô tả trước được sử dụng để lưu toàn bộ các giá trị số có dấu. Do đó, chỉ có các phép toán được cung cấp các giá trị số nguyên mới có thể thực hiện được.

Trong trường hợp các biến là analog như điện áp, dòng điện, và nhiệt độ thì các giá trị thực trở nên cần thiết. Để trình diễn các giá trị thập phân, các số nhị phân phải được định nghĩa là giá trị của nó nhỏ hơn 1 (lũy thừa của cơ số 2 với số mũ âm).

Để biểu diễn số thực S7-200 sử dụng double word (32 bit).Trong mã nhị phân của số thực, một phần của các chữ số nhị phân sử dụng cho phần thập phân, phần còn lại là để biểu diễn số mũ và dấu của số thực.

Phạm vi biểu diễn của số thực từ -1.175495•10-38 đến 3.402823•10+38

Khi sử dụng các giá trị của số thực, ta không cần phải xác định định dạng của nó. Khi nhập vào một hằng số là số thực thì ta bắt buộc phải nhập có thành phần thập phân cho dù phần thập là số 0, ví dụ 20.0.

Số thực được sử dụng để „xử lý giá trị analog„. Ưu điểm lớn của số thực là các phép toán được sử dụng với nó. Các phép toán này bao gồm: cộng, trừ, nhân, chia cũng như các lệnh sin, cos, exp, ln, v.v…, được sử dụng chính trong các thuật giải điều khiển vòng kín (closed-loop control algorithms).

Dạng tổng quát của số Real = (dấu) • (1.f) • (2e-127) với f: phần thập phân.

Ví dụ: Biểu diễn số 0.75

14.1.4    Kiểu dữ liệu số BCD (Binary Coded Decimal)

Trước đây, để liệt kê và mô tả các số nguyên được thực hiện đơn giản với các nút nhấn số dạng xoay vòng và bộ chỉ thị số. Các nút nhấn số và hiển thị số này được kết nối với các module vào và ra số của PLC.

Mỗi chữ số của số decimal được mã hóa ở bốn bit. Vì chữ số cao nhất của decimmal là 9 nên bốn bit được sử dụng và có mã nhị phân tương ứng cho các chữ số decimal như sau:

Để các số âm cũng có thể được xác định bằng nút nhấn số xoay vòng  mã BCD, thì S7-200 mã hóa dấu trong bit có trọng số cao nhất (most significant bit). Bit dấu = 0 để chỉ số dương. Bit dấu = 1 chỉ thị số âm. S7-200 chấp nhận các số BCD mã 16-bit (dấu + 3 digits) và mã 32-bit (dấu + 7 digits). Phạm vi biểu diễn của số BCD 16 bit từ – 999 đến + 999, phạm vi biểu diễn của số BCD 32 bit từ -9999999 đến + 9999999.

Không có định dạng dữ liệu cho việc xác định các giá trị theo mã BCD trong S7-200. Tuy nhiên ta có thể xác định số decimal với mã BCD được cho ở số HEX. Mã nhị phân của số HEX và số decimal mã BCD thì giống nhau.

Ví dụ: Biểu diễn số 662 ở BCD 16 bit và BCD 32 bit

14.2    Chức năng sao chép

    Với chức năng sao chép, nội dung của một vùng này sẽ được sao chép đến một vùng khác trong bộ nhớ. Việc trao đổi hay sao chép nội dung có thể thực hiện với một byte, một word, một double word hay một giá trị số hoặc  một mảng lớn dữ liệu từ vùng này sang vùng khác trong bộ nhớ.

  14.2.1   Các lệnh sao chép, trao đổi nội dung

Để sao chép các dữ liệu kiểu byte, word, double word kể cả số thực (real) từ nơi này đến nơi khác ta sử dụng lệnh Move.

Trong một số trường hợp cần tráo đổi nội dung của một byte (byte thấp và byte cao) trong một word ta sử dụng lệnh Swap.

Cú pháp của các lệnh ở STL như sau:

  • Lệnh MOVB IN,OUT: Lệnh Move Byte (MOVB) thực hiện sao chép nội

dung của byte IN sang byte OUT.

  • Lệnh MOVW IN,OUT: Lệnh Move Word (MOVW) thực hiện sao chép nội

dung của word IN sang word OUT

  • Lệnh MOVD IN,OUT: Lệnh Move Double Word (MOVD) thực hiện sao

chép nội dung của double word IN sang double word OUT.

  • Lệnh MOVR IN,OUT: Lệnh Move Real (MOVR) thực hiện sao chép nội

dung của một số thực IN sang số thực OUT.

  • Lệnh SWAP IN:            Lệnh Swap Byte (Swap) thực hiện tráo đổi nội

dung của byte thấp và byte cao trong word IN.

Cú pháp của các lệnh MOVE ở LAD và FBD có cấu trúc chung như sau:

  • OUT: Vị trí của nơi cần sao chép đến, có thể là byte, word, double word hoặc real tùy theo là B, W, D hay R.
  • EN:         Là ngõ vào bit. Cho phép thực hiện lệnh được viết ở LAD hoặc FBD. Trường hợp không cần thiết có điều kiện ở ngõ vào EN thì phải sử dụng SM0.0.
  • ENO: Ngõ ra bit. Cho phép kết nối song song hoặc nối tiếp với các hộp khác. Nếu phép toán xử lý không có lỗi thì EN=ENO.

giữ chuột trái, kéo và thả vào vị trí mong muốn. Nhập điều kiện cho ngõ vào EN, nếu lúc nào cũng thực hiện thì sử dụng bit nhớ SM0.0, Byte có nội dung cần sao chép đặt ở ngõ IN và byte chứa đựng thông tin sao chép chứa ở OUT.

Ví dụ: Copy ô nhớ số thực ở VD50 vào ô nhớ số thực VD60 khi M1.0 tích cực. Chương trình được viết như sau:

nhớ SM0.0, word cần tráo đổi nội dung giữa byte thấp và byte cao đặt ở ngõ IN.

Ví dụ: Ô nhớ VW40 có giá trị được biểu diễn ở số Hex là CAFE. Giá trị này sẽ được đảo lại thành FECA khi ngõ vào I2.0 được kích họat. Chương trình  được viết như sau:

14.2.2    Các lệnh sao chép một mảng lớn dữ liệu

Để sao chép một mảng lớn dữ liệu từ nơi này đến nơi khác ta sử dụng lệnh Block Move. Lệnh sao chép một mảng lớn cho phép thực hiện với Byte, Word và Double Word.

Cú pháp của các lệnh ở STL như sau:

  • Lệnh BMB IN,OUT,N: Lệnh Block Move Byte (BMB) sao chép nội dung của

một mảng Byte. Số lượng byte được sao chép xác định bởi N có kiểu byte. Do đó có thể sao chép tối đa là 255 byte. Byte đầu tiên của mảng được xác định ở ngõ IN (kiểu byte). Nơi đến được xác định với byte đầu tiên của mảng ở ngõ OUT.

  • Lệnh BMW IN,OUT,N: Tương tự như lệnh BMB, lệnh Block Move Word

(BMW) sao chép nội dung của một mảng word. Số lượng word được sao chép xác định bởi N có kiểu byte. Do đó có thể sao chép tối đa là 255 word. Word đầu tiên của mảng được xác định ở ngõ IN (kiểu word). Nơi đến được xác định với word đầu tiên của mảng ở ngõ OUT.

  • Lệnh BMD IN,OUT,N: Tương tự như lệnh BMB, lệnh Block Move Double

Word (BMD) sao chép nội dung của một mảng Double Word. Số lượng Double word được sao chép xác định bởi N có kiểu byte. Do đó có thể sao chép tối đa là 255 Double word. Double Word đầu tiên của mảng được xác định ở ngõ IN (kiểu Double word). Nơi đến được xác định với Double word đầu tiên của mảng ở ngõ OUT.

Cú pháp của các lệnh ở LAD và FBD có cấu trúc tổng quát như sau:

14.3    Phép toán so sánh

Với chức năng so sánh, giá trị của hai toán hạng của cùng kiểu dữ liệu sẽ được so sánh vớ i nhau. Kết quả của so sánh là một giá trị logic, nếu đúng theo chức năng so sánh thì kết quả logic là “1”, còn nếu sai kết quả logic là “0”. Tùy thuộc vào loại CPU của họ S7-200 mà có thể có ít hoặc nhiều chức năng so sánh.

Các chức năng so sánh đối CPU 22x có thể là:

Khi so sánh giá trị Byte (B) thì không cần phải để ý đến dấu của toán hạng, ngược lại khi so sánh là các số Int (I), Dint (D), Real (R) thì phải chú ý đến dấu của tóan hạng.  Cú pháp tổng quát cho phép tóan so sánh ở LAD là:

Vớ i:

X: là phép so sánh. Nó có thể là:

+ So sánh byte: >B, >=B, ==B, <>B, <B, <=B

+ So sánh số Int: >I, >=I, ==I, <>I, <I, <=I

+ So sánh số Dint: >D, >=D, ==D, <>D, <D, <=D

+ So sánh số Real: >R, >=R, ==R, <>R, <R, <=R

+ n1: Giá trị cần được so sánh (giá trị chưa biết).

+ n2: Giá trị so sánh (giá trị đã biết).

Đối với ngôn ngữ LAD và FBD, khi kết quả so sánh là đúng, thì lệnh so sánh sẽ đặt tiếp điểm (LAD) hoặc ngõ ra (FBD) ở trạng thái “ON”.

Đối với ngôn ngữ STL, khi kết quả so sánh là đúng thì lệnh so sánh Load, AND, hoặc OR giá trị 1 với giá trị ở đỉnh của ngăn xếp.

Để lấy các lệnh so sánh ở màn hình soạn thảo LAD, ta nhấp chuột vào dấu (+) ở biểu tượng  trong cây lệnh. Sau đó trỏ chuột vào một trong các lệnh cần lấy, giữ chuột trái, kéo và thả vào vị trí mong muốn. Nhập giá trị chưa biết theo lệnh cần so sánh (byte, word, double word) vào vị trí các dấu chấm hỏi nằm trên lệnh. Nhập giá trị đã biết (thường là các con số) hoặc giá trị được chứa trong các ô nhớ byte, word, double word vào vị trí các dấu chấm hỏi nằm dưới lệnh.

Ví dụ 14.2: Giới hạn giá trị.

Viết một chương trình thực hiện nhiệm vụ sau: Nếu giá trị ở MW20 nằm trong phạm vi (50;500) thì sẽ cho phép xuất giá trị ra ở ngõ ra MW22. Nếu giá trị ở MW20 lớn hơn giá trị 500 thì ngõ ra số MW22 là giá trị 500 và đèn báo giá trị max sáng. Nếu giá trị ở MW20 nhỏ hơn giá trị 50 thì ngõ ra số MW22 là giá trị 50 và đèn báo giá trị min sáng. Chú ý các ngõ vào ra số là Int. Giải:

14.4    Phép toán số học

Ở nhiều nhiệm vụ đếm như đếm sản phẩm, đếm số vòng quay, đếm xung .v.v… thì kết quả đếm phải được giám sát. Bên cạnh các phép tóan so sánh đã biết cần phải có thêm các phép toán số học như cộng, trừ, nhân, chia. Còn các phép toán khác như sin, cos, tan, PID …. sẽ được khảo sát ở tập 2 của bộ sách kỹ thuật điều khiển lập trình PLC SIMATIC S7-200.

14.4.1. Cộng và trừ

Các phép tóan cộng và trừ có thể thực hiện được đối với các số Integer (16 bit), Double integer (32 bit) và số thực (32 bit). Tùy thuộc vào phép tóan là cộng hoặc trừ dạng số nào mà kết quả thu được sẽ ở dạng số đó.

Khi có lỗ i do tràn hoặc giá trị không hợp lệ thì bit SM1.1 được set lên mức logic „1“.    Cú pháp lệnh biểu diễn cho phép toán cộng và trừ như sau:

14.4.2.     Nhân và chia

Các phép tóan nhân và chia có thể thực hiện được đối với các số Integer (16 bit), Double integer (32 bit) và số thực (32 bit). Tùy thuộc vào phép tóan là nhân hoặc chia dạng số nào mà kết quả thu được sẽ ở dạng số đó.

Khi có lỗ i do tràn hoặc giá trị không hợp lệ thì bit SM1.1 được set lên mức logic „1“. Nếu kết quả là zero thì SM1.0 =”1”, kết quả âm thì SM1.2 =”1”, và SM1.3 =”1” nếu chia cho 0.  Cú pháp lệnh biểu diễn cho phép toán nhân và chia như sau:

14.4.3. Ví dụ phép toán số học

Ví dụ 14.3: Đếm sản phẩm

Sản phẩm trên một băng tải được nhận biết bở i cảm biến S1. Tổng số lượng sản phẩm đếm được chứa trong MD20. Cứ 10 sản phẩm sẽ được đóng thành mộ t thùng và số lượng thùng được chứa trong MD24. Số lượng sản phẩm có thể bị xóa bằng nút nhấn S2.

14.5    Tăng và giảm thanh ghi

Tăng và giảm là mộ t hình thức khác của quá trình đếm. Lệnh tăng hoặc giảm cộng 1 với ngõ vào hoặc lấy ngõ vào trừ 1 và kết quả được đưa ra ngõ ra.  L ệ nh tăng hoặc giảm thực hiện được với byte, word và double word.

Biểu diễn tổng quát ở LAD: với xxx_y có thể là:

• INC_B (tăng byte), INC_W (tăng word), INC_DW (tăng double word).

• DEC_B (giảm byte), DEC_W (giảm word), DEC_DW (giảm double word).

Ý nghĩa:  

Tăng: IN + 1 = OUT

* Giảm: IN -1 = OUT

giữ chuột trái, kéo và thả vào vị trí mong muốn. Nhập điều kiện cho ngõ vào EN, nếu lúc nào cũng thực hiện thì sử dụng bit nhớ SM0.0. Nhập các biến cần tăng hoặc giảm ngõ IN.  Nhập biến chứa kết quả ở ngõ OUT. (thông thường ngõ vào và ra có chung một biến).

Ví dụ 14.4: Hãy viết một chương trình con cho khâu tăng giảm tốc độ động cơ trên màn hình điều khiển TP170micro để khi ấn phím (+) thì tốc độ động cơ tăng dần lên, còn khi ấn phím (-) thì tốc độ động cơ giảm dần xuống.

Nhằm giúp cho bạn đọc dễ hiểu, cứ mỗ i lần ấn mộ t phím (+) hoặc phím (-) thì tốc độ động cơ tăng hoặc giảm đi một vòng quay. Ở đây có thể có nhiều phương pháp nhưng chỉ giới hạn kiến thức cơ bản trong quyển sách, còn các kiến thức nâng cao xin bạn đọc tập 2.

14.6. Các phép tóan logic số

14.6.1 Các logic số trong S7-200

Phép toán logic số sẽ thực hiện theo từng bit của hai tóan hạng số tương ứng hay một tóan hạng số với một hằng số. Các phép logic số có thể liệt kê ở bảng sau:

Các lệnh logic số là:

* Lệnh đảo byte (INVB), đảo word (INVW), đảo double word (INVD) sẽ đảo các bit ở ngõ vào IN và kết quả được đưa ra ngõ OUT.

  • Lệnh AND Byte (ANDB), AND Word (ANDW), và AND Double Word (ANDD) thực hiện AND các bit tương ứng của hai giá trị ngõ vào IN1 và IN2 và kết quả được đưa ra OUT.
  • Lệnh OR Byte (ORB), OR Word (ORW), và OR Double Word (ORD) thực hiện OR các bit tương ứng của hai giá trị ngõ vào IN1 và IN2 và kết quả được đưa ra OUT.
  • Lệnh XOR Byte (XORB), XOR Word (XORW), và XOR Double Word (XORD) thực hiện XOR các bit tương ứng của hai giá trị ngõ vào IN1 và IN2 và kết quả được đưa ra OUT.

giữ chuột trái, kéo và thả vào vị trí mong muốn. Nhập điều kiện cho ngõ vào EN, nếu lúc nào cũng thực hiện thì sử dụng bit nhớ SM0.0. Nhập các biến cần tăng hoặc giảm ngõ IN. Nhập biến chứa kết quả ở ngõ OUT. (thông thường ngõ vào và ra có chung một biến).

14.6.2.      Ứng dụng
14.6.2.1    Che vị trí các bit

Một ứng dụng của phép tóan AND số là che vị trí bit. Để làm ẩn đi những vị trí bit không cần thiết hoặc không muốn xuất hiện thì ta sử dụng mặt nạ, ở những vị trí bit cần thiết ta cho giá trị “1“ và làm ẩn những bit không cần thiết bằng cách cho bit tương ứng giá trị „0“. Ví dụ ta cần lấy 4 bit cuối cùng của VW100 thì ta sẽ OR VW100 với mặt nạ sau: 0000 0000 0000 1111 và kết quả được chứa vào VW200.

Chương trình:

14.6.2.2 Chèn thêm bit

Một ứng dụng của phép tóan OR số là chèn bit. Muốn cho bit nào trong thanh ghi lên mức “1” thì ta sẽ OR ở bit tương ứng với giá trị 1. Ví dụ ta muốn 4 bit cuối của VW100 có giá trị „1“ thì ta sẽ OR nó với giá trị sau: 0000 0000 0000 1111.

Chương trình:

14.7     Chức năng dịch/quay thanh ghi

14.7.1   Chức năng dịch chuyển thanh ghi

Với chức năng dịch chuyển thanh ghi, các bit của biến sẽ được dịch về bên phải hay bên trái theo một giá trị xác định. Tùy theo việc dịch chuyển thanh ghi là 1 Byte, 1 word hay 1 double word mà giá trị dịch có thể tối đa là 8, 16 hay 32.

Nếu có thực hiện phép toán dịch (khác 0) thì nội dung của bit sau cùng thoát ra khỏi thanh ghi được chứa trong ô nhớ SM1.1. Còn nếu sau khi thực hiện phép dịch mà kết quả thu được của các thanh ghi là 0 thì ô nhớ SM1.0 được hệ điều hành đặt giá trị là 1.

Trong PLC họ S7-200, ngoài ngôn ngữ được biểu diễn theo chuẩn IEC 1131-3, còn có ngôn ngữ được biểu diễn theo chuẩn của hãng sản xuất (Siemens). Các lệnh dịch chuyển thanh ghi được cho như sau:

  • Ở phép toán dịch trái, cho phép dịch byte, word và double word. Cú pháp chung biểu diễn ỏ LAD là:

* EN, ENO: Xem mục 14.2.1

Cú pháp chung biểu diễn ỏ STL là:

  • Dịch trái byte:             SLB OUT, N
  • Dịch trái word:             SLW OUT, N
  • Dịch trái double word: SLD OUT, N

Chú ý: Ở STL, thì kết quả sau phép dịch trái sẽ được chứa vào chính thanh ghi cần dịch.

Ví dụ: Khi bit M10.0 từ “0”‡ “1” thì yêu cầu dịch trái byte VB10 đi 3 vị trí, kết quả chứa vào VB10.

  • Ở phép toán dịch phải, cho phép dịch byte, word và double word.
  • Cú pháp chung biểu diễn ỏ LAD là:

*   N: Số lượng bit cần dịch phải.

                                                   Tùy theo dịch byte, word hay double word mà N có giá trị max là 8, 16, 32.

                                          *  EN, ENO: Xem mục 14.2.1

Cú pháp chung biểu diễn ỏ STL là:

  • Dịch phải byte:                                SRB   OUT, N
  • Dịch phải word:                                SRW  OUT, N
  • Dịch phải double word:                    SRD OUT, N

Chú ý: Ở STL, thì kết quả sau phép dịch phải sẽ được chứa vào chính thanh ghi cần dịch.

giữ chuột trái, kéo và thả vào vị trí mong muốn. Nhập điều kiện cho ngõ vào EN, nếu lúc nào cũng thực hiện thì sử dụng bit nhớ SM0.0. Nhập các biến cần dịch ở ngõ IN. Số bit cần dịch ở ngõ N. Nhập biến chứa kết quả ở ngõ OUT. (thông thường ngõ vào và ra có chung một biến).

14.7.2    Chức năng quay thanh ghi

Với chức năng quay thanh ghi, các bit của biến (byte, word, double word) sẽ được đẩy vòng tròn sang phải hay sang trái theo một giá trị xác định. Tại mỗi một lần quay, giá trị logic của bit bị đẩy ra khỏi đầu này cũng là giá trị logic được đưa vào đầu kia của biến.

Lệnh quay sẽ không thực hiện được nếu như số đếm lần quay có giá trị bằng 0 hay là bằng bội số của 8 đối với quay byte, 16 đối với word hay 32 đối với double word.

Đối với các giá trị khác của số đếm lần quay lớn hơn 8 (đối với byte), lớn hơn 16 (đối với word) hoặc 32 (đối với double word), thì lệnh sẽ thực hiện với số đếm lần quay mới bằng phần dư của số lần quay cũ chia cho 8, 16 hoặc chia cho 32.

Nếu có thực hiện phép toán quay (khác 0) thì nội dung của bit sau cùng thoát ra khỏi thanh ghi được chứa vào ô nhớ SM1.1. Còn nếu sau khi thực hiện phép quay mà kết quả thu được của các thanh ghi là 0 thì ô nhớ SM1.0 được hệ điều hành đặt giá trị là 1.

Trong PLC họ S7-200, ngoài ngôn ngữ được biểu diễn theo chuẩn IEC 1131-3, còn có ngôn ngữ được biểu diễn theo chuẩn của hãng sản xuất (Siemens). Các lệnh quay thanh ghi được cho như sau:

  • Ở phép toán quay trái, cho phép quay byte, word và double word. Cú pháp chung biểu diễn ỏ LAD là:

Với: 

  • x: Có thể là B (Byte), W (Word), DW (Double word).
  • IN: Thanh ghi cần quay trái có thể Byte, Word hoặc Double word.
  • OUT: Nơi lưu trữ giá trị sau khi quay trái. có thể Byte, Word hoặc Double word.
  • N: Số lượng bit cần quay trái.
  • EN, ENO: Xem mục 14.2.1

Cú pháp chung biểu diễn ỏ STL là:

  • Quay trái byte:                        RLB   OUT, N
  • Quay trái word:                        RLW  OUT, N
  • Quay trái double word:            RLD OUT, N

Chú ý: Ở STL, thì kết quả sau phép quay trái sẽ được chứa vào chính thanh ghi cần quay.

giữ chuột trái, kéo và thả vào vị trí mong muốn. Nhập điều kiện cho ngõ vào EN, nếu lúc nào cũng thực hiện thì sử dụng bit nhớ SM0.0. Nhập các biến cần quay ở ngõ IN. Số bit cần quay ở ngõ N. Nhập biến chứa kết quả ở ngõ OUT. (thông thường ngõ vào và ra có chung một biến).

14.7.2.2    Quay phải

Tương tự như ở phép toán quay trái, ở phép toán quay phải cho phép quay byte, word và double word.

Cú pháp chung biểu diễn ỏ LAD là:

Với:    

  • x: Có thể là B (Byte), W (Word), DW (Double word).
  • IN: Thanh ghi cần quay phải có thể Byte, Word hoặc Double word.
  • OUT: Nơi lưu trữ giá trị sau khi quay phải. có thể Byte, Word hoặc Double word.
  • N: Số lượng bit cần quay phải.
  • EN, ENO: Xem mục 14.2.1 Cú pháp chung biểu diễn ỏ STL là:
  • Quay phải byte:                       RLB   OUT, N
  • Quay phải word:                      RLW  OUT, N
  • Quay phải double word:           RLD OUT, N

Chú ý: Ở STL, thì kết quả sau phép quay phải sẽ được chứa vào chính thanh ghi cần quay.

The post PLC S7 200_Bài 14: Các phép toán cơ bản trong điều khiển số appeared first on Cách Dùng.

]]>
https://cachdung.com/blog/cac-phep-toan-co-ban-trong-dieu-khien-so.html/feed 0