Workflow
The same procedure runs in the application and in knxprogram. They share their code.
1. Prepare
- Open the project and make sure the device you want to load exists in it, with the settings you want (parameters and group address links).
- Connect to the gateway. In the application, switch on Allow sending.
- Know the serial number of the target device. Read it with
knxprobe -info DEVor the application’s Diagnostics. - For a new device without an address: press its programming button. It answers at
15.15.255.
2. Check (reads only)
Application: Programming > Check device.
Command line: run knxprogram without -write.
The check:
- reads the mask, manufacturer and serial number from the device and compares them with the program and with what you expect;
- saves a backup of the memory. The file is named
backup-<serial>-<date>-<time>.txt. For System B devices the memory of the loaded segments is not read unless you ask (-full-backup), because those devices answer slowly; their sizes and checksums are saved instead; - builds the image the device should hold and the plan of operations;
- compares the image with the device: how many octets (or load images) differ, and which.
Read the output. A device that already holds the settings shows no differences. Read the warnings. The steps list is the exact sequence of operations.
You can also run knxdownload beforehand. It prints the plan and compares the image with the
device, and it can never write.
3. Write
Application: type the target address in the write box and click Write to the device.
Command line: add -write and -backup DIR.
The run:
- assigns the individual address first, if you said the device is new;
- checks the device again;
- performs the plan. The operations depend on the mask: load state machine commands, property and memory writes, and a restart where the procedure calls for one;
- waits for the device to come back and reads it again to verify. For an IP router, the gateway is the router itself,
so
knxprogramconnects again after the restart.
4. Verify
The load verifies itself: after the restart it compares the image with the device and reports the number of differing octets. A few octets that the device changes at runtime are ignored. For System B devices, the size and checksum of each load image are compared.
Check the device works as intended, with the monitor or on site.
If it stops half way
- Do not remove power or the bus connection while it runs.
- If a load stops, the device may be without its application. Run the check again, then write again.
- The backup file is a record of the memory before the load. There is no restore command.
Time limits
knxprogram stops after 15 minutes. Some System B devices need more than 30 seconds to come back from a restart, and
an IP interface answers about every 3 to 10 seconds to extended memory reads; this is why such devices are not read
fully for the backup unless asked.