Trang chủ › Bài kỹ thuật

Read in English

Sepasoft Business Connector và Web Services: nối ERP, SAP với MES trên Ignition, mapping B2MML và xử lý lỗi

TDL Industrial Automation · Cập nhật lần cuối:

Theo hướng dẫn sử dụng MES Module Suite và trang sản phẩm của Sepasoft: Business Connector, Web Services và Interface for SAP ERP làm gì, lệnh sản xuất và vật tư xuống module MES thế nào, kết quả lên ERP ra sao, chart, mapping B2MML, Save MES Object, block Exception, endpoint REST và SOAP, kiểu RFC của SAP.

Lệnh sản xuất và danh mục vật tư thường nằm trong ERP, còn số liệu dây chuyền thực sự làm được nằm ở cấp nhà máy. Trên Ignition, Sepasoft, Inc. nối hai bên bằng ba module: Business Connector chạy các tích hợp vẽ dưới dạng chart; Web Services gọi và cung cấp giao diện REST, SOAP; Interface for SAP ERP bổ sung kết nối SAP cho Business Connector. Bài này giải thích, theo hướng dẫn sử dụng MES Module Suite và các trang sản phẩm của Sepasoft, lệnh sản xuất và vật tư đi xuống các module MES thế nào, kết quả đi ngược lên ra sao, lỗi được xử lý thế nào, và những gì chúng tôi chốt với nhóm ERP trước khi dựng bất cứ thứ gì. Chọn module Sepasoft theo bài toán nhà máy: xem bài Chọn module Sepasoft MES.

Từ ERP xuống dây chuyền và ngược lênBốn lớp từ trên xuống: ERP hoặc SAP; Business Connector và Web Services trên gateway Ignition; các module MES của Sepasoft; tag Ignition và PLC. Giữa mỗi hai lớp có một mũi tên đi xuống và một mũi tên đi lên, ghi dữ liệu đi theo từng chiều. Theo hướng dẫn sử dụng MES Module Suite và trang sản phẩm của Sepasoft, và hướng dẫn sử dụng Ignition 8.1.Từ ERP xuống dây chuyền và ngược lênđi xuốngđi lênERP hoặc SAPcấp 4 ISA-95SAP: gọi qua RFCERP khác: web service REST hoặc SOAPlệnh sản xuất, vật tưkết quả sản xuấtBusiness Connectorvà Web Servicestrên gateway Ignitionchart gồm các block, mapping sang B2MMLInterface for SAP ERP thêm block SAPchạy theo lịch, khi tag đổi, web service gọi hoặc scriptblock Exception chuyển hướng lỗiSave MES Objectscript system.mesModule MEScấp 3 ISA-95MES object: lệnh sản xuất, vật tư, lịch công đoạnOEE, Track and Trace, Settings and Changeoversetpointsố đếmTag Ignition và PLCdữ liệu dây chuyềnMES counter lấy số đếm từ tagtag OPC từ PLC làm setpointTheo Sepasoft, hướng dẫn sử dụng MES Module Suite và trang sản phẩm;Inductive Automation, hướng dẫn sử dụng Ignition 8.1 (đọc 13/11/2026). Hình: TDL tự vẽ.
Hình 1: Từ ERP xuống dây chuyền và ngược lên. Trên điện thoại, vuốt ngang để xem hết hình.

1. Ba module

Sepasoft chia phần kết nối ERP thành ba module dưới đây. Bản thân Ignition là nền tảng của Inductive Automation; các module được cài lên gateway Ignition.

Module Chức năng, theo Sepasoft Cài trên
Business Connector dựng tích hợp giữa Ignition và hệ thống doanh nghiệp bằng chart kéo thả, chuyển đổi và ánh xạ (mapping) dữ liệu gateway Ignition
Web Services gọi (consumer) và cung cấp (provider) web service RESTful và SOAP; dùng từ Business Connector hoặc dùng riêng bằng script trong Ignition gateway Ignition
Interface for SAP ERP thêm các action block SAP cho Business Connector, kết nối tới SAP chạy tại chỗ (on-premises) qua giao thức RFC của SAP gateway Ignition, đã cài Business Connector

Business Connector dùng được với cả module MES 2.x lẫn MES 3.x, nhưng khi đi với MES 2.x thì các block thao tác MES object, như Verify MES Object và Save MES Object, không dùng được.

