=============================== 函数一览 =============================== 智能数据采集仪提供的函数分为以下几个类别: * 数字总线采集_ * 模拟信号采集_ * 数字电平_ * 缓存_ * 延时_ * 数据_ * 时间_ * 系统_ ----------------------------- 数字总线采集 ----------------------------- 智能数据采集仪支持多种数字总线数据采集,分别为: ================= =========================== 总线 函数 ================= =========================== 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节。 | +----------------+------------------------------------------------------------------------------------------------------------+ |返回值 |无 | +----------------+------------------------------------------------------------------------------------------------------------+ .. note:: 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节。 | +----------------+------------------------------------------------------------------------------------------------------------+ |返回值 |无 | +----------------+------------------------------------------------------------------------------------------------------------+ .. note:: 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节。 | +----------------+------------------------------------------------------------------------------------------------------------+ |返回值 |无 | +----------------+------------------------------------------------------------------------------------------------------------+ .. note:: 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热电阻的阻值 | +----------------+------------------------------------------------------------------------------------------------------------+ .. note:: 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热电阻的阻值 | +----------------+------------------------------------------------------------------------------------------------------------+ .. note:: 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。 | +----------------+------------------------------------------------------------------------------------------------------------+ .. warning:: 一旦“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。 | +----------------+------------------------------------------------------------------------------------------------------------+ |返回值 |无 | +----------------+------------------------------------------------------------------------------------------------------------+ .. warning:: 一旦“IO端子通道”被选择为测量功能,则该函数功能失效。 ----------------------------- 脉冲计数与频率测量 ----------------------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ *pwm_start* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 开始脉冲计数。 上升沿计数。 脉冲计数用于长时间统计脉冲个数。比如 翻斗式雨量筒每达到一定降雨量就会产生一个脉冲,通过脉冲计数功能可以统计出每小时,每天的降雨量。 +-----------------------------------------------------------------------------------------------------------------------------+ |pwm_start (pwm_channel, count) | +================+============================================================================================================+ |pwm_channel | 脉冲计数端子通道。范围: | | | | | | - 'PWM_1' | | | - 'PWM_2' | | | - 'PWM_3'(SDI12_1端子) | | | - 'PWM_4'(SDI12_2端子) | | | | +----------------+------------------------------------------------------------------------------------------------------------+ |count | 脉冲计数初始值。从此值开始向上递加。 | +----------------+------------------------------------------------------------------------------------------------------------+ |返回值 |无 | +----------------+------------------------------------------------------------------------------------------------------------+ .. note:: 复用通道,一旦已经存在正在使用的功能,则 当前操作无效。 用户需要注意分配端子功能。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ *pwm_stop* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 停止脉冲计数。请勿停止未启动计数的通道。 +-----------------------------------------------------------------------------------------------------------------------------+ |pwm_stop (pwm_channel) | +================+============================================================================================================+ |pwm_channel | 脉冲计数端子通道。范围: | | | | | | - 'PWM_1' | | | - 'PWM_2' | | | - 'PWM_3'(SDI12_1端子) | | | - 'PWM_4'(SDI12_2端子) | | | | +----------------+------------------------------------------------------------------------------------------------------------+ |返回值 |无 | +----------------+------------------------------------------------------------------------------------------------------------+ .. note:: 复用通道,一旦已经存在正在使用的功能,则 当前操作无效。 用户需要注意分配端子功能。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ *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 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 请参考 :ref:`存储格式与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 () | +================+============================================================================================================+ |参数 |无 | +----------------+------------------------------------------------------------------------------------------------------------+ |返回值 |系统供电电压值 | +----------------+------------------------------------------------------------------------------------------------------------+ ----------------------------- 回调函数 ----------------------------- .. warning:: 所有回调函数执行完毕后,本次脚本才会结束并保存数据。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ *总线型回调函数说明* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +-----------------------------------------------------------------------------------------------------------------------------+ |总线型(SDI12/RS422/MODBUS/RS232)采集函数的回调函数 。通信超时或正确接收时,发生回调。 | +================+============================================================================================================+ |格式 | function xxx_callback(status,data) ...[函数体] end | +----------------+------------------------------------------------------------------------------------------------------------+ |参数status | - 采集过程的结果状态 | | | - 0 : SDI12,MODBUS总线在超时时间之前,正常返回 | | | - 1 :对于无时间限制或者数据协议的总线,超时返回1。 | | | - 其他值:采集过程中错误发生,数据无效 | +----------------+------------------------------------------------------------------------------------------------------------+ |参数data |table型数据。采集返回的字节数据 | +----------------+------------------------------------------------------------------------------------------------------------+ |返回值 |无 | +----------------+------------------------------------------------------------------------------------------------------------+ .. figure:: ../_static/rs422_rs232_send.jpg :align: center .. figure:: ../_static/modbus_send.jpg :align: center .. title RS422/RS232 无协议时序 note over device,timer,sensor: rs422_send / rs232_send note right of device: config 'parameter' device->+timer: timer start for 'time_out' device->+sensor: send 'table_value' to sensor note right of sensor: sensor return 'data' sensor-->-device: receive 'data' from sensor note right of timer: Timeout timer-->-device: notify timeout note right of device: call function 'bus_callback(1,data)' .. title Modbus RTU/SDI12协议时序 note over device,timer,sensor: modbus_send/sdi12_1_send/sdi12_2_send note right of device: config 'parameter' device->+timer: timer start for 'time_out' device->+sensor: send 'table_value' to sensor note right of sensor: sensor return 'data' sensor-->-device: receive 'data' from sensor note right of timer: Timeout timer-->-device: notify timeout alt Timeout or Frame Exception note right of device: call function 'bus_callback(1,data)' else Frame Check Passed note right of device: call function 'bus_callback(0,data)' end ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ *delay_call回调函数说明* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. _延时执行的回调函数: +-----------------------------------------------------------------------------------------------------------------------------+ |延时执行的回调函数 延时时间到达后,进行回调。可以在函数体内继续执行其他操作 | +================+============================================================================================================+ |格式 | function delay_func() ...[函数体] end | +----------------+------------------------------------------------------------------------------------------------------------+ |参数 |无 | +----------------+------------------------------------------------------------------------------------------------------------+ |返回值 |无 | +----------------+------------------------------------------------------------------------------------------------------------+ .. figure:: ../_static/delay_call.jpg :align: center .. title delay_call时序 note over device,timer: delay_call device->+timer: timer start for 'time_out' note right of timer: Timeout timer-->-device: notify timeout note right of device: call function 'delay_func()' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ *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 | | | | +----------------+------------------------------------------------------------------------------------------------------------+ |返回值 |无 | +----------------+------------------------------------------------------------------------------------------------------------+