MATLAB: Relation between .dll files and S-functions

dlls-functionsimulink

Hi everybody,
I am trying to run an old Simulink model created in 2009 in MATLAB R2012b. The model has two S-functions.
When running it, it gives the following error message: "Error in S-function 'ABS_Truck_debug/ABS Subsystem/S-ABS': S-Function 'abs_tractor' does not exist"
The folder with the model files also contains two .dll files with the same names as the missing S-functions. But Simulink doesn’t accept the .dll as S-functions. Could it be because I am running a newer version of Matlab/Simulink where S-functions are defined in a different manner (I have very little knowledge in S-functions)?
Any clues regarding this are very welcome.
Kind regards,
Johan Skov Bergholt
Student at University of Aarhus, Denmark

Best Answer

Note that since R14SP3, the .dll extension is no longer used for MEX-files in MATLAB (see here). MEX-files now have platform-specific extensions like .mexw32 and .mexw64. The older .dll files were phased out when MATLAB only had 32-bit support, so it is likely that your S-functions are 32-bit binaries that were compiled on an old version of MATLAB. If you are now using 64-bit MATLAB, you cannot use 32-bit binaries on it. You need to either recompile the MEX-files, or try installing 32-bit MATLAB on your 64-bit machine. See: Is running 32-bit MATLAB on a 64-bit platform supported?