del_modbus_signal (Manual Mode)

This section explains how to use del_modbus_signal during Manual (Teach) operations to unregister previously created Modbus symbols after testing PLC or inverter communication in 3.2.3 Communication.

Typical usage

  • Clean up symbolic Modbus tags created via add_modbus_signal.

  • Prevent duplicate symbol registration or memory leaks during repeated manual tests.

  • Maintain a consistent Modbus tag list for teaching and debugging.

Note

  • Always call this function after finishing tests to release the Modbus entry.

  • Use query_modbus_data_list to verify that symbols were properly removed.

Example: Register, test, and remove Modbus symbols

// Preconditions:
// - Connection established (open_connection)
// - Manual (Teach) mode, servo/safety OK
// - External PLC/inverter reachable

// 1) Register test symbols
drfl.add_modbus_signal("PLC_READY",     "192.168.0.10", 502,
                       MODBUS_REGISTER_TYPE_DISCRETE_INPUT, 0, 0);
drfl.add_modbus_signal("PLC_START",     "192.168.0.10", 502,
                       MODBUS_REGISTER_TYPE_COIL, 1, 0);
drfl.add_modbus_signal("INV_SPEED_CMD", "192.168.0.10", 502,
                       MODBUS_REGISTER_TYPE_HOLDING_REGISTER, 100, 0, 1);

// 2) Perform a brief test
bool ready = drfl.get_modbus_input("PLC_READY");
printf("[READY] = %s\n", ready ? "ON" : "OFF");

drfl.set_modbus_output("INV_SPEED_CMD", 1500);
drfl.set_modbus_output("PLC_START", 1);
std::this_thread::sleep_for(std::chrono::milliseconds(50));
drfl.set_modbus_output("PLC_START", 0);

// 3) Remove symbols after testing
bool ok = true;
ok &= drfl.del_modbus_signal("PLC_READY");
ok &= drfl.del_modbus_signal("PLC_START");
ok &= drfl.del_modbus_signal("INV_SPEED_CMD");

if (ok) printf("[Modbus] Symbols successfully deleted.\n");
else    printf("[Modbus] One or more deletions failed.\n");

Tips

  • Always remove all temporary symbols to avoid namespace clutter.

  • If deletion fails, check for typos or ensure the symbol is not actively in use.

  • Re-run query_modbus_data_list to confirm successful cleanup.