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.
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
Business Connector dùng B2MML, theo Sepasoft là bản hiện thực
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
- Sepasoft, Business Connector product page, Web Services product page và Interface for SAP ERP product page
- Sepasoft, ERP Connectivity Tutorial, MES module tutorials
- Sepasoft, Building Charts, Blocks and Action Blocks, Script Block và system.mes.bc.executeChart, hướng dẫn sử dụng MES Module Suite
- Sepasoft, Mapping, Mapping to B2MML Structures, Understanding B2MML và Verify MES Object Block
- Sepasoft, Exception Block và SAP RFM Action Block
- Sepasoft, Web Services Module, RESTful Endpoints, SOAP Endpoints và RESTful Configuration
- Sepasoft, Interface for SAP ERP và Business Connector Server, hướng dẫn sử dụng MES Module Suite
- Sepasoft, MES Counters và Settings and Changeover, hướng dẫn sử dụng MES Module Suite
- Inductive Automation, Types of Tags và Gateway Event Scripts, hướng dẫn sử dụng Ignition 8.1
Đọ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.