2. Cái gì đi xuống, cái gì đi lên

Bài hướng dẫn kết nối ERP của Sepasoft mô tả hai chiều. Chiều xuống (southbound), một lệnh sản xuất tạo trong ERP được kéo về lớp MES, lớp này báo cho lớp SCADA và HMI biết làm gì và khi nào. Chiều lên (northbound), khi lệnh hoàn tất, MES đẩy ngược về ERP những gì đã diễn ra trong lúc sản xuất. Đây là ranh giới ISA-95 giữa cấp 4 và cấp 3; các nhóm thông tin đi qua ranh giới này có trong bài ISA-95.

Business Connector dùng B2MML, theo Sepasoft là bản hiện thực ISA-95 (IEC/ISO 62264) bằng XML. Trong ví dụ trao đổi điển hình của Sepasoft, một object production performance chứa các production response, và các segment response bên trong mang số lượng sản xuất đo được và lượng vật tư tiêu hao.

Bên dưới các module MES, dữ liệu dây chuyền đi qua tag Ignition. Một MES counter lấy số đếm từ một tag Ignition, có thể là bộ đếm trong PLC, tag nhớ (memory tag) hoặc giá trị SQL, còn Settings and Changeover có thể dùng tag OPC từ PLC làm setpoint. Trong Ignition 8.1, tag OPC được cấp giá trị qua một OPC server và một OPC item path, là đường dẫn tới một kết nối thiết bị.

3. Dựng và khởi chạy chart

Sepasoft mô tả chart là một lưu đồ cấu hình được cho dữ liệu đi giữa hệ thống doanh nghiệp và Ignition server, tức là các module MES, tag Ignition hoặc cả hai. Chart được tạo trong Ignition Designer, ở vùng Global của Project Browser, mục Business Connector. Các block được đặt lên lưới thiết kế và nối bằng mũi tên thành trình tự tuần tự, rẽ nhánh hoặc lặp. Các block Sepasoft liệt kê gồm Start, Decision, Iteration, Exception, Script, Enclosing Chart, End, Aggregation, Verify MES Object, Save MES Object, SAP BAPI Action, SAP RFM Action, SOAP Action và RESTful Action.

Sepasoft nhấn mạnh một điểm: mũi tên chỉ chuyển quyền thực thi từ block này sang block kế. Dữ liệu đi riêng, qua phần mapping của từng block giữa schema của hệ thống doanh nghiệp, cấu trúc B2MML và các tham số chart (chart parameter) khai báo ở Start Block. Script Block đọc, ghi được các tham số đó và dùng được thư viện hàm system.mes, chủ yếu làm việc với MES object.

Trang sản phẩm của Sepasoft nêu bốn cách khởi chạy chart: theo lịch, khi tag thay đổi, khi có lời gọi web service, hoặc từ một hàm script. Trong script, system.mes.bc.executeChart, gọi với đường dẫn chart và có thể kèm dictionary tham số, chạy chart và trả về ngay, không chờ chart chạy xong; system.mes.bc.executeChartSynchronous là bản có chờ, và dạng có kèm danh sách tham số cần trả về sẽ chờ rồi trả các tham số đó dưới dạng dictionary. Truyền vào một tham số mà Start Block không khai báo sẽ phát sinh exception. Trong Ignition 8.1, gateway event script có loại Timer, Tag Change và, từ bản 8.1.6, Scheduled, và chúng chạy trên gateway dù có client nào đang mở hay không.

4. Từ dữ liệu ERP thành MES object

Trang sản phẩm của Sepasoft nêu OEE, Settings and Changeover và Track and Trace là các module nhận dữ liệu đã ánh xạ, như lịch sản xuất và định nghĩa vật tư; Track and Trace dùng lô và công đoạn thế nào: xem bài Sepasoft Track and Trace. Khung mapping có hai tab. Input ánh xạ dữ liệu của hệ thống doanh nghiệp, hoặc một chart parameter, vào cấu trúc B2MML hay chart parameter; Output ánh xạ cấu trúc B2MML hay chart parameter ngược về hệ thống doanh nghiệp. Mỗi kết nối mapping có thể kèm một script Python để làm sạch, đổi kiểu, lọc hoặc kiểm dữ liệu, và nhiều thuộc tính nguồn có thể đổ vào một đích, ví dụ ghép loại vật tư và mô tả thành một chuỗi mô tả. Nối hai thuộc tính khác kiểu dữ liệu vẫn được, nhưng phải viết script đổi kiểu. Thuộc tính đích đánh dấu Required phải được nối, hoặc đã kiểm là thực ra không cần, nếu không chart sẽ báo lỗi khi chạy; có trường hợp chỉ cần nối một trong vài thuộc tính Required.

