SMDDevice基本配置

SMDDevice.conf 是SMDDevice启动的配置文件

配置文件配置的内容,可以被命令行相同参数覆盖,主要用于临时调试,程序终止后自动启动的程序会继续使用配置文件的内容。

参数列表:

参数 使用方式 说明
help, h –help 或 -h 显示帮助,参数说明,英文的, EISU上会崩溃,原因不明
qws –qws 当SMDDevice作为嵌入式设备的控制软件并且集成了QT界面的时候,需要传递–qws来同时启动qt界面。当仅仅作为FSU控制软件的时候,不需要传此参数。
version,v –version或-v 显示SMDDevice编译时间版本,主要更新用于区分版本
watchdog,w –watchdog或-w 关闭软件看门狗。由于SMDDevice默认启动看门狗并且会定时喂狗,一旦启动,无法禁用,只能重启,在某些调试的时候,会造成板子1分钟重启一次。本选项可以使SMDDevice启动时不激活看门狗。注意:目前在301E,302A上有效。303和303mini系列不确定,有可能使用独立的sh脚本喂狗。
first_time –first_time 用于表示SMDDevice第一次启动,主要用于通知服务器端板子已经重启,我们是第一次启动,这时服务器端做比如烟感恢复等动作。
save_history –save_history 启动FSU的历史数据保存功能。当启用时,device_history表会保存被采集设备的数据包,同时FSU网站可以查看历史数据。什么时间保存历史数据功能是由驱动决定的,间隔也是驱动的逻辑参数可调的。启用此功能需要注意FSU的NAND空间是否充足,必要时需要将数据库SMDDevice.db转移到SD卡,并在NAND下留有配置备份,以实现长达数月时间的保存,当SD卡损坏时,虽然历史数据丢失,但可使用NAND备份的数据库快速恢复FSU的配置和功能。
server_addr 私有:君光私有服务器的IP地址,用于fsu数据和服务上传使用。君光私有服务器和SMDDevice的代码同根同源,驱动代码和数据结构共用,且经过实际的大型应用测试,效率最高。如果没有特别的对接协议需要,选择私有服务器部署都是好的,还有docker打包。
central_server_addr 私有:君光私有服务器的中心化部署,适用于FSU同时接工控屏和集中服务器的场景。此时SU会同时向2台服务器送数据。
cache_prefix 用于定制缓存key的前缀,通常数据存储都是以data_id来保存的,当配置cache_prefix后,比如abc,则key为abc:data_id,主要为了根据业务系统要求调整
cache_server_ip 缓存服务器的IP地址
central_cache_server_ip 私有:中心缓存服务器的IP地址,可以双送数据到缓存。适应有些中心平台部署没有后台,只有网站,这样也能查看数据。
broker_server_ip 私有:分布式部署的负载分配节点的IP,UDP协议
server_port 私有:君光服务器的端口,默认是12001.
bind_port 私有:SU的君光协议服务器端,需要中心服务器主动连接SU,默认端口6666, 一般不用,应用中没有发现实际用途。
thrift_port SU的网站和SMDDevice下发命令的接口,thrift开发库,默认端口9000
device_id 私有:默认的设备ID,需要从平台网站查询。 老型号可用,新型号,已经被FSU网站的数据ID配置覆盖。
pd_count 板载电表数。0-4。没有插板载电表时,配置为0。
ai_noise ai_noise=10 数组类型,从第一个代表通道0。 微调板载AI通道的噪音,就是原始采样值减去这个配置值,一般取值10,15, 异常时可能200。 适用与301E和302A。
k_noise k_noise=1 数组类型,从第一个代表通道0。303X系列后对AI通道的调节,采用y = k*x+b的方式。注意:随着联通白盒化标准驱动的集成,ai和di的采集由驱动直接输出,噪音等问题由标准驱动调整,不再需要SMDDevice进行调通白盒化驱动由于标准简单,已经作为后续fsu的默认硬件适配方式。
b_noise b_noise=0 数组类型,从第一个代表通道0。
board_version 逐渐废弃。以往是靠这个区分程序是在哪个型号的采集器上运行,后续由于白盒化标准驱动的集成,FSU控制器软件直接面对白盒化标准的接口数量,不再关心设备型号。 目前有用,比如11不会采集AI,12需要配合gfsu2使用
refresh_interval 串口采集的刷新频率:1代表1秒。这个代表每次调度采集的间隔,当配置时间过短而上一次采集没有完成时,会自动跳过本轮,不影响正常的采集动作。
save_interval 默认保存历史数据的间隔,单位秒
sp_loop sp_loop=1 数组类型,从第一个代表串口0。激活连续采集。正常情况下,比如每轮采集是5秒,但是串口0的设备在2秒就完成了所有采集,剩下3秒在休眠。激活本选项后,本端口将不会休眠,采集完成一轮将直接开始下一轮采集,不受refresh_interval影响。
sp_monitor sp_monitor=1 数组类型,从第一个代表串口0。启动监听模式。监听模式是君光独有的一种采集方式,当FSU已经有一个采集软件在进行设备的数据采集时,此时SMDDevice再进行数据的召测会造成冲突,两边都会数据掉线。此时通过激活监听模式,SMDDevice会同步获取到对方的召测命令和回复,配合驱动调整,就可以完成数据的采集。适用于FSU改造,利旧等场景。监听模式的启动需要额外的准备工作,对于linux系统的FSU基本都可以适用。
enable_sp_hook enable_sp_hook=0 监听模式使用:激活监听模式。1. 内核驱动模式 2.钩子模式
fsu_model FSU的硬件适配模型,用于告诉SMDDevice当前硬件的接口配置:当前支持:gfsu,gfsu2, smd303x,smd303mini,znvig2100,znvig2000, znv_eisu, dgm, unicom_su其中配置为unicom_su时,SMDDevice根据白盒化标准自动识别配置,unicom_su已经代替smd303x和smd303mini作为君光FSU的默认配置。对其他没有进行联通白盒化适配的FSU,可以继续自行适配各自型号。
controller controller=modbus_server控制器软件是个modbus服务器,把数据转成modubs服务器导出。 当作为仪表控制器软件时,由于SMDDevice只是负载采集告警和控制,具体仪表的业务逻辑还需要一个控制器实现,就是这个。
sample_thread_num sample_thread_num=10 采集线程池的线程数量。默认建议值10。考虑:这个是用来控制实时采集数据调度的线程池,一般情况下应超过本机支持的串口数量并为DI,AI,DO,电表留有余量,如果发现采集不顺利,没有数据,可以调高。当激活全部26个串口时,应设置为30以上?放入本线程池的动作都应该是实时调用。
work_thread_num work_thread_num=20 后台线程池的线程数量。默认建议值20. 考虑:这个是执行告警判断,数据保存等慢动作。即使是慢动作,也要考虑CPU的承受能力,尤其FSU上,主频不高。
log_threshold SMDDevice在shell直接时,打印告警判断日志
log_driver 打印加载设备协议驱动日志
log_sp 打印串口调试数据日志,需要配合sp_debug
sp_debug sp_debug=1 数组类型,串口从0开始(用户一般说1开始),sp_debug=0表示启动串口0的调试打印,sp_debug=5表示启动串口5的调试打印。
log_dev 打印设备管理日志,主要是电能相关
log_database 打印数据库操作相关日志
log_fial 打印FSU适配层相关日志,主要用于查看FSU采集的原始值
ws_port 默认81 网页串口数据调试连接的websocket端口
env_mode 环境设备模式 烟感水浸温湿度的告警和信号会收敛到一个虚拟机房环境设备下
b_mode 1 是联通, 2电信
b_mode_port 默认8080 B服务器的端口,用于B接口增强模式解决PHP性能不足问题
b_mode_worker 默认5 B服务器的并发数
cache_driver memcached,redis 目前由于FSU的性能不高,memcache相比redis没有明显优势,但redis确可以重启不丢数据,未来考虑默认redis

常用的调试参数:

  • 调试串口
    log_sp=1
    sp_debug=1
  • 调试FSU原始DI,AI数值
    log_fial=1