SDI12地址初始为'0',命令以地址或者'?'开头,以'!'结尾,命令必须全部大写

当使用2.0.1版本的SDF模块接入SD60测量W10风速传感器时,对应的SD60版本不能低于4.0.4H

查询信息

查询厂家信息
sdi12 recorder command ->?I!
sdi12 sensor response  ->013TRUWEL SDF V2.0.1(PSW/PLL To SDI12)

查询配置,示例中的回复为SDF模块出厂默认配置
sdi12 recorder command ->?HELP!
sdi12 sensor response  ->
3
PSW:ON,FREQ,0.031981,0.2700,0,BRODCAST(W)
PLL:OFF,COUNT,1.000000,0.0000,1,BRODCAST(W)

  1. 第一行"0"
    • SDF模块地址
  2. 第二行"PSW ON"
    • PSW通道已打开
  3. 第三行"PLL ON"
    • PLL通道已打开
  4. 第四行"PSW:FREQ,0.031981,0.2700,0"
    • 表示PSW通道输出数据类型为频率,倍乘数值为0.031981,偏移量数值为0.2700。已打开输出数据置零选项,此时输出数据如果小于偏移量0.27,则输出0.000000
  5. 第五行"PLL:FREQ,1.000000,0.0000,1"
    • 表示PLL通道输出数据类型为频率,倍乘数值为1.000000,偏移量数值为0.0000。已关闭输出数据置零选项

通道选择

双通道模式
  • 配置命令及响应
sdi12 recorder command ->?CONFIG DUAL MODE!
sdi12 sensor response  ->0 DUAL MODE

  • SDI12命令及响应
sdi12 recorder command ->?M!
sdi12 sensor response  ->00002

sdi12 recorder command ->?D0!
sdi12 sensor response  ->0+0.000000+0.000000

PSW通道模式
  • 配置命令及响应
sdi12 recorder command ->?CONFIG PSW MODE!
sdi12 sensor response  ->0 PSW MODE

  • SDI12命令及响应
sdi12 recorder command ->?M!
sdi12 sensor response  ->00001

sdi12 recorder command ->?D0!
sdi12 sensor response  ->0+0.000000

PLL通道模式
  • 配置命令及响应
sdi12 recorder command ->?CONFIG PLL MODE!
sdi12 sensor response  ->0 PLL MODE

  • SDI12命令及响应
sdi12 recorder command ->?M!
sdi12 sensor response  ->00001

sdi12 recorder command ->?D0!
sdi12 sensor response  ->0+0.000000

任意通道模式下,通过下列SDI12命令,皆可以直接读取任意PSW和PLL数据
  • M0命令及响应,返回PSW和PLL数据
sdi12 recorder command ->?M0!
sdi12 sensor response  ->00002

sdi12 recorder command ->?D0!
sdi12 sensor response  ->0+0.000000+0.000000

  • M1命令及响应,返回PSW数据
sdi12 recorder command ->?M1!
sdi12 sensor response  ->00001

sdi12 recorder command ->?D0!
sdi12 sensor response  ->0+0.000000

  • M2命令及响应,返回PLL数据
sdi12 recorder command ->?M2!
sdi12 sensor response  ->00001

sdi12 recorder command ->?D0!
sdi12 sensor response  ->0+0.000000

输出数据类型

三种数据类型
  1. 计数,字符 0
    • 设定PSW通道输出计数值
sdi12 recorder command ->?CONFIG PSW DATA TYPE 0!
sdi12 sensor response  ->0 PSW DATA TYPE:COUNT

  1. 频率,字符 1
    • 设定PSW通道输出频率值
sdi12 recorder command ->?CONFIG PSW DATA TYPE 1!
sdi12 sensor response  ->0 PSW DATA TYPE:FREQ

  1. 周期,字符 2
    • 设定PSW通道输出周期值
sdi12 recorder command ->?CONFIG PSW DATA TYPE 2!
sdi12 sensor response  ->0 PSW DATA TYPE:PERIOD

系数设定

