VCL语法教程——6.常用Function_math andTIM

VCL语法教程——5.常用Function

  1. math类型

ABS函数,取绝对值

ABS 有2路,ABS1,ABS2
属性:ABS#_output, 用来保存绝对值后的值
方法:
automate_ABS(ABS#,Input)       自动取绝对值,结果在ABS#_output里
get_ABS(ABS#,Input)      取绝对值,结果通过函数返回,也保存在ABS#_output里面

MTD,乘除运算,先乘后除

MTD 有4路,MTD1~MTD4
属性:MTD#_output
方法:
automate_muldiv(MTD#,Input,Multiplier,Divisor)       乘除运算,结果在MTD#_output里
get_muldiv(MTD#,Input,Multiplier,Divisor)      结果通过函数返回,也保存在MTD#_output里面

RND,随机数产生

方法:random()     返回一个随机数
		  random_set(seed)  设置随机数因子

SCL,缩放,详见教程4

方法:automate_scale(3) 
			scale_value(2)
			setup_scale_factor(2) 

COPY,变量copy,类似DMA

CPY有4个模块,CPY1~CPY4
方法:
1.automate_copy(CPY#,Source variable,Destiniation variable)
  automate_copy(CPY#,0,0)    关闭CPY# 自动copy功能
2.automate_block_copy(CPY#,Source variable,Destiniation variable,count)
  automate_block_copy(CPY#,0,0,0)    关闭CPY# 自动copy block的功能
 3.automate_limited_block_copy(9)
  自动copy最多4个变量到目标变量    ??????????????可否省略
  如果要关闭,就把对应的目标或者源设置为0.

FLT,过滤模块

FLT有4组,FLT1~FLT4
方法:
automate_filter(FLT#,Input,Gain,preload,Rate)
参数说明: Gain 增益(0~32767)
		  Preload (预加载)
		  Rate(filter 每次更新的间隔ticks)
???这个是比较大小?Gain和Preload的功能 。1个ticks在哪里看时间

LIM, 信号限制模块

LIM有4组,LIM1~LIM4
LIM的设置类型有4个,
	HARD_UPPER_LIMIT Hard upper limit (0 to ±32765) 
	HARD_LOWER_LIMIT Hard lower limit (0 to ±32765) 
	HARD_UPPER_UNSIGNED Hard upper limit (0 to 65536) 
	HARD_LOWER_UNSIGNED Hard lower limit (0 to 65536)
属性:
	LIM#_output ,保存LIM#模块的值
	LIM#_limt ,保存LIM#模块的限定值

方法:
   automate_limit(LIM#,Input,Limit Value)      ???这个是如何限制的 ,大小
   get_limit(LIM#,Input)  返回受限制的值,并保存在LIM#_output中。
   set_limit(LIM#,Limit Value)  设置Limitvalue
   set_limit(LIM#,TYPE,Limit Value)  设置上述4个类型中的值,将TYPE设置为0讲禁止LIM模块
   

MAP模块,2D 图标,详见教程4

MAP有4组,MAP1~MAP4
属性:MAP#_outout ,
      MAP#_segment  ,表示输入的X在图标中的第几段
      				0代表输入X<Xmin. 当X>Xmax,输出就等于描点的(X,Y)的对数。
方法:
	automate_map(MAP#,input)  
	get_map_output(MAP#,input)      ;返回对应的Y值
	get_map_segment(MAP#,input)  ;获取输入X对应的第几段
	set_map(MAP#,Length,X1,Y1,X2,Y2.....)   

RMP模块,ramping模块,用于变量的斜线上升或下降

RMP有4组,RMP1~RMP4
属性:RMP#_output 
     RMP#_hold, 状态查询位,0代表等待改变,!=0代表正在运行
方法:
automate_ramp(RMP#,Target,Hold control,rate)
set_ramp_hold(RMP#,hold control)    ;设置RMP#_hold位
set_ramp_rate(RMP#,rate)            ;设置RMP#_rate.
set_ramp_target(RMP#,target)        ;设置RMP# Target value.
setup_ramp(RMP#,Start value, Hold contrl,rate)  

实例:
1.手动模式
setup_ramp(RMP#,Start value, 0,rate)   ;先设置初值,rate,并使能
set_ramp_target(RMP#,target)    ;启动
set_ramp_hold(RMP#,1)    ; 暂停

2.自动模式,在auotomate_ramp()启动后set_ramp 3个参数的函数失效
初始化target变量,hold control变量,rate变量,RMP#_output变量
setup_ramp(RMP#,Start value, 0,rate)   ;先设置初值,rate,并使能
auotomate_ramp(RMP#,Target variable,Hold varibale,rate variable)

SEL,通用开关模块

SEL模块有8组,SEL1~SEL8
SEL分成2中类型,1PDT单刀双掷,4PDT4刀双掷。
属性:
	SEL#_output         			;1PDT 的输出,COM端
	SEL#_4P_n_output		        ;4PDT 的第n路输出。
	SEL#_select                    ;1PDT的控制位,置0选择主路输出,不等于0选择次路输出。
	SEL#_4P_select                ;同上
方法:
对于1PDT开关
	automate_select(SEL#,select variable)   ;select variable置0禁用automate
	set_select(SEL#,variable)    ;设置SEL#_select的值
	
	;设置1PDT,output的主输出值和次输出值
	setup_select(SEL#,variable_primary,variable_secondary)   

对于4PDT开关
	automate_4p_select(SEL#,select variable) 
	set_4p_select(SEL#,variable)
   ;设置4PDT 的全部4路的output的主输出值和次输出值
	setup_select(SEL#,
	P1_primary,P2_primary,P3_primary,P4_primary,
	P1_secondary,P2_secondary,P3_secondary,P4_secondary,	)   
	;设置P1_primary和P1_secondary都为0 将禁用该通道
	;单独设置P1_primary或P1_secondary为0 ,则非0的路还是有作用。
	

TIM模块,时间模块分2种,倒计时DLY和计时模块TMR

DLY模块:DLY1~DLY16
属性:DLY#_output  倒计时剩余时间
方法:
	setup_delay(DLY#,Ticks)     ;默认最新TICKS =1ms
	ssetup_delay_prescale(DLY#,PreSclae)  ;  分频,设置最小TICKS=1ms * PreSclae

TMR模块:TMR1~TMR3, 最大计时200K hours。
属性:TMR#_ms_output   ;范围 (0~6000)   即0~0.1S        实际结果/10 就是真实ms
	  TMR#_sec_output       ;范围(0~6000)即0~10 Hr     实际结果/10  就是真实hr
      TMR#_hr_output	      ;范围(0~20K)  即0~200K Hr  实际结果*10 就是真实hr
      TMR#_enable    ;状态位,0禁止,不等于0运行
方法:
	 disbale_timer(TMR#)
	 enable_timer(TMR#)
	 reset_timer(TMR#)   ;  reset to 0
	 setup_timer(TMR#,ms,sec,hr)   ;设置TMR# 的初始化ms,sec,hr值,注意范围。
	 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值