47#ifndef PROTOCORE_EUROMAP77_H
48#define PROTOCORE_EUROMAP77_H
52#if PC_ENABLE_EUROMAP77
58#define EUROMAP77_NS_URI "http://www.euromap.org/euromap77/"
60#define EUROMAP83_NS_URI "http://www.euromap.org/euromap83/"
66enum class EmMachineMode : int32_t
69 EM_MODE_AUTOMATIC = 1,
70 EM_MODE_SEMI_AUTOMATIC = 2,
80enum class EmJobStatus : int32_t
83 EM_JOB_TRANSFERRED_ASSIGNED = 1,
84 EM_JOB_SET_UP_ACTIVE = 2,
85 EM_JOB_SET_UP_INTERRUPTED = 3,
86 EM_JOB_SET_UP_FINISHED = 4,
87 EM_JOB_START_UP_ACTIVE = 5,
88 EM_JOB_IN_PRODUCTION = 6,
89 EM_JOB_INTERRUPTED = 7,
91 EM_JOB_TEAR_DOWN_ACTIVE = 9,
92 EM_JOB_TEAR_DOWN_INTERRUPTED = 10,
93 EM_JOB_TEAR_DOWN_FINISHED = 11,
97struct EmMachineInformation
99 const char *manufacturer;
101 const char *serial_number;
102 const char *product_code;
103 const char *hardware_revision;
104 const char *software_revision;
105 const char *device_revision;
106 const char *manufacturer_uri;
110struct EmMachineStatus
113 EmMachineMode machine_mode;
119 const char *job_name;
120 const char *job_description;
121 const char *material;
122 const char *product_name;
123 const char *mould_id;
124 double expected_cycle_time;
125 uint32_t num_cavities;
126 uint64_t nominal_parts;
130struct EmActiveJobValues
132 uint64_t job_cycle_counter;
133 uint64_t machine_cycle_counter;
134 double last_cycle_time;
135 double average_cycle_time;
136 uint64_t job_parts_counter;
137 uint64_t job_good_parts_counter;
138 uint64_t job_bad_parts_counter;
139 EmJobStatus job_status;
150 EmMachineInformation info;
151 EmMachineStatus status;
152 EmActiveJob active_job;
153 EmActiveJobValues active_job_values;
160void pc_em77_bind(
const EmImm *imm);
167bool pc_em77_read(uint16_t ns, uint32_t
id, uint32_t attribute, OpcUaVariant *out);
175int32_t pc_em77_browse(uint16_t ns, uint32_t
id, OpcUaReference *out, uint32_t max);
181void pc_em77_install(
const EmImm *imm);
OPC UA Binary server: handshake + SecureChannel + Session + Read/Write + Browse (PC_ENABLE_OPCUA).
User-facing configuration for ProtoCore.