函数一览
智能数据采集仪提供的函数分为以下几个类别:
数字总线采集
智能数据采集仪支持多种数字总线数据采集,分别为:
总线
函数
rs422/rs485
rs422_send
modbus(基于rs422)
modbus_send
rs232
rs232_send
sdi12
sdi12_1_send,sdi12_2_send
rs422_send
通过rs422端子发送数据
rs422_send (table_value,parameter,timeout,callback)
table_value
要发送的数据。比如{1,2,3}
parameter
串口参数。格式:‘”115200_8N1”
timeout
等待超时时间。单位:秒
callback
等待超时后,返回数据的回调函数。详细信息参考callback节。
返回值
无
modbus_send
使用基于RS422的Modbus协议进行通信
modbus_send (table_value,parameter,timeout,callback)
table_value
要发送的数据。比如读取地址为0x01设备的保持寄存器0开始的3个值。{0x01,0x00,0x04,0x00,0x03}。数据中不包含crc
parameter
串口参数。格式:‘”115200_8N1”
timeout
等待超时时间。单位:秒
callback
等待超时后,返回数据的回调函数。详细信息参考callback节。
返回值
无
备注
Modbus协议请参考 MODBUS APPLICATION PROTOCOL SPECIFICATION V1.1b3
rs232_send
通过rs232端子发送数据
rs232_send (table_value,parameter,timeout,callback)
table_value
要发送的数据。比如{1,2,3}
parameter
串口参数。格式:‘”115200_8N1”
timeout
等待超时时间。单位:秒
callback
等待超时后,返回数据的回调函数。详细信息参考callback节。
返回值
无
sdi12_1_send
使用SDI12通道1进行采集
sdi12_1_send (table_value,timeout,callback)
table_value
要发送的数据。比如{0x30,0x43,0x21}, 0C!
timeout
等待超时时间。单位:秒
callback
等待超时后,返回数据的回调函数。详细信息参考callback节。
返回值
无
备注
SDI12协议请参考 SDI-12 Specification 1.3 January 28 2016
sdi12_2_send
使用SDI12通道2进行采集
sdi12_2_send (table_value,timeout,callback)
table_value
要发送的数据。比如{0x30,0x43,0x21}, 0C!
timeout
等待超时时间。单位:秒
callback
等待超时后,返回数据的回调函数。详细信息参考callback节。
返回值
无
备注
SDI12协议请参考 SDI-12 Specification 1.3 January 28 2016
模拟信号采集
模拟信号采集支持电压,电流和 PT100铂电阻测量。
类型
范围
电压
0 ~ 4.096V
电流
4 ~ 20mA
电阻
PT100
vol_single_get
获取单端电压测量结果
vol_single_get (ad_channel)
ad_channel
AD端子通道号。范围:‘’AD0’,’AD1’,’AD2’,’AD3’,’AD4’,’AD5’
返回值
对应AD端子通道的电压值
vol_diff_get
获取双端差分电压测量结果
vol_diff_get (ad_channel1 , ad_channel2)
ad_channel1
AD端子通道号。范围:‘’AD0’,’AD1’,’AD2’,’AD3’,’AD4’,’AD5’
ad_channel2
AD端子通道号。范围:‘’AD0’,’AD1’,’AD2’,’AD3’,’AD4’,’AD5’
返回值
对应AD端子通道(ad_channel1- ad_channel2)的电压值
current_get
获取电流测量结果
current_get (ad_channel)
ad_channel
AD端子通道号。范围:’AD2’,’AD3’。只有AD2,AD3通道具备电流测量功能
返回值
对应AD端子通道的电流测量结果
pt100_3wire_get
获取3线式PT100热电阻的阻值。获得阻值后,可以通过
pt_temperature()
函数计算出温度值
pt100_3wire_get(ad_channel1,ad_channel2,ad_channel3)
ad_channel1
AD端子通道号。范围:‘’AD0’,’AD1’,’AD2’,’AD3’,’AD4’,’AD5’
ad_channel2
AD端子通道号。范围:‘’AD0’,’AD1’,’AD2’,’AD3’,’AD4’,’AD5’
ad_channel3
AD端子通道号。范围:‘’AD2’,’AD3’
返回值
PT100热电阻的阻值
备注
PT100 3线热电阻测温硬件连接方法,请参考 硬件使用手册。 相关原理请参考 热电阻测温原理及接线方式介绍
蓝色线连接通道对应脚本函数 pt100_3wire_get
第一个参数。红色线之一必须连接于 AD2
或 AD3
端子,并且 pt100_3wire_get
第三个参数必须为 AD2
或 AD3
pt100_4wire_get
获取4线式PT100热电阻的阻值。获得阻值后,可以通过
pt_temperature()
函数计算出温度值
pt100_4wire_get(ad_channel1,ad_channel2,ad_channel3,ad_channel4)
ad_channel1
AD端子通道号。范围:‘’AD0’,’AD1’,’AD2’,’AD3’,’AD4’,’AD5’
ad_channel2
AD端子通道号。范围:‘’AD0’,’AD1’,’AD2’,’AD3’,’AD4’,’AD5’
ad_channel3
AD端子通道号。范围:‘’AD0’,’AD1’,’AD2’,’AD3’,’AD4’,’AD5’
ad_channel4
AD端子通道号。范围:‘’AD2’,’AD3’
返回值
PT100热电阻的阻值
备注
PT100 4线热电阻测温硬件连接方法,请参考 硬件使用手册。 相关原理请参考 热电阻测温原理及接线方式介绍
蓝色端子对应 pt100_4wire_get
的第1和第2参数,红色端子对应与第3和第4参数。 并且,第4参数通道必须为 AD2
或 AD3
之一。
数字电平
input_get
通过IO端子通道,获取输入高低电平
input_get (io_channel)
io_channel
IO端子通道。范围:’SDI12_1’,’SDI12_2’,’PWM_1’,’PWM_2’
返回值io_value
1/0。对应高电平/低电平 。如果io_channel无效,或者该引脚已经被其他功能复用,则返回-1。
警告
一旦“IO端子通道”被选择为测量功能,则该函数功能失效。
output_set
通过IO端子通道,输出高低电平
output_set (io_channel,io_value)
io_channel
IO端子通道。范围:’SDI12_1’,’SDI12_2’,’PWM_1’,’PWM_2’
io_value
1/0。对应输出高电平/低电平。5v/0v。
返回值
无
警告
一旦“IO端子通道”被选择为测量功能,则该函数功能失效。
脉冲计数与频率测量
pwm_start
开始脉冲计数。 上升沿计数。
脉冲计数用于长时间统计脉冲个数。比如 翻斗式雨量筒每达到一定降雨量就会产生一个脉冲,通过脉冲计数功能可以统计出每小时,每天的降雨量。
pwm_start (pwm_channel, count)
pwm_channel
脉冲计数端子通道。范围:
‘PWM_1’
‘PWM_2’
‘PWM_3’(SDI12_1端子)
‘PWM_4’(SDI12_2端子)
count
脉冲计数初始值。从此值开始向上递加。
返回值
无
备注
复用通道,一旦已经存在正在使用的功能,则 当前操作无效。 用户需要注意分配端子功能。
pwm_stop
停止脉冲计数。请勿停止未启动计数的通道。
pwm_stop (pwm_channel)
pwm_channel
脉冲计数端子通道。范围:
‘PWM_1’
‘PWM_2’
‘PWM_3’(SDI12_1端子)
‘PWM_4’(SDI12_2端子)
返回值
无
备注
复用通道,一旦已经存在正在使用的功能,则 当前操作无效。 用户需要注意分配端子功能。
pwm_status
查看当前脉冲计数通道的起止状态。
pwm_status (pwm_channel)
pwm_channel
脉冲计数端子通道。范围:
‘PWM_1’
‘PWM_2’
‘PWM_3’(SDI12_1端子)
‘PWM_4’(SDI12_2端子)
返回值
起止状态。 1 - 已启动; 0 - 未启动
pwm_set
重新设置计数。
pwm_set (pwm_channel, count)
pwm_channel
脉冲计数端子通道。范围:
‘PWM_1’
‘PWM_2’
‘PWM_3’(SDI12_1端子)
‘PWM_4’(SDI12_2端子)
count
脉冲计数值。从此值开始向上递加。
返回值
无
pwm_get
获取当前的脉冲计数值。
pwm_get (pwm_channel)
pwm_channel
脉冲计数端子通道。范围:
‘PWM_1’
‘PWM_2’
‘PWM_3’(SDI12_1端子)
‘PWM_4’(SDI12_2端子)
返回值
脉冲计数值
pulse1_count_start
使用
PWM_1
端子 获取指定时间内的脉冲总数。主要用于计算脉冲宽度和频率。最高频率 2MHz
pulse1_count_start (timeout,pwm_callback)
timeout
统计时间。达到该时间后,执行回调函数
pwm_callback
通过回调函数返回测量结果
参考 高速脉冲回调函数
返回值
无
pulse2_count_start
使用
PWM_2
端子 获取指定时间内的脉冲总数。主要用于计算脉冲宽度和频率。最高频率 2MHz
pulse2_count_start (timeout,pwm_callback)
timeout
统计时间。达到该时间后,执行回调函数
pwm_callback
通过回调函数返回测量结果
参考 高速脉冲回调函数
返回值
无
缓存
set_global_number
用于设置double/int型变量缓存。变量缓存于内存,掉电丢失。可以在多次 on_start 执行之间传递数值,比如计算平均值。
set_global_number(index,value)
index
索引值。范围:0~511
value
number型 数值
返回值
无
get_global_number
用于从内存缓存中获取临时变量。可以在多次 on_start 执行之间传递数值,比如计算平均值。
get_global_number(index)
index
索引值。范围:0~511
返回值
number型 缓存的数值
set_global_buffer
用于设置table型 字节变量 缓存。变量缓存于内存,掉电丢失。最大长度512,table元素范围为0~255。可以在多次 on_start 执行之间传递数值,比如计算平均值。
set_global_buffer (value)
value
table型变量
返回值
无
get_global_buffer
用于获取table型变量缓存,可以在多次 on_start 执行之间传递数值,比如计算平均值。
get_global_buffer()
返回值
table型 缓存的数据
延时
delay_call
延时执行回调函数
delay_call (timeout,delay_callback)
timeout
延时时间。单位:秒
delay_callback
等待超时后,调用回调函数 。
参考 延时执行的回调函数 每个脚本最多可以使用8次
返回值
无
数据
add_data_item
添加需要保存的数据项
add_data_item (mid,cid, data_type,data)
参数 mid
传感器数据项主通道号 0~255
参数 cid
传感器数据项子通道号 0~255
参数 data_type
传感器数据项类型
‘UCHAR’,’SCHAR’,’UINT’,’SINT’,’ULONG’,’SLONG’,’BCD_HH’,’BCD_MMHH’,’FLOAT’,’STRING’,’BCD_YYMMDDHHMM’
参数 data
要保存的数据 需要跟data_type对应,否则无法正确解析
返回值
无
时间
datetime
获取当前日期时间字符串
datetime ()
参数
无
返回值
当前日期时间字符串,比如”2017-11-03 16:02:55”
timestamp
获取当前UNIX timestamp
timestamp ()
参数
无
返回值
当前UNIX timestamp,比如 1509696195
bcdtime
获取当前BCD格式的日期字符数组
bcdtime ()
参数
无
返回值
当前BCD格式的日期字符数组,比如 {0x17,0x11,0x03,0x16,0x02,0x55}
系统
relay
控制继电器吸合开关
relay (onoff)
onoff
1 :吸合继电器(COM与NO短接) 0 :断开继电器(COM与NC短接)
返回值
无
pt_temperature
通过铂电阻的阻值,计算温度值
pt_temperature(pt,res)
参数 pt
铂电阻类型,目前仅支持 “PT100”
参数 res
电阻阻值
返回值
温度值
sys_power_vol
获取系统供电电压
sys_power_vol ()
参数
无
返回值
系统供电电压值
回调函数
警告
所有回调函数执行完毕后,本次脚本才会结束并保存数据。
总线型回调函数说明
总线型(SDI12/RS422/MODBUS/RS232)采集函数的回调函数 。通信超时或正确接收时,发生回调。
格式
function xxx_callback(status,data) …[函数体] end
参数status
采集过程的结果状态
0 : SDI12,MODBUS总线在超时时间之前,正常返回
1 :对于无时间限制或者数据协议的总线,超时返回1。
其他值:采集过程中错误发生,数据无效
参数data
table型数据。采集返回的字节数据
返回值
无
![../../_images/rs422_rs232_send.jpg](../../_images/rs422_rs232_send.jpg)
![../../_images/modbus_send.jpg](../../_images/modbus_send.jpg)
delay_call回调函数说明
延时执行的回调函数 延时时间到达后,进行回调。可以在函数体内继续执行其他操作
格式
function delay_func() …[函数体] end
参数
无
返回值
无
![../../_images/delay_call.jpg](../../_images/delay_call.jpg)
pwm_callback回调函数说明
高速脉冲计数的回调函数 延时时间到达后,进行回调。可以在函数体内继续执行其他操作
格式
function pwm_callback(timeout, data) …[函数体] end
参数 timeout
pulsex_count_start 调用时的 timeout值
参数 data
4个字节的 table型 脉冲值。计算方法为:
count = data[0] + data[1]* 2^8 + data[2]* 2^16 + data[3] * 2^24
返回值
无