Keep in mind that Mach4 will try to compile ALL of the LUA files in the folder, even if you don't think you are using it. Perhaps there is one that you were not expecting to be using, and it contains LUA code that is for a newer or older version of LUA. Re-installing Mach4 will NOT remove any custom LUA files from the previous install, so they could be laying about.
When re-installing Mach4 and PMDX plugin, I made sure to delete the PMDX-424-SAMPLE profile along with the wx4.set files to be sure the stock/unaltered files were created. I just did it again for good measure and achieved the same result. The files in the macro folder appear to come with the stock PMDX-424-SAMPLE profile. I have attached the newly created "Macros" folder for the PMDX-424-SAMPLE profile as a zip file.
The easiest way to find the problem child is to launch mach, then choose Operator->Open Script Editor. Then open up EACH .mcs file in your macro directory and compile it. The compile option is under the Project menu of the Zerobrane editor. Eventually, you will see a file give an error there.
I opened each .mcs file and selected compile. No errors occurred during compilation. I still get "Lua: Error occurred while opening file" error when starting Mach4. I also still get "PMDX: Encoder mode has index, cannot set Encoder Position" if I enable an encoder (A&B no index) in the PMDX plugin. User has full control of the profile & macro folders. Could there be another script file somewhere causing an issue? Maybe with the stock wx4.set file?
i use pokeys with 4 or 5 axiss no any problem ,but please tell me yours problem in few words so i can tell you if i think its can support you
Machine is a Moore G-1000 (G18) Jig grinder. Removed old control and installed Mach3 in 2009. Updated control software to Mach 4 in 2016.
X and Y axis are just basic linear axis to move the table.
Z axis is reciprocating pneumatic axis. PMDX encoder input is used to monitor Z axis position. Custom screen has upper and lower position limit input for the operator. The PLC script polls the position and reverses direction when the limit is reached.
A axis ( I call this "U" axis ) handles infeed/outfeed of the grinding wheel. This axis is controlled programmatically through a custom Mcode.