| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <config> |
| | | <server name="通信中间件" showStartInfo="true" company="http://www.dyjs.com"/> |
| | | <!-- |
| | | 基本配置 |
| | | orgTag 机构tag(对应机构tag,和数据源后缀) |
| | | isLowPower: 是否为低功耗 |
| | | onlyDealRtus:只处理指定RTU地址设备,其他设备数据丢弃,多个RTU地址用英文逗号隔开, |
| | | onlyOneProtocol:在支持多通信协议时,只有RTU上线了,才能识别出该RTU实际用的通信协议,进而用此协议解析上行数据及构造下行命令。 |
| | | 如果RTU未曾上线(通信中间件启动后该RTU未曾上线),那么在向它发送下行命令时,不能判断出其采用的协议,也不能构造命令,尤其是低功耗情况下,不上线是正常现象。 |
| | | 当只有一个协议情况下,在RTU未曾上线时,也能用此协议构造命令并缓存下来,尤其适合低功耗情况。 |
| | | onlyOneProtocol=true: 通信中间件当前只有一个协议 |
| | | downComandMaxResendTimes: 下行命令允许发送的最大次数X,即允许重发X-1 |
| | | commandSendInterval: 针对一个RTU,下发命令的时间间隔(秒) |
| | | cachWaitResultTimeout: 命令已经发送达最大次数,仍未收到命令结果,需要在缓存继续等待,其等待最大时长(秒),本系统RTU,对于开关泵命令,其先执行开关泵报,然后再进行命令应答,所以此值 要大一些 |
| | | offLineCachTimeout: 不在线缓存的命令最大缓存时长(秒) |
| | | lastUpDataTimeLive: TCP上行数据时刻缓存时长(毫秒),当达到时长时,TCP上行数据时刻被清空,采用TCP上行数据时刻目的是,阻止上行数据同时下发数据,因为RTU处理不过来(经初次实验,1秒还是有问题,2秒无问题) |
| | | dbDataIdSuffix:数据库数据id生成器的id后缀,0是默认的后缀,一般web系统应用,数据中间件id后缀大于等于1 |
| | | cacheUpDownDataWarnCount:上下行数据缓存队列中缓存数据个数的报警量,这个与现实项目所接水表数相关 |
| | | cacheUpDownDataMaxCount:上下行数据缓存队列中缓存数据个数的最大值,这个与现实项目所接水表数相关 |
| | | disconnectedByNoUpDataMinutes:没有上行数据的分钟数,达到这个分钟数,认为RTU断网了,取值范围是2-100 |
| | | workReportDealOneByTimes: 工作报太频繁,N次上报处理1次,取值范围是1-100 |
| | | sendDingDingAlarmMsInterval: 有报警发生时,向钉钉发送消息的间隔时长(分钟) |
| | | --> |
| | | <base |
| | | <server name="通信中间件" showStartInfo="true" company="http://www.dyjs.com"/> |
| | | <!-- |
| | | 基本配置 |
| | | orgTag 机构tag(对应机构tag,和数据源后缀) |
| | | isLowPower: 是否为低功耗 |
| | | onlyDealRtus:只处理指定RTU地址设备,其他设备数据丢弃,多个RTU地址用英文逗号隔开, |
| | | onlyOneProtocol:在支持多通信协议时,只有RTU上线了,才能识别出该RTU实际用的通信协议,进而用此协议解析上行数据及构造下行命令。 |
| | | 如果RTU未曾上线(通信中间件启动后该RTU未曾上线),那么在向它发送下行命令时,不能判断出其采用的协议,也不能构造命令,尤其是低功耗情况下,不上线是正常现象。 |
| | | 当只有一个协议情况下,在RTU未曾上线时,也能用此协议构造命令并缓存下来,尤其适合低功耗情况。 |
| | | onlyOneProtocol=true: 通信中间件当前只有一个协议 |
| | | downComandMaxResendTimes: 下行命令允许发送的最大次数X,即允许重发X-1 |
| | | commandSendInterval: 针对一个RTU,下发命令的时间间隔(秒) |
| | | fastCommandSendInterval: 针对一个RTU,下发快速命令(如升级命令)的时间间隔(毫秒),此配置作用力受下面配置项lastUpDataTimeLive限制 |
| | | cacheWaitResultTimeout: 命令已经发送达最大次数,仍未收到命令结果,需要在缓存继续等待,其等待最大时长(秒),本系统RTU,对于开关泵命令,其先执行开关泵报,然后再进行命令应答,所以此值 要大一些 |
| | | offLineCacheTimeout: 不在线缓存的命令最大缓存时长(秒) |
| | | lastUpDataTimeLive: TCP上行数据时刻缓存时长(毫秒),当达到时长时,TCP上行数据时刻被清空,采用TCP上行数据时刻目的是,阻止上行数据同时下发数据,因为RTU处理不过来 |
| | | dbDataIdSuffix:数据库数据id生成器的id后缀,0是默认的后缀,一般web系统应用,数据中间件id后缀大于等于1 |
| | | cacheUpDownDataWarnCount:上下行数据缓存队列中缓存数据个数的报警量,这个与现实项目所接水表数相关 |
| | | cacheUpDownDataMaxCount:上下行数据缓存队列中缓存数据个数的最大值,这个与现实项目所接水表数相关 |
| | | disconnectedByNoUpDataMinutes:没有上行数据的分钟数,达到这个分钟数,认为RTU断网了,取值范围是2-100 |
| | | workReportDealOneByTimes: 工作报太频繁,N次上报处理1次,取值范围是1-100 |
| | | intakeAlarmLossMinValue: 触发发送钉钉报警消息的取水口日漏损量的最小值(包括但除0.0外)(小数) |
| | | sendDingDingAlarmMsInterval: 有报警发生时,向钉钉发送消息的间隔时长(分钟) |
| | | --> |
| | | <base |
| | | orgTag="ym" |
| | | isLowPower="false" |
| | | onlyDealRtus="" |
| | | onlyOneProtocol="false" |
| | | downComandMaxResendTimes="1" |
| | | commandSendInterval="2" |
| | | cachWaitResultTimeout="120" |
| | | offLineCachTimeout="86400" |
| | | commandSendInterval="3" |
| | | fastCommandSendInterval="500" |
| | | cacheWaitResultTimeout="120" |
| | | offLineCacheTimeout="86400" |
| | | lastUpDataTimeLive="500" |
| | | dbDataIdSuffix="0" |
| | | cacheUpDownDataWarnCount="100000" |
| | | cacheUpDownDataMaxCount="110000" |
| | | disconnectedByNoUpDataMinutes="3" |
| | | workReportDealOneByTimes="5" |
| | | intakeAlarmLossMinValue="1.0" |
| | | sendDingDingAlarmMsInterval="60" |
| | | /> |
| | | |
| | | <!-- |
| | | 2024-08-22 此配置暂时未应用 |
| | | centerAddr: 中心地址,当前,centerAddr未用到 |
| | | synchroRtuClock: 是否对RTU校时 |
| | | synchroRtuClockTimepieces:当RTU与服务器时钟相差一定毫秒(配置文件是秒钟)后,进行校时 |
| | | --> |
| | | <protocol |
| | | /> |
| | | |
| | | <!-- |
| | | 2024-08-22 此配置暂时未应用 |
| | | centerAddr: 中心地址,当前,centerAddr未用到 |
| | | synchroRtuClock: 是否对RTU校时 |
| | | synchroRtuClockTimepieces:当RTU与服务器时钟相差一定毫秒(配置文件是秒钟)后,进行校时 |
| | | --> |
| | | <protocol |
| | | centerAddr="1" |
| | | synchroRtuClock="true" |
| | | synchroRtuClockTimepieces="300000" |
| | | /> |
| | | |
| | | /> |
| | | |
| | | <!-- 2024-10-08 此配置暂时未应用 |
| | | 软件升级 --> |
| | | <updateRtuSoft enable="true"> |
| | | <soft1 enable="true" oldVersionName="meter_v2_0,meter_v1_0" > |
| | | <newVersion newVersionName="meter_v3_0" file="rtuSoft/meter_v3_0.txt"></newVersion> |
| | | </soft1> |
| | | <!-- |
| | | <soft2 enable="false" oldVersionName="rtu_v1_0,rtu_v2_0,rtu_v3_0" > |
| | | <newVersion newVersionName="rtu_v4_0" file="rtuSoft/rtu_v4_0.txt"></newVersion> |
| | | </soft2> |
| | | --> |
| | | </updateRtuSoft> |
| | | |
| | | <!-- |
| | | 支持模块 |
| | | 短工作时长线程池,线程负责用时较短的工作任务 |
| | | short_maxThread: 池中最大线程数为所有CPU核数+1(short池与long池各分一半),若为-1,不受限制 ,设置为0,表示不启动线程池 |
| | | short_minThread: 池中最小线程数,若为-1,不受限制,设置为0,表示不启动线程池 |
| | | short_freeTimeout: 线程数空闲时长,若池中线程数量大于minThread,且有的线程空闲时长超过freeTimeout,则清除该线程,为了不清除,把minThread与maxThread设置相等 |
| | | short_busyTimeout:线程不间断工作时长(单位为秒)超时限,认为线程已经了崩溃,将强制清除,短工作时长设置为5秒 |
| | | 长工作时长线程池,线程负责用时较长的工作任务,例如数据库存取操作 |
| | | long_maxThread: 池中最大线程数为所有CPU核数+1(short池与long池各分一半),若为-1,不受限制,设置为0,表示不启动线程池 |
| | | long_minThread: 池中最小线程数,若为-1,不受限制,设置为0,表示不启动线程池 |
| | | long_freeTimeout: 线程数空闲时长,若池中线程数量大于minThread,且有的线程空闲时长超过freeTimeout,则清除该线程 |
| | | long_busyTimeout:线程不间断工作时长(单位为秒)超时限,若为-1,不受限制 |
| | | enableThreadPool:是否启用线程池 |
| | | --> |
| | | <support |
| | | <!-- RTU 软件升级 |
| | | enable: 模块是否启动 |
| | | openNoUpgrade: 阀开(泵开)不执行升级 |
| | | lastOpenMaxGoOn: 阀开(泵开)状态设置以来持续最长时间(秒钟),超过这个时间认为状态无效(这个时长取决于工作报间隔) |
| | | noOneRtuUpgradeMaxDuration:升级任务设置后,无一设备升级最大时长(秒),超过这个时长,认为升级任务完成,取值范围是5分钟~60分钟 |
| | | runningAndIdleDuration:rtu升级启动后进入升级中状态,但某种情况下RTU不再通信了,一直处于等待状态,等待达到一定时长(秒,一般与noOneRtuUpgradeMaxDuration相等)认为升级失败(一包死或多包死),取值范围是5分钟~60分钟 |
| | | failTryTimes:升级失败后(针对的是在线进行了升级下发命令),重新偿试升级次数,当设置为0时表示不重新偿试升级 |
| | | ugMaxRtuAtOnce:为了缓解通信中间件的压力,同时支持升级的RTU台数,当设置为0时表示不受限制 |
| | | rtuOffLineWaitDuration: rtu离线,等待其升级的时长(秒),超过这个时间,设置其升级失败,且设置升级任务完成 |
| | | notifyStateInterval: 升级状态通知间隔(秒) |
| | | notifyTimesAfterOver: 升级结束后,再向web服务系统通知状态的次数 |
| | | --> |
| | | <upgrade enable="true" |
| | | openNoUpgrade="true" |
| | | lastOpenMaxGoOn="1800" |
| | | noOneRtuUpgradeMaxDuration="1200" |
| | | runningAndIdleDuration="1200" |
| | | failTryTimes="2" |
| | | ugMaxRtuAtOnce="5000" |
| | | rtuOffLineWaitDuration="1800" |
| | | notifyStateInterval="2" |
| | | notifyTimesAfterOver="1" |
| | | /> |
| | | |
| | | |
| | | <!-- |
| | | 支持模块 |
| | | 短工作时长线程池,线程负责用时较短的工作任务 |
| | | short_maxThread: 池中最大线程数为所有CPU核数+1(short池与long池各分一半),若为-1,不受限制 ,设置为0,表示不启动线程池 |
| | | short_minThread: 池中最小线程数,若为-1,不受限制,设置为0,表示不启动线程池 |
| | | short_freeTimeout: 线程数空闲时长,若池中线程数量大于minThread,且有的线程空闲时长超过freeTimeout,则清除该线程,为了不清除,把minThread与maxThread设置相等 |
| | | short_busyTimeout:线程不间断工作时长(单位为秒)超时限,认为线程已经了崩溃,将强制清除,短工作时长设置为5秒 |
| | | 长工作时长线程池,线程负责用时较长的工作任务,例如数据库存取操作 |
| | | long_maxThread: 池中最大线程数为所有CPU核数+1(short池与long池各分一半),若为-1,不受限制,设置为0,表示不启动线程池 |
| | | long_minThread: 池中最小线程数,若为-1,不受限制,设置为0,表示不启动线程池 |
| | | long_freeTimeout: 线程数空闲时长,若池中线程数量大于minThread,且有的线程空闲时长超过freeTimeout,则清除该线程 |
| | | long_busyTimeout:线程不间断工作时长(单位为秒)超时限,若为-1,不受限制 |
| | | enableThreadPool:是否启用线程池 |
| | | --> |
| | | <support |
| | | short_maxThread="6" |
| | | short_minThread="6" |
| | | short_freeTimeout="60" |
| | |
| | | long_freeTimeout="60" |
| | | long_busyTimeout="-1" |
| | | enableThreadPool="true" |
| | | /> |
| | | |
| | | <!-- |
| | | 资源模块 |
| | | rtuLogDir:RTU日志文件存储目录(相对目录) |
| | | rtuLogFileMaxSize:RTU日志文件最大字节数(B) |
| | | rtuLogFileMaxCount:RTU日志文件最大文件数 |
| | | monitorInterval:Rtu状态监视间隔(分钟) |
| | | saveDbInterval:Rtu状态存数据库间隔(分钟) |
| | | --> |
| | | <resource |
| | | /> |
| | | |
| | | <!-- |
| | | 资源模块 |
| | | rtuLogDir:RTU日志文件存储目录(相对目录) |
| | | rtuLogFileMaxSize:RTU日志文件最大字节数(B) |
| | | rtuLogFileMaxCount:RTU日志文件最大文件数 |
| | | monitorInterval:Rtu状态监视间隔(分钟) |
| | | saveDbInterval:Rtu状态存数据库间隔(分钟) |
| | | --> |
| | | <resource |
| | | rtuLogDir="rtuLogs/" |
| | | rtuLogFileMaxSize="100000" |
| | | rtuLogFileMaxSize="1000000" |
| | | rtuLogFileMaxCount="2" |
| | | monitorInterval="2" |
| | | saveDbInterval="10" |
| | | /> |
| | | |
| | | |
| | | <!-- |
| | | 2024-08-22 此配置暂时未应用 |
| | | port:rmi服务端口号 |
| | | context:rmi服务上下文 |
| | | --> |
| | | <rmi enable="true" |
| | | port="65400" |
| | | context="rtuMw" |
| | | /> |
| | | |
| | | <!-- |
| | | sleepBigBusy:主线程大忙时每次执行间隔时长(毫秒) |
| | | sleepSmallBusy:主线程小忙时每次执行间隔时长(毫秒) |
| | | queueWarnSize: 缓存队列节点数警告数量 |
| | | queueMaxSize: 缓存队列节点数最大数量 |
| | | --> |
| | | <core |
| | | sleepBigBusy="100" |
| | | sleepSmallBusy="500" |
| | | /> |
| | | |
| | | |
| | | <!-- |
| | | 2024-08-22 此配置暂时未应用 |
| | | port:rmi服务端口号 |
| | | context:rmi服务上下文 |
| | | --> |
| | | <rmi enable="true" |
| | | port="65400" |
| | | context="rtuMw" |
| | | /> |
| | | |
| | | <!-- |
| | | coreInterval:主线程每次执行间隔时长(毫秒) |
| | | queueWarnSize: 缓存队列节点数警告数量 |
| | | queueMaxSize: 缓存队列节点数最大数量 |
| | | --> |
| | | <core |
| | | coreInterval="100" |
| | | queueWarnSize="100000" |
| | | queueMaxSize="300000" |
| | | /> |
| | | |
| | | <!-- |
| | | port:端口 |
| | | processors: Mina IO 处理上下行数据的线程数,一般是CPU总核数+1 |
| | | idle: 发呆时长(秒) |
| | | --> |
| | | <tcp enable="true" |
| | | port="60000" |
| | | processors="3" |
| | | idle="10" |
| | | /> |
| | | /> |
| | | |
| | | <!-- |
| | | port:端口 |
| | | processors: Mina IO 处理上下行数据的线程数,一般是CPU总核数+1 |
| | | idle: 发呆时长(秒) |
| | | --> |
| | | <tcp enable="true" |
| | | port="60000" |
| | | processors="3" |
| | | idle="10" |
| | | /> |
| | | |
| | | </config> |