Nhiều cấu trúc B2MML ánh xạ được, trong đó có ProductionSchedule, ProductionPerformance, OperationsPerformance, Equipment, Personnel và PhysicalAsset. Tuy vậy, block Save MES Object chỉ tạo MES object từ năm cấu trúc:

Cấu trúc Loại Mapping tối thiểu theo Sepasoft
WorkOrder cấu trúc MES, không phải B2MML tên, mã định nghĩa vật tư (material definition ID), số lượng và hạn hoàn thành
Material B2MML material class ID cho một class, material definition ID cho một definition
OperationsSchedule B2MML ID lịch, ID operations definition, và thời điểm bắt đầu và kết thúc hoặc thời điểm bắt đầu và số lượng
OperationsDefinition B2MML trang không nêu
ProcessSegment B2MML trang không nêu

Block Verify MES Object kiểm một dòng trước khi lưu: block này không tạo gì, và chuyển những dòng không đủ để thành MES object hợp lệ sang ngõ No, thường nối tới một script xử lý lỗi hoặc vòng lặp kế tiếp của block Iteration.

5. Lỗi và gọi lại

Block Exception kiểm xem chart đã phát sinh lỗi chưa và chuyển quyền thực thi sang ngõ Yes hoặc No. Các ví dụ của Sepasoft cho thấy hai cách xử lý: bỏ bước lưu và kết thúc chart, hoặc sửa dữ liệu sai hay rỗng trong một Script block rồi mới lưu. Một chart có thể đặt nhiều block Exception ở nhiều chỗ; trong ví dụ của Sepasoft, mỗi nhánh lỗi gán một tham số cờ (flag) được trả về cho script đã gọi chart, nhờ đó script biết bước nào lỗi và đã có object nào được tạo chưa. Khi chạy thử, Sepasoft gợi ý nâng logger thực thi chart trên gateway từ INFO lên DEBUG.

Ở phía web service, một RESTful consumer có thời gian chờ (timeout), số lần gọi lại tối đa khi mất kết nối (mặc định 3), và tùy chọn phát sinh exception khi lời gọi trả về mã lỗi HTTP như 404. Với lời gọi SAP, kiểu RFC quyết định chuyện gì xảy ra khi SAP không sẵn sàng: với sRFC, hệ thống nhận phải sẵn sàng ngay lúc gọi; tRFC thực thi hàm đúng một lần và giữ lời gọi trong hàng đợi cục bộ khi chưa tới được SAP; qRFC giống tRFC và còn giữ đúng thứ tự các lời gọi.

6. Ignition làm nhà cung cấp web service

Với Web Services, ERP hay hệ thống khác cũng có thể gọi vào gateway Ignition, không chỉ chờ Ignition gọi. RESTful endpoint nằm dưới đường dẫn /main/system/ws/rest, trả lời GET, POST, PUT và DELETE bằng một script Python cho mỗi phương thức, theo dạng JSON hoặc XML. SOAP endpoint nằm dưới /main/system/ws/soap, nhập hoặc xuất được file WSDL, và WSDL có tại địa chỉ endpoint thêm ?wsdl. Cả hai loại endpoint có thể chuyển HTTP thường sang cổng SSL của gateway và có thể bắt xác thực HTTP Basic theo một user source của Ignition, có thể giới hạn theo role; thiếu thông tin đăng nhập trả về 401, sai thì trả về 403. Ở vai consumer, cấu hình RESTful hỗ trợ HTTP Basic, Digest, NTLM và OAuth, chọn được cách gửi OAuth (OAuth strategy) từ bản 3.81.10 SP7.

7. SAP qua Interface for SAP ERP

