函数一览

智能数据采集仪提供的函数分为以下几个类别:

数字总线采集

智能数据采集仪支持多种数字总线数据采集,分别为:

总线

函数

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节。

返回值

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 第一个参数。红色线之一必须连接于 AD2AD3 端子,并且 pt100_3wire_get 第三个参数必须为 AD2AD3

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参数通道必须为 AD2AD3 之一。

数字电平

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

添加需要保存的数据项

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/modbus_send.jpg

delay_call回调函数说明

延时执行的回调函数 延时时间到达后,进行回调。可以在函数体内继续执行其他操作

格式

function delay_func() …[函数体] end

参数

返回值

../../_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

返回值