大家好,我有几个关于1500系列发脉冲的问题想请教大家。
已有硬件资源:
我的最终目的是要得到一个特定的压力值。想法是用PTO4产生一个PTO脉冲→控制电机控制器→驱动电机→涡轮丝杆受电机控制进行传动→推动油缸并产生压力→压力传感器输出当前压力值→485模块采集压力值→PID调整得到压力
但我没有用V90套件,所以没有反馈信息也没有外部编码器,而PTO又只能当上述外部硬件条件满足的情况下,在运动控制中组态使用。
请问大家,我能否在仅有1511或PTO4模块的情况下,不使用运动控制组态,直接通过用户程序输出特定频率的PTO信号?这个用户程序能不能集成到PID中去呢?
发现PTO方法暂时走不通,我就想到可以用1511上自带的PWM和频率输出功能,输出一个占空比50%的波形,也能控制电机驱动器。
根据1511手册(下图),TM_CTRL_DQ设为0,就能由用户控制输出PWM或频率:

我想先试试直接输出频率,于是在portal V14 sp1中进行以下操作:
配置1511的1号PWM通道,配置成频率输出获得输出控制IO字节是78-89,频率输出口是Q4.0
1500中的优化模块是little-endlian,所以我理解上图中字节0对应PLC中字节89,图中字节11对应PLC中字节78(不知道这样理解是否正确)
假定要输出100kHz的频率,十进制1000000转化为0x000186A0,再交换顺序得到0xA0860100
使用MOVE指令,把16#A0860100直接赋给MD86(MB86、87、88、89)
使用MOVE指令,把16#0直接赋给MD86(MB82、83、84、85),令SLOT置零
使用MOVE指令,把16#0直接赋给MB81,令MODE_SLOT置零
使用MOVE指令,2#000010010直接赋给MB80,令SET_DQA=1,TM_CTRL_DQ=0,SW_ENABLE=1
使用MOVE指令,2#1直接赋给MB79,令RES_SERROR=0
使用MOVE指令,2#0直接赋给MB78
经过上述操作后,Q4.0上什么反应都没有,我又按big-endian的方式做了一遍,还是没有效果。
请问大家,上述步骤是哪里出错了呢?另外,我觉得我的上面一个个MOVE的办法是笨办法,有没有一种操作控制接口的通用操作方式呢?
吐个槽,手册上只给了这个图,也没个例程,实际操作起来也无法对照到底是哪里出问题。
最后,非常感谢大家的时间,期待得到大家的围观解答,谢谢!