PMAC子程序的调用方法主要有以下几种:
使用G代码调用子程序
PMAC支持通过G代码调用子程序。当运动程序中遇到字母G后面带数值N时,会调用子程序Program 1000中数值N的程序段。为了增加程序的可读性,可以使用GOSUB ^ fm命令,使运动程序跳转到同一运动程序段中数值N的行号。当程序遇到GOSUB后的RETURN命令后,会立即返回。
使用CfromScript函数调用C语言子程序
PMAC控制器中的CfromScript函数允许从PMAC脚本直接调用C语言子程序,特别适用于加速运动学计算。该函数在"usrcode.c"中声明,需要8个参数,其中7个为double类型,1个为LocalData结构指针。用户可以在脚本中调用该函数进行计算,并通过LocalData访问R、L、C和D变量。
通过上位机发送指令控制
PMAC已经封装好了通信过程,上位机可以通过发送指令控制电机运动或设置参数,或返回当前指定参数值。常用的函数包括PmacGetResponse和PmacGetResponseEX,可以满足大部分需求。
使用动态库调用方法
可以通过定义函数指针类型及动态库加载、卸载函数,并在源文件中实现这些函数,从而调用PMAC的动态库中的子程序。这种方法需要编写头文件和源文件,并在主程序中加载和卸载动态库。
建议
对于简单的控制任务,建议使用上位机发送指令的方法,因为这种方法编程简单且易于维护。
对于复杂的计算任务,可以考虑使用CfromScript函数调用C语言子程序,因为这种方法可以利用C语言的性能优势。
对于需要动态库调用的情况,需要详细编写动态库的加载和卸载函数,并确保正确链接和调用动态库中的子程序。