Interface for SAP ERP gọi được mọi hàm cho phép gọi từ xa (remote-enabled function module, RFM) của hệ SAP và lấy danh sách BAPI có sẵn từ Business Object Repository của SAP, hỗ trợ sRFC, tRFC và qRFC. Hướng dẫn của Sepasoft ghi phải làm việc với nhóm SAP từ sớm và liệt kê những gì nhóm SAP cần cấp: thư viện SAP JCo đúng hệ điều hành và kiến trúc của máy chủ chạy gateway Ignition, một user SAP có quyền gọi các BAPI và RFM dự án cần, cùng host, system number và client của máy chủ SAP phát triển. Từ bản 3.81.10 RC1, Business Connector còn làm được server, nên SAP có thể gọi một hàm để chạy chart: chart chạy đồng bộ, chiều này chỉ hỗ trợ lời gọi sRFC, và lỗi được trả về SAP trong cấu trúc RETURN.

Những gì TDL kiểm trước

Đây là cách làm của chúng tôi, không phải yêu cầu của Sepasoft:

  • Ai giữ dữ liệu gốc. Chúng tôi lập danh sách hệ thống nào giữ mã vật tư, số lệnh sản xuất và số lô, và kiểm các mã ERP gửi xuống có đủ phần mapping tối thiểu mà Save MES Object cần không.
  • Từng bản tin và chiều đi. Chúng tôi ghi từng bản tin kèm chiều đi, điều kiện kích hoạt (lệnh được phát hành, lệnh hoàn tất, lần hỏi theo lịch) và ERP kéo dữ liệu từ Ignition hay Ignition gọi sang ERP.
  • Hàng đợi lỗi. Chúng tôi thống nhất bản tin lỗi nằm chờ ở đâu, báo cho ai và ai gửi lại, trước khi dựng chart đầu tiên. Block Exception chỉ chuyển hướng lỗi: nhà máy vẫn cần một người chịu trách nhiệm xử lý.
  • Hệ thử ở cả hai phía. Chúng tôi kiểm có sẵn một ERP hoặc client SAP phát triển, để chạy thử chart mà không đụng tới lệnh sản xuất thật.

TDL tiếp cận thế nào

TDL Industrial Automation là Sepasoft MES Certified Integrator và Ignition Certified Integrator. TDL khảo sát phạm vi, cấu hình các module Sepasoft trên Ignition và kết nối chúng với PLC của dây chuyền, để trạng thái máy, số đếm, cảnh báo và giá trị công thức lấy từ bộ điều khiển hiện hữu. Thêm về dịch vụ này: MES trên Ignition với Sepasoft.

Câu hỏi thường gặp

Web Services có cần Business Connector không?

Không. Sepasoft mô tả Web Services dùng được cùng Business Connector hoặc dùng riêng bằng script trong Ignition. Ngược lại, Interface for SAP ERP là module bổ sung cần có Business Connector.

Chart Business Connector tạo được những MES object nào?

Block Save MES Object tạo được object WorkOrder, Material, OperationsSchedule, OperationsDefinition và ProcessSegment. Các cấu trúc B2MML khác ánh xạ được nhưng block này không lưu chúng thành MES object.

SAP có tự khởi động việc truyền dữ liệu sang Ignition được không?

Được, từ bản 3.81.10 RC1. SAP gọi một hàm để chạy chart Business Connector theo kiểu đồng bộ; chiều này chỉ hỗ trợ lời gọi sRFC, và lỗi được trả về SAP trong cấu trúc RETURN.

Khi lời gọi sang ERP thất bại thì sao?

Block Exception trong chart chuyển quyền thực thi sang phần xử lý lỗi. RESTful consumer gọi lại khi mất kết nối, mặc định 3 lần, còn lời gọi SAP kiểu tRFC nằm trong hàng đợi cục bộ khi chưa tới được SAP.

Chart có chạy khi không mở client Ignition nào không?

Gateway event script của Ignition, như Timer, Tag Change và Scheduled, chạy trên gateway dù có client nào đang mở hay không, nên chart khởi chạy từ các script này không phụ thuộc vào client.

Nguồn

Đọc ngày 13/11/2026. Bài viết diễn giải, không trích nguyên văn; đọc tài liệu gốc trước khi thiết kế hoặc thao tác.

Dịch vụ liên quan:
Ignition (Inductive Automation) Sepasoft MES trên Ignition