Another useful place to find these readLocalIdentifier definitions is PDX/DiagODX, it is not hard to write a parser to extract the layers and if you really want you can find and read ASAM MCD2-D to learn how it works in painful detail. This is the root source of the diagnostic material that is transformed into for example ODIS/iDEX database files, and as far as I know is the thing the diagnostic vendors (VCP, OBD11, VCDS) buy / source to build their tools.
You can find my horrible tool to do this here:
https://github.com/bri3d/a2l2xdf/blob/master/pdx2csv.py . Run it on the directory containing extracted PDX layers (ODX) and it will make two CSVs, one with localIdentifiers and one with DTCs. This script is a truly awful hack but it works well on most ECU PDX files. These files are often available in the same filepacks that include A2L for a given project.
This is handy to use vs. reversing the binary because there is a _ton_ of metadata in these PDX layers besides just the variable names you'd get through reversing the binary - in these files, you get descriptions, detailed conditions for test processes, diagnostic remedy instructions, and so on. And while the LocalIdentifier table is especially simple in Simos18, it is not exhaustive to just cross-reference RAM addresses in the simple table as there are several types of $22 handlers - some "direct read to RAM" but others are "simple function" or "complex function" which actually execute code snippets.
By dumping from PDX you get much more data although it is of course not as clean from an IP standpoint.
Or use VehiCAL as it is a great product, but of course you have to patch ECU to use it in the case of Simos.