I have no knowledge of Modbus -ZPROS, but I suspect that Modbus-whatever is a combination of publicly documented function codes (from Modbus.org) AND some private, proprietary function codes, designed for a manufacturer's specific tasks. Hopefully the private function codes occupy those function code values allocated for private codes.
I have this note regarding categories of Modbus Function Codes, from an unknown source:
There are 2 categories of MODBUS Function Codes, ie
1. Public Function Codes
2. User-Defined Function Codes (otherwise known as private function codes)
The set of Public Function Codes comprises 2 sets of function codes:
1. Assigned Function Codes
2. Unassigned Function Codes, set aside for future assignment.
Public Function Codes
- are well defined function codes ,
- guaranteed to be unique,
- validated by the modbus.org community,
- publicly documented at modbus.org,
- have available conformance tests,
- include both assigned function codes as well as unassigned function codes reserved for future use.
User-Defined Function Codes
- There are two defined ranges of user-defined function codes, ie
- 65 to 72 decimal (0x41 to 0x58), and
- 100 to 110 decimal (0x64 to 0x6E).
- The user can select and implement a function code without any approval from modbus.org.
- There is no guarantee that the use of the selected function code will be unique.