Clippper模拟量输出设置

  Clipper的J3(JMACH1)接口是设备接口,共50针。包括:

DAC输出管脚为:

PIN 29 31 30 32 37 39 38 40 48
signal DAC1 DAC1/ DAC2 DAC2/ DAC3 DAC3/ DAC4 DAC4/ GND

  Clipper不能输出真正的模拟量,clipper输出的+-10V的模拟量实际上是PWM经过一个10KHZ的低通滤波器产生的。PWM的占空比控制输出模拟量的幅值,这个转换关系由PMAC自动处理。PWM波的频率决定输出信号的分辨率和扰动幅度,PWM频率越高,输出分辨率越低,扰动也越低。

  滤波PWM输出的分辨率和频率均通过I7000控制,改变这个变量还会影响相位和伺服中断。而相位与I7001(phase clock divider)相关,伺服中断与I7002(servo clock divider)和I10(servo interrupt time)相关。因此改变I7000的同时还要改变I7001,I7002,I10的值。这几个变量的具体含义参见《软件参考手册》(2014版)P213,P215,P42。
  另外这些变量的值得计算有一个小软件 Dtcalcs2008,直接输入想要设置的频率即可得到各个变量的值。
  
  要输出模拟量,首先要进行下面的设置:

I7000 = 1001     //PWM1-4频率设置为29.4KHZ
I7001 = 5        //相时钟频率设置为9.8KHZ
I7002 = 3        //伺服频率2.45kHz
I7003 = 1746     //ADC频率
I7100 = 1001     //PWM频率29.4kHz, PWM 5-8
I7103 = 1746     //ADC频率
I7016 = 0        //输出模式: PWM Ixx69 = 1001 ;DAC输出最大10Vdc 
I10 = 3421867    //伺服中断时间
I100=0           //关闭电机
I124=$120001     //关闭限位报警等

注:

  1. I7m00: 第m个伺服芯片(IC)的最大相位频率/PWM频率控制。
    range:0-32767
    units:
    MaxPhase Frequency=117,964.8KHZ/[2*I7m00+3]
    PWM Frequency=117,964.8KHZ/[4*I7m00+6]
    例如,设置I7000=1001,则
    PWM频率=117=117,964.8KHZ/[4*1001+6]=29.41766KHZ
  2. I7m01: 第m个伺服芯片(IC)的相位时钟频率控制
    range:0-15
    units:Phase Frequency=MaxPhase Frequency/[I7m01+1]
    例如,设置I7000=1001,则
    最大相位频率=117,964.8KHZ/[2*1001+3]=58.83531KHZ
    设置I7001=5,则
    相位时钟频率=58.83531KHZ/6=9.805885KHZ
  3. I7m02:第m个伺服芯片(IC)的伺服时钟频率控制
    range:0-15
    uints:Servo Clock Frequency=Phase Clock Frequency / (I7m02+1)
    例如,设置I7m02=3,则
    伺服时钟频率=9.805885KHZ/4=2.4576KHZ
  4. I7m03:第m个伺服芯片(IC)的硬件时钟控制
    range:0-4095
    units:单个时钟分频器
    I7m03=SCLK+8*PFM_CLK+64*DAC_CLK+512ADC_CLK
    其中:
      编码SCLK频率=39.3216MHz / (2SCLK)
      PFM_CLK 频率= 39.3216MHz / (2PFM_CLK)
      DAC_CLK 频率= 39.3216MHz / (2DAC_CLK)
      ADC_CLK 频率= 39.3216MHz / (2ADC_CLK)
      

  5. I10:伺服中断时间
    range:0~8388607
    units:1/8,388,608 msec

  6. I7mn6:第m个伺服芯片上第n通道输出模式选择
    range:0-3
value description
i7mn6=0 Outputs A and B are PWM; Output C is PWM
I7mn6=1 Outputs A and B are DAC; Output C is PWM
I7mn6=2 Outputs A and B are PWM; Output C is PFM
I7mn6=3 Outputs A and B are DAC; Output C is PWM

  根据上面的设置(I7000=1001,Ixx69=1010),DAC1输出电压与M102的关系是M102=1001对应输出10V,分辨率为1/1001*10V=10mV。
  
  一个简单的程序从J3pin29(DAC1)输出正弦波。
  
  程序代码:
  

//****************************       初始化部分
open plc1 clear
i7000=1001
i7001=5
i7002=3
i7003=1746
i7100=1001
i7103=1746
i7016=0
i10=3421867
i100=0
i124=$120001
p1=0
m102=0
//****************************     循环部分
While (p1 < 3600) m102=1000*sin(p1) p1=p1+1 If (p1 = 3600) disable plc1 EndIf EndWhile enable plc1 

M102的地址是:
  M102->Y:$078002,8,16,S OUT1A command value; DAC or PWM对应J3接口的pin29,这是一个16位的寄存器,带符号,范围是-32768~32767,设Ixx00=0后,通过改变M102的值即可改变输出模拟量的值。

注意!此信息未认证,请谨慎判断信息的真实性!

全部评论
空

相关内容推荐

头像
点赞 评论 收藏
转发
头像
2022-12-09 22:49
蚌埠医学院_2023
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
2022-12-15 10:17
厦门大学_2023
点赞 评论 收藏
转发
头像 头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
2022-12-20 00:05
门头沟学院_2023
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
2022-11-30 11:10
东南大学_2023
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
点赞 收藏 评论
分享

全站热榜

正在热议