设定PSW倍乘
sdi12 recorder command ->?CONFIG PSW GAIN 0.031981!
sdi12 sensor response  ->0 PSW GAIN 0.031981

设定PSW偏移量
sdi12 recorder command ->?CONFIG PSW OFFSET 0.27!
sdi12 sensor response  ->0 PSW OFFSET 0.270000

设定PLL倍乘
sdi12 recorder command ->?CONFIG PLL GAIN 1.0!
sdi12 sensor response  ->0 PLL GAIN 1.0

设定PLL倍乘
sdi12 recorder command ->?CONFIG PLL OFFSET 0.0!
sdi12 sensor response  ->0 PLL OFFSET 0.000000

输出数据置零选项

  • 打开选项。此时输出数据如果小于设置的offset数值,则数据将被置零。例如,使用W10风速传感器时,偏移量为0.27,如果输出风速值小于0.27,则输出0.000000
sdi12 recorder command ->?CONFIG PSW ZERO OPTION 0!
sdi12 sensor response  ->If the value is less than or equal to the PSW offset, it outputs zero
  • 关闭能选项
sdi12 recorder command ->?CONFIG PSW ZERO OPTION 1!
sdi12 sensor response  ->OK

工作模式配置

  • 广播模式
    • 使用广播地址:'W',假设系统接入5个SDF(W10),常规地址依次为'0','1','2','3','4'
      • 广播模式下可使用自定义测量命令"S!",也可以使用"M!"和"C!"命令
      • 当收到以广播地址开头的测量命令时,所有SDF模块执行测量,并且不做响应
      • 当收到"0D0!"时,地址'0'的模块响应测量数据,依次类推
      • 注意,广播模式下,收到"0M!"或者"0C!",SDF模块响应命令但是不执行测量
  • 普通模式
    • 广播地址不起作用,其他操作与普通SDI-12传感器相同
sdi12 recorder command ->?CONFIG MODE 0!
sdi12 sensor response  ->0 BRODCAST MODE

  • 普通模式,广播地址不起作用,其他操作与普通SDI-12传感器相同
sdi12 recorder command ->?CONFIG MODE 1!
sdi12 sensor response  ->0 GENERAL MODE

广播地址设置

  • 通常情况下,不需要修改
sdi12 recorder command ->?CONFIG B ADDR W!
sdi12 sensor response  ->0 BRODCAST ADDR W

两种使用场景详细说明

  • Campbell数采接入3个SDF(W10)
    1. 将3个SDF模块分别设置为不同的地址,比如'1','2','3',将所有SDF模块设置为广播模式
    2. CRBASIC
Public PTemp, Batt_volt  
Public sdf_brodcast_addr As String *8
Public W10_resp_str(3) As String *32 
Public Elapsed 

DataTable (Test,1,-1) 
    Minimum (1,Batt_volt,FP2,False,False)
    Sample (1,PTemp,FP2)
    Sample (3,W10_resp_str(),IEEE4)
EndTable

BeginProg
    SW12 (1 )
    Scan (10,Sec,0,0)
        PanelTemp (PTemp,4000)
        Battery (Batt_volt)
        Timer (1,mSec,2)
        SDI12Recorder (sdf_brodcast_addr,C1,"W","S!",1.0,0,0,0) 
        SDI12Recorder (W10_resp_str(1),C1,"1","D0!",1.0,0,0,0)
        SDI12Recorder (W10_resp_str(2),C1,"2","D0!",1.0,0,0,0)
        SDI12Recorder (W10_resp_str(3),C1,"3","D0!",1.0,0,0,0) 
        Elapsed = Timer (1,mSec,4) 
        CallTable Test
    NextScan
EndProg
  • SD60接入3个SDF(W10),SD60的固件版本不能低于4.0.4H
    1. 将3个SDF模块分别设置为不同的地址,比如'1','2','3',将所有SDF模块设置为广播模式
    2. 按照地址,依次接入SD60对应的端口中,比如地址为'1'的SDF接入SD60的1号端口
    3. 将SD60的1,2,3这3个端口的SDI-12端子,用一根线并联