欢迎您 登录 | 注册| 找回密码 | 帮助

日志

使用批处理让eDNA的配置操作变容易

董维康_MES专家  发布于:2014-09-19

      最近由于一个项目的缘故,需要将已经在记忆中比较模糊的eDNA的相关技术要点进行梳理并整理,7,8年前只是使用而少有记录,这段时间顺带整理一下,也算是对在国内使用eDNA实时/历史数据库产品的用户分享一点个人的经验吧。
1d5438d【中国自动化网社区】a23447【http://sns.ca800.com】aa
      使用过eDNA实时/历史数据库的用户都知道,理解eDNA软件的系统架构及工作原理要比其他的同类实时/历史数据库要多花一点时间,而配置管理eDNA系统更是比其他同类产品要麻烦得多,用户手册读起来不困难,但要想eDNA中增删修改服务、权限、测点等都是比较繁琐的事情。
      为什么这么说呢?
      eDNA中测点的命名规则为:站点名.实时服务名.测点名。
      eDNA的测点名称是以点号做分隔符。第一层是站点名,一般在项目中以项目名称缩写组成(8个英文字符限制且不支持中文);第二层是实时服务名,一般在项目中以所采集的子系统的名称缩写组成(8个英文字符限制且不支持中文);第三层是测点名称,有3种测点名记录方式。短点名是8个字符,长点名是60个字符,扩展点名是128个字符,都是设计不好而形成的产物啊。de6ee【中国自动化网社区】8b9bf1【http://sns.ca800.com】2b57d61
      由于在eDNA的点名中的第三层无法在向下分层次了,因此在一个工程中如果要采集不同的子系统,那么就会使用不同的实时服务名称来区分。但创建新的实时服务和对应的配置服务,就会涉及如下操作:
      1) 在eDNA的软件目录下找一个已经存在的实时服务目录和配置服务目录作为源,生成新的实时服务和配置服务的目录,定义好新的实时服务目录和配置服务目录的名称,一般以新要采集的子系统缩写为名。
      2) 进入新的实时服务文件夹下,使用记事本一类的工具打开后缀名为.cfg的配置文件,阅读eDNA用户手册后,修改现有的服务名称及其他参数。
      3) 进入新的配置服务文件夹下,使用记事本一类的工具打开后缀名为.cfg的配置文件,阅读eDNA用户手册后,修改现有的服务名称及其他参数。
      4) 在eDNA系统启动的情况下,使用服务目录配置工具SvcCfg.exe或eDnaExplorer.exe来添加新的实时服务和配置服务,这个过程不算麻烦,填写几个参数就可以了。
      5) 使用安全配置工具SecCfg.exe或eDnaExplorer.exe来添加新配置服务的名称、操作事件、用户权限,这个过程不轻松啊,3个步骤,每个步骤都有好几个参数。不好好看文档是配置不对的。
      6) 使用BOSS配置工具eDnaExplorer.exe来添加新的实时服务和配置服务一堆启动配置参数,这个过程及其麻烦,一个对话框一个对话框的填。
      7) 通过eDnaExplorer.exe来启动新的实时服务和配置服务。
      准确无误的完成以上7个步骤,就可以向eDNA数据库中添加新子系统的测点了,做eDNA数据库的配置工程师,大部分时间都是干以上这些事情了。de6ee【中国自动化网社区】8b9bf1【http://sns.ca800.com】2b57d61
8eb7e4【中国自动化网社区】cb0ad2【http://sns.ca800.com】dd861f
      对其他实时/历史数据库产品比较熟悉的同学,比较一下,是不是发现比操作配置其他数据库要麻烦得多啊。
8eb7e4【中国自动化网社区】cb0ad2【http://sns.ca800.com】dd861f
      为了让各位同学不在那么痛苦,特意奉献一段Windows的批处理来解决大家的痛苦。(实际上eDNA在国内的用户是很少的,本文能帮助到的用户有限,有时间了我在整理一下其他实时/历史数据库产品产品的一些经验进行分享
::——————————————————————脚本开始———————————
@echo off
::----------------------------定义基础信息---------------------------------------------
::定义站点名
set site=DEMO
::定义实时服务名
set rt=T2SERV
::定义对应的配置服务名
set cfg=T2CFG
::定义实时服务端口
set RTPort=18002
::定义实时服务程序名
set RTExeName=UnivServ.exe
::定义配置服务程序名
set CFGExeName=DBServ.exe
8eb7e4【中国自动化网社区】cb0ad2【http://sns.ca800.com】dd861f
::----------------------------定义在服务目录中添加的服务名称------------------------------
set dirname=%site%.SVCDIR
set rtname=%site%.%rt%
set cfgname=%site%.%cfg%
set secservice=%site%.SECURITY
::----------------------------定义在安全服务中添加的APP/Event/permission名称----------
set AppName=%cfg%
set EvName=MODIFY
set UserName=*
set AccessPerm=M
set AppDesc=%AppName%
set EvDesc=%EvName%
::----------------------------定义在BOSS服务注册的服务名称--------------------------------
set NameBOSS=%site%.boss
set RTExeDirectory=%rt%
set RTDataDirectory=%rt%
set CFGExeDirectory=%cfg%
set CFGDataDirectory=%cfg%
::----------------------------定义结束---------------------------------------------
06【中国自动化网社区】c76a80【http://sns.ca800.com】12
::——————————————————————选择菜单———————————
color 0A
06【中国自动化网社区】c76a80【http://sns.ca800.com】12
:top
ECHO ===================================================
echo eDNA 站点名:                       %site%
echo ******************************************************************
echo 新添加的实时服务名:                %rt%
echo 新添加的实时服务程序名:            %RTExeName%
echo ******************************************************************
echo 新添加的配置服务名:                %cfg%
echo 新添加的配置服务程序名:            %CFGExeName%
echo ******************************************************************
echo 实时服务监听的端口:                %rtport%
ECHO ====================================================
ECHO 核对上面的信息是否正确,准确无误按任意键继续。
ECHO 如果有误,输入x键并回车或直接关闭窗口,重新定义脚本中变量后再次运行。
ECHO ─────────────────────────────────
ECHO.
ECHO 1. 按回车键继续
ECHO 2. 按x键并回车后编辑脚本
ECHO.
06【中国自动化网社区】c76a80【http://sns.ca800.com】12
:cho 
SET Choice=
SET /P Choice=选择:
rem 设定变量"Choice"为用户输入的字符
IF NOT "%Choice%"=="" SET Choice=%Choice:~0,1%
rem 如果输入大于1位,取第1位,比如输入132,则返回值为1
ECHO.
IF /I "%Choice%" NEQ "x" GOTO gogogo
IF /I "%Choice%" EQU "x" GOTO endx
rem 为避免出现返回值为空或含空格而导致程序异常,需在变量外另加双引号
rem 注意,IF语句需要双等于号
ECHO 选择无效,请重新输入
ECHO.
GOTO top
06【中国自动化网社区】c76a80【http://sns.ca800.com】12
pause 
::——————————————美丽的分割线————————————
969b【中国自动化网社区】f808a5【http://sns.ca800.com】4c3a8bd
:gogogo
::-------------------------------------------------------------------------
::--------------检测eDNA系统是否在运行-------------------------------------
::-------------------------------------------------------------------------
cls
tasklist|find /i "SVCDIR.exe" ||echo eDNA未运行,请先运行eDNA SVCDIR!
tasklist|find /i "SecServ.exe" ||echo eDNA未运行,请先运行eDNA SecServ!
tasklist|find /i "Boss.exe" ||echo eDNA未运行,请先运行eDNA BOSS!
tasklist|find /i "Boss.exe" ||pause >nul
tasklist|find /i "Boss.exe" ||exit
cls
::-------------------------------------------------------------------------
::--------------检测eDNA系统运行状态结束-----------------------------------
::-------------------------------------------------------------------------
969b【中国自动化网社区】f808a5【http://sns.ca800.com】4c3a8bd
::-------------------------------------------------------------------------
::--------------创建新的实时服务目录及配置文件-----------------------------
::-------------------------------------------------------------------------
if not exist %rt% md %rt%
copy /y Sample\%RTExeName% %rt%\
969b【中国自动化网社区】f808a5【http://sns.ca800.com】4c3a8bd
(echo SERVICE      %site%.%rt%
echo HISTORY_SERVICE       %site%.HISTORY
echo CONFIGURATION_SERVICE      %site%.%cfg%
echo TCPIP_INPUT_ADDRESS        0.0.0.0,%RTPort%
echo NUMBER_OF_POINTS           10000
echo HIST_QUEUE_SIZE            3000
echo INIT_CVT
echo EXTENDED_INFO_SUPPORT        YES
echo TCPIP_SOCKET_TIMEOUT         3600
echo ACK_DATA_PACKETS) > UnivServ.cfg
ping 127.0.0.1 -1 >nul
move /y UnivServ.cfg %rt%\
969b【中国自动化网社区】f808a5【http://sns.ca800.com】4c3a8bd
::-------------------------------------------------------------------------
::--------------创建新配置服务目录及配置文件-------------------------------
::-------------------------------------------------------------------------
if not exist %cfg% md %cfg%
copy /y Sample\%CFGExeName% %cfg%\
969b【中国自动化网社区】f808a5【http://sns.ca800.com】4c3a8bd
(echo SERVICE      %site%.%cfg%
echo DBSERV_SECURITY_SVC = %site%.Security
echo DBSERV_MAIN_SEC_EVENT = MODIFY
echo DBSERV_SYSTEM_TYPE = POINTS
echo DBSERV_SQL_FILENAME = CM.DB) > DBServ.cfg
ping 127.0.0.1 -1 >nul
969b【中国自动化网社区】f808a5【http://sns.ca800.com】4c3a8bd
move /y DBServ.cfg %cfg%\
::-------------------------------------------------------------------------
::----------------------------向服务目录注册服务--------------------------
::-------------------------------------------------------------------------
svccfg add -b -s%dirname% -n%rtname% -tSSERVER -d%rtname%
svccfg add -b -s%dirname% -n%cfgname% -tCMCFG -d%cfgname%
969b【中国自动化网社区】f808a5【http://sns.ca800.com】4c3a8bd
::-------------------------------------------------------------------------
::-----------------向安全服务中添加的APP/Event/permission名称-----
::-------------------------------------------------------------------------
seccfg add -b -s%SecService% -a%cfg% -da%AppDesc%
969b【中国自动化网社区】f808a5【http://sns.ca800.com】4c3a8bd
seccfg add -b -s%SecService% -a%cfg% -p* -dpM
969b【中国自动化网社区】f808a5【http://sns.ca800.com】4c3a8bd
seccfg add -b -s%SecService% -a%cfg% -eMODIFY -deMODIFY
969b【中国自动化网社区】f808a5【http://sns.ca800.com】4c3a8bd
seccfg add -b -s%SecService% -a%cfg% -eMODIFY -p* -dpM
969b【中国自动化网社区】f808a5【http://sns.ca800.com】4c3a8bd
::-------------------------------------------------------------------------
::-------------------向BOSS服务中注册新增加的服务--------------------
::-------------------------------------------------------------------------
prboss add -b -nb%NameBOSS% -ss%site% -sn%rt% -sd%site%.%rt% -stSSERVER -en%RTExeName% -ed%RTExeDirectory% -dd%RTDataDirectory% -clRUN_AS_NT_SERVICE
prboss add -b -nb%NameBOSS% -ss%site% -sn%cfg% -sd%site%.%cfg% -stCMCFG -en%CFGExeName% -ed%CFGExeDirectory% -dd%CFGDataDirectory% -clRUN_AS_NT_SERVICE
969b【中国自动化网社区】f808a5【http://sns.ca800.com】4c3a8bd
969b【中国自动化网社区】f808a5【http://sns.ca800.com】4c3a8bd
::-------------------------------------------------------------------------
::---------------------启动新增加的实时服务和配置服务-----------------
::-------------------------------------------------------------------------
prboss start -b -nb%NameBOSS% -ss%site% -sn%rt%
ping 127.0.0.1 -n 1 >nul
prboss start -b -nb%NameBOSS% -ss%site% -sn%cfg%
969b【中国自动化网社区】f808a5【http://sns.ca800.com】4c3a8bd
goto end
::-------------------------------------------------------------------------
969b【中国自动化网社区】f808a5【http://sns.ca800.com】4c3a8bd
:endx
start notepad.exe %cd%\Add_eDNA_Server.cmd
969b【中国自动化网社区】f808a5【http://sns.ca800.com】4c3a8bd
:end
echo 请按任意键退出. . .
pause >nul & exit
969b【中国自动化网社区】f808a5【http://sns.ca800.com】4c3a8bd
::——————————————————————脚本结束———————————
      将以上脚本拷贝后粘贴到记事本,并另外保存为任意名称.cmd文件,将此文件拷贝到eDNA系统目录下,定义好文件头所说的基础信息后,运行即可向指定的eDNA系统中添加并注册新的实时服务和配置服务。
969b【中国自动化网社区】f808a5【http://sns.ca800.com】4c3a8bd
      在项目中使用eDNA实时/历史数据库的同学们,这段脚本能解决你们的痛苦吗?969b【中国自动化网社区】f808a5【http://sns.ca800.com】4c3a8bd
969b【中国自动化网社区】f808a5【http://sns.ca800.com】4c3a8bd
 
回复 (4)    |   2840次阅读   |   分享   |   举报

下一篇:eDNA的产品特点及个人点评 >>

回复

关于我们   |    免责声明   |    隐私声明   |    社区准则   |    不良信息举报   |    联系我们

Copyright 2010-2016 中国自动化网 All Rights Reserved. 粤ICP备09051729