tmIoT Logic Studio
Techmation Internet of Things Develop Studio
  • updates:
    1. #348:启用作业树表Precesses表ExecMode字段,INT类型 默认值为0, 0:_self;1:_blank;实现打开作业树打开新页面的模式可配置
    2. #349:作业树表Precesses 新增APPType字段,INT类型 默认值为0,0:该作业是web应用;1:该作业是移动APP应用
    3. #349:作业树动作表ProcessesActions 新增APPType字段,INT类型 默认值为0,0:该作业动作是web应用;1:该作业动作是移动APP应用
    4. #350:作业树管理页面,可根据应用类型来管理功能模块和页面
    5. #351:角色作权限管理页面,可根据应用类型,角色来管理授权信息
    6. #352:用户作权限管理页面,可根据应用类型,用户来管理授权信息
  • adds:
    1. 修改yjDBService.engine.mysql.js,selectData分页时函数用SQL_CALC_FOUND_ROWS一起查询出总条数,比原来再查一次效率有提高。config.db_Connection.connection.multipleStatements需要设置为true。
  • updates:
    1. #347:修改yjSingleGrid.block.js,yjSingleGrid.save.beforeSave函数如果返回false,可以中断流程
    2. #347:修改yjSingleTreeGrid.block.js,yjSingleTreeGrid.save.beforeSave函数如果返回false,可以中断流程
  • adds:
    1. #318:实现用refresh-token刷新access-token的机制。
  • updates:
    1. #321:增强错误处理机制,不只返回错误信息,还返回错误标识{code:xxx,message:xxx}。
    2. 增加yjResource.errors.js,统一管理系统的错误,避免ID重复
    3. 修改webserver端的/client/js/foil/yjClient.remote.js的yjClient.ajax()函数,检测到access-token过期时,会用refresh-token刷新,如果refresh-token过期,会重定向到登录页面。
  • deletes:
    1. 删除yjCookie.js文件中的isLoggedIn。
  • updates:
    1. #271:yjDBService.engine.mysql.js的execMulti函数,通过参数isNeedTransaction来决定是否启用Transaction,预设为false,启动的Transaction在2分钟内没有提交或回滚会自动回滚。dbHandler删除了done函数,增加end函数。
    2. #228:调用yjSMS.js发送短信时,错误:Non-whitespace before first tag.
    3. #288:yjUtils.js的quotedStr会把0转成''
    4. #289:bizserver和webserver分开部署时,bizserver的config.security.isNeedSession设为true,bizserver仍然会报错:{'success':false,'message':'No token provided.'}
    5. #307:yjPusher.js和yjPusher.ws.js增加addMsgNotifier函数,来监听消息通知。
    6. #308:websocket推送,config增加security.websocket.ws参数来支持yjPusher.ws.js模组设置ws模组的参数,如{maxPayload:1024*1024*10}
    7. #312:制定测试用例脚本规则,增加yjTestcase.js解析测试用例脚本。
  • adds:
    1. #256:操作数据库时,如果出错,在err对象上添加sql属性,console和日志文件中可以看到sql(没有参数替换的sql)。特别注意,mysql组件升级到v2.14.0及以上版本后,err可以显示参数替换后的最终的sql语句。
    2. #263:增加/biz/sn/_getNewSN序列号产生器。
    3. #266:增加支持允许跨站访问。由参数config.security.isAllowCrossDomain决定,预设是false。
    4. #183:增加yjPusher.ws.js,支持标准web socket推送,使用ws模组。这样Android手机端能配合使用推送。在yjDefaultService.js中增加“/system.monitor.socket.ws”来观察websocket中房间的情况。
    5. #268:增加支持对body的大小配置,预设10k可能太小,会出现错误:'request entity too large'。参数config.security.bodyParser.urlencoded,如{limit:'10m'}
  • deletes:
    1. 废止了REST引擎'remote.restler'和'native',建议使用'remote.superagent'。
    2. 文件补齐了@author字段。
  • adds:
    1. 增加定时推送功能元件,yjPusher.timer.js和yjPusher.timer.scope.js。
  • updates:
    1. 修正#222:token太长导致登录后不跳转都首页,又是跳转到登录页。刪除了req.session.yjUser.org.children,減小了token長度。
  • adds:
    1. 增加#203:增加支持https。参数config.potocols设置使用一种或两种协议,如['http','https'],预设是['http']。参数config.port_https指定https的监听端口,预设为3443。
  • updates:
    1. 修正#212:在使用sqlserver时,组织管理作业报错:选择列表中的列 'Orgs.OrgOIDParent' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。
  • adds:
    1. 增加#182:使用json web token机制检查登录,同时支持PoolingServer/BizServer/WebServer。
    2. 增加参数config.locale.isDisplayNationalFlag(预设是false)来决定在网页的语言选择栏上是否显示国旗。
    3. 增加参数config.product.isDisplayDesigner(预设是true)来决定是否在页面的footer和about中显示软件设计者的信息(yjGlobal.desginer)。
    4. 增加#190:使用cluster模组实现多进程负载均衡。
    5. 增加#196:增加参数config.product.ICP设置网站在工信部的备案号。页面底部会显示此备案号。
    6. 增加#197:启用Processes表的ImageAID varchar(64)字段,来存储作业的图标路径。作业树上会显示此图标。
    7. 增加config.theme.dir参数,指明主题所在的目录。
    8. 增加#209:把客户端subscribe传递来的参数记录到socket.tmParams上;yjPusher.js增加pushMore函数,参数function getData(socket)可以按客户端的参数返回要推送的资料。
  • updates:
    1. 把layout.ejs、master-notree.ejs的公用js代码提取出来,放到/client/js/foil下面的单独js文件中,并添加jsdoc格式的注释。
  • deletes:
    1. 删除config.rootDir参数。
      • 通过config.theme.dir参数,指明theme所在的目录。
      • 如果config.logDir没有指定,就是yjApp.ini.js所在目录的上2级,即:../../log
      • 如果config.cache.engine=='native'并且config.cache.connection.dir没有指定,就是yjApp.ini.js所在目录的上2级,即:../../uploaded
  • adds:
    1. 增加#168:Orgs表增加ContactorEMail字段,增加组织的页面VI相关的字段:VI_Name,VI_Description,VI_Logo,VI_Banner。
    2. 增加#168:config增加org.isShowOrgVI参数,如果是true,登陆后,页面的Name/Description/Logo/Banner按照用户所属的组织的VI来显示。
    3. 增加#169:上传图片的服务可以产生缩略图。
  • updates:
    1. 修正#170:同一个浏览器同时操作此框架开发的两个不同的系统时,登录状态冲突。
  • adds:
    1. 增加:DBService连接参数配置中增加package参数来决定使用哪个npm包,如:
      db_Connection : {
      engine:'sqlserver',
      package:'msnodesqlv8',
      connection:{
      driver : 'SQL Server Native Client 11.0',
      server : '.\sql2012',
      database : 'safetyPLC',
      user : 'sa',
      password : '123',
      encryptedPassword:'3206491238DB2B13291F35'
      }
      }
    2. 增加:db/readme.txt,写明从delphi旧系统升级时,数据库的修改内容
    3. 增加#163:web server端config增加processTree.isNeedAuthorityCheck参数,如果为false,作业树全部显示。
    4. 增加#165:实现作业和作业上的动作按角色权限控制,权限控制流程图,查看doku 5.4.5章节
    5. 增加:yjEMail.js发送电子邮件
  • updates:
    1. 修改:用户作业,新增行焦点跑掉问题,新增增加预设123456密码,修改角色权限后清空缓存
    2. 修改:yjDB.objectList2DataSet兼容mongodb...
    3. 修改:yjDBService.engine.msnodesql.js改为yjDBService.engine.sqlserver.js,以支持同一种数据库,使用多种npm包
    4. 修正#163:config.security.notNeedLogin_urls参数大小写判断问题。
  • adds:
    1. 增加#131:增加theme功能。theme分layout和style两部分。
      config配置举例:
      theme:{
      layout:{
      foil:["classic"][0]
      },
      style:{
      easyui:["default","black","bootstrap","gray","metro"][4],
      foil:["classic","modern"][1]
      }
      },
      继承的页面引用模板页面时,举例:
      <% layout(locals.global.theme_layout_dir+"/account/account.ejs") -%>
  • updates:
    1. 修正#116:在Edge浏览器中,从layout.ejs继承的网页找不到easyui-lang-zh_Hans-CN.js文件。
    2. 修正#117:在Edge浏览器中,从layout.ejs继承的网页找不到easyui-lang-en_US.js文件。
    3. 修改#117:语言标识选择工具栏,语言标识不翻译,直接使用那种语言显示,同时去掉了前面的国旗。
    4. 修正#123:在百度云发布时,config中的biz_Connection配置成错误的url也能登陆。
    5. 修正#124:浏览器在已经登录后,在地址栏输入登录页面的url没有跳转而是显示登录画面。
    6. 修改#125:添加express的compression中间件,支持网页的deflate/gzip压缩。
    7. 修改#128:登录页面,如果只支持一种登录方式,就不使用tab,以使页面简洁。
    8. 修改#131:登录页面的背景图改为参数配置,如:
      var config =
      {
      product : {
      loginBackgroundImage : "/images/login/background.jpg",
      ...
  • updates:
    1. 修正#97:作业树管理页面,拖动节点改变父子关系没效果。所有从singleTreeGrid.ejs继承的作业都受影响。
  • updates:
    1. 修正#94:使用mysql接口时,yjDBService查询接口的参数rowsAsArray=false时,返回的资料不是object数组,仍然是meta+rows(其中rows是object数组)
    2. 改进:为了减少数据量,BizServer端返回作业树的多语言字典时用meta+rows的方式返回。
    3. 修正#95:没有自动用app/system/release/data下的发布文件中的最新版本号刷新yjGlobal.version。
  • adds:
    1. 在客户端的locals.session.yjUser上增加orgOID属性,即:登录用户所属的组织。
  • updates:
    1. 修正WebServer模板:view/grid/singleGrid.ejs
      (1).edatagrid在inline编辑时,editor宽度不能填满cell的问题;
      (2).开始时会2次重复查询数据库。
    2. 修正WebServer模板:view/grid/singleTreeGrid.ejs
      (1).treegrid在inline编辑时,editor宽度不能填满cell的问题;
      (2).开始时会2次重复查询数据库。
  • adds:
    1. 增加文件上传服务:post "/system.files.upload"
    2. 增加文件下载服务:get "/system.files.download/:key"
    3. 增加文件删除服务:delete "/system.files/:key"
  • adds:
    1. 新增文件yjPoolingService.js,以支持把Webserver/BizServer部署在同一个执行单元,这样才能区分对BizServer和PoolingServer的调用接口。BizServer的config文件添加属性:
       pooling_Connection:{
      engine:"remote.restler",
      connection:{
      url : "http://ilexpooling2015.duapp.com"
      }
      }
  • adds:
    1. 修改BizServer和WebServer端的config,在routeDirs参数的item中增加nameSpace参数,用来引入公共模组。如:
      routeDirs : [
      {
      isNeedAuthorityCheck:false,
      nameSpace:"/biz/tm.utils.uom",
      rootDir : path.join(g_dir_Foil,"../tm.utils.uom/biz"),
      dir : path.join(g_dir_Foil, "../tm.utils.uom/biz")
      }
  • adds:
    1. 增加yjREST.js,对外部的REST Server调用可以使用这个接口,如发送短信。预设是经过测试比较好的remote.restler引擎,不建议直接使用yjBizService.engine.remote.restler.js或yjBizService.engine.remote.restify.js或yjREST.engine.remote.superagent.js。
    2. 增加yjREST.util.js
    3. 增加yjREST.engine.remote.superagent.js
  • updates:
    1. 文件yjBizService.engine.native.js修改为yjREST.engine.native.js
    2. 文件yjBizService.engine.remote.restler.js修改为yjREST.engine. remote.restler.js
    3. 文件yjBizService.engine.remote.restify.js修改为yjREST.engine. remote.restify.js
    4. 修改yjBizService.js,使用yjREST.js调用Biz Server服务,引擎由config.biz_Connection.engine决定。
    5. 修改yjSMS.js,使用yjREST.js调用外部发送短信的服务。
  • updates:
    1. 优化:登录日志增加记录经纬度,页面增加国家地区访问次数统计和用户访问次数统计。
  • updates:
    1. 优化:用户列表作业实现分页显示。
    2. 优化:登录日志用HostName记录用户浏览器类型及版本。登录日志作业实现分页显示,并对资料比较多的HostName提供ToolTip浮动显示。
  • adds:
    1. 服务器增加用户登录日志,以了解用户使用情况。
    2. 主界面增加“发布日志”查看功能,以让用户了解有哪些更能增加、修正、删除,并视情况决定是否要重新测试某个功能。
  • updates:
    1. 修正:某些情况下,点击切换界面语言时不会刷新,改为location.reload();。
  • adds:
    1. 实现登录登出、修改密码。
    2. 实现界面多语言切换,暂时放中文繁体、中文简体、英文。
    3. 实现左边功能作业树。
  • adds:
    1. 增加首页及项目管理页面
  • adds:
    1. 专案列表添加拖拽排序功能,信息提示功能
    2. 专案添加导入导出功能
    3. 硬件配置添加复制功能
    4. 从设备通信资料添加导出功能
    5. PRG添加复制功能,是否烧录选择
    6. 逻辑连接页面,添加,复制功能、快捷功能、双击取消连线功能
    7. 元件点击端点连线功能
    8. 新增MQTT工具
    9. 新增清零,锁存器,多路选择器,上升沿脉冲发生器,下降沿脉冲发生器,同或门,与非门,或非门,与或非门,二值计数器等元件
    10. 新增固件更新工具
    11. 新增E2G2211工具
  • updates:
    1. 修改通讯表显示方式
    2. 修改全局变量显示方式,添加全局变量资料上限功能
    3. 修改PRG上限,最多可添加10个限制
    4. 修改元件显示大小
    5. 修改iNet通讯资料excel导入模板
    6. 修改iNet通讯资料显示单位,删除无法正常使用单位
    7. 修改Chrome浏览器插件,添加TCP ,USB通信功能
    8. 完善tmIoT Studio帮助手册
    9. 完善‘下载通信表,烧录逻辑,开始调试’等功能
    10. 完善与设备通信功能,加快下载速度提高稳定性
  • deletes:
    1. 删除Connector元件
  • adds:
    1. 添加取地址元件
    2. 添加算术运算符的与、或、左移、右移元件
    3. 首页添加RunTime V2.0的编译文件
    4. 添加V2.0版本的帮助手册
    5. 可编程硬件模块中添加与下位机的连接方式,支持UDP和USB串口
    6. 添加一个Project后自动添加一个默认名为【PRG1】的逻辑编辑器
  • updates:
    1. 更新大部分页面的显示效果
    2. 更新逻辑数据下载方式,解决部分元件下载无法识别的问题
    3. 更新Project中页面树的结构
    4. 更新元件类别分组
    5. 更新页面多语言翻译
    6. 更新通信元件资料选择时的排序算法
    7. 更新【Chrome.app.extension】插件
  • deletes:
    1. 删除不成熟的模拟、调试功能
    2. 删除一些不可用的可编程模块
    3. 删除暂时无法兼容的修改IP等功能
  • adds:
    1. 添加Global Variable页面、相关元件与汇出协议
    2. 添加Modbus和Canopen相关元件
    3. 添加随机数元件
  • updates:
    1. 更新元件编辑画面
    2. 更新硬件页面的通信配置参数,更加匹配通信资料
    3. 更新Communication Table页面的通信资料生成方式,完善去除重复资料的机制
    4. 更新Task中FunctionBlock的ID生成规则,解决多Task中元件相互干扰的问题
    5. 更新项目作业书的展现方式,解决要下载的通信资料无法随修改变动的问题
    6. 更新通信元件的编辑画面,解决RunTime汇出资料与用户选择不匹配的问题
    7. 更新FunctionBlock的汇出方法
    8. 更新通信数据汇出的协议
  • deletes:
    1. 删除之前版本芜余的元件,统一使用DI,DO,AI,AO元件支持
  • adds:
    1. 可以添加多个task的逻辑编辑器
    2. 可以设置task的运行参数
    3. 可以设置填写硬件的通信参数和通信资料(Modbus、Canopen)
    4. 添加Communication Table页面展现并下载Modbus与Canopen通信资料
  • updates:
    1. Master名称修改为可编程硬件
    2. Slave名称修改为不可编程硬件
  • deletes:
    1. 删除Variable页面
  • adds:
    1. 首页添加使用说明文档链接
    2. 首页添加RunTime烧录档下载链接
    3. 首页添加tmIoTStudio使用示例档案下载链接
  • updates:
    1. 更新与下位机连接的稳定性
    2. 更新通信协议的稳定性与CRC校验
  • adds:
    1. 添加某些硬件同为Mater和Slave
    2. 浏览器插件Chrome.tmIoT.app支持串口通信
    3. 逻辑的烧录动作支持串口通信(Debugger和更改IP暂不支持)
    4. 添加LED元件支持控制硬件系统LED资源
    5. 添加对不完整的逻辑下载失败并警告的功能
  • updates:
    1. 更新数据库页修改数据时报错的问题
    2. 更新硬件选择时命名出错的问题
  • adds:
    1. 添加database的编辑功能
    2. 添加简单的Debugger功能
    3. 添加网络元件相关模块和数据库元件相关模块
    4. 添加详细操作说明手册
    5. 添加用户使用逻辑编辑时的检查功能
    6. 添加设置设备IP功能
    7. 添加设置服务器IP功能
  • updates:
    1. 更新首页内容
    2. 更新元件的编辑画面
    3. 更新完善了Simulator功能
    4. 更新逻辑编辑器汇出格式
  • adds:
    1. 实现了专案中的硬件的增删改,只能选择1个master。重制定了硬件的规格描述文件格式,database中增加DataID和Permission字段。
    2. 逻辑编辑器可以调整行数和列数。打开空白专案时,列数按屏幕宽度计算。
    3. 逻辑编辑器实现了缩放。
    4. 逻辑编辑器可以通过拖拽来平移改变视野。
  • adds:
    1. 实现了udp烧录。烧录通信协议参考弘讯主持制定的行业标准《工业机械电气设备及系统-塑料机械控制系统接口与通信协议》。只能使用Chrome浏览器,并安装"tmIoT Studio Chrome APP"插件。
    2. 实现了简单的模拟器。
  • adds:
    1. 实现Database元件,可以作为输入和输出元件。
    2. 用Task和FunctionBlock的概念来组织专案。
  • adds:
    1. 编辑器的工具栏,增加“烧录”按钮。烧录是通过串口,浏览器需要安装串口插件,具体参考首页的说明。
  • updates:
    1. 修正:汇出内容中,“输出状态outputStatus”从2字节修改为8字节。
    2. 修正:汇出“十六进制文本(帧)”,按文档要求修正了格式,并且,如果总大小超过2K,一帧不够,会生成多帧,文件名后面增加帧的序号,如:
      • safetyplc.hex.frame.1.txt
      • safetyplc.hex.frame.2.txt
      • ...
    3. 优化:编辑器的工具栏上的“清除全部”按钮,执行清除前增加弹出确认窗口。
    4. 修正:“操作模式选择开关”的输出点数目应该与输入点数目一样多,原来固定是1.
    5. 修正:“继电器输出”和“半导体输出”的最大输出点从1调为2.
  • adds:
    1. 汇出资料中,增加:
      • “禁止输入(只对双手按钮有效)deactivationInput”、
      • “上一输出选择lastOutputChoice”、
      • “开启延时openDelay”、
      • “关闭延时closeDelay”、
      • “一般延时commonDelay”;
      删除:
      • “输出状态备份outputStatusBackup”。
  • updates:
    1. “双手按钮”编辑时增加“禁止输入”页。
  • adds:
    1. 汇出前,增加资料完整性检查:“功能模块”的输入点不能重复;“输出模块”的输出点不能重复。
  • updates:
    1. 优化:考虑到全球不同地区客户端的时区不同,专案的创建时间和修改时间字段类型从datetime改为varchar,使用YYYY-MM-DD HH:mm:ss格式存储UTC时间。
    2. 软件Editor工具栏上的“删除”按钮,根据情况设置了使能状态。
    3. 模块的输出,允许作为多个模块的输入(原来只能作为1个模块的输入)。
  • adds:
    1. 实现了其它剩下的全部元件:
      功能模块:
      (1).双手按钮(2).安全地毯(3).使能开关(4).钥匙开关(5).脚踏开关(6).限位开关(7).操作模式选择开关
      逻辑模块:
      (1).XOR NODD门(2).EQU门(3).RS Flip Flop
    2. 汇出数据中增加“resetStartupTestStatus”字段。
    3. 增加1种汇出格式:十六进制文本(帧)。
  • updates:
    1. 优化:plc软件功能编辑区,右边的元件盘位置改为浮动并可隐藏,使编辑区向下卷动时,也能完整看到元件盘。
    2. 优化:plc软件功能编辑区,功能模块弹出的属性编辑窗体中,“开关类型”、“复位类型”下拉框实现多语言翻译。
    3. 优化:plc软件功能编辑区,开关类型、复位类型等图标透明化。
    4. 优化:plc软件功能编辑区,功能块、逻辑块的输出锚点垂直位置从0.1改到0.5。
    5. 优化:plc软件功能编辑区,工具栏上增加“连接方式”下拉框,可选:Flowchart,Bezier,Straight,StateMachine。连接线不再贴着源和目的元件走,都先水平方向走。但是还没解决绕过中间元件的问题。
    6. 修正:plc软件功能编辑区,功能块的输入锚点不再接受拖拽连接,它们自动与输入点连接。
    7. 修正:plc软件功能编辑区,输出块的输出锚点不再能拖拽,它们自动与输出点连接。
    8. 优化:左边项目树改进:允许拖拽来调整节点层次关系。
    9. 优化:项目管理作业,实现分页显示。
  • deletes:
    1. plc软件功能编辑区,去掉左边的输入点序号。
  • adds:
    1. 实现了软件编辑器。支持了大部分元件。完成的功能:元件属性设置,元件关系拖拉设定,编辑内容保存到数据库。未实现:输入输出点重复检查。需要改良:元件之间连接线的遮挡。
    2. 实现树形项目管理(新增,修改,删除),每个人可以建立自己的项目,并在数据库统一管理。
    3. 实现文件汇出,支持3种文件格式:(1)json文本;(2)二进制;(3)十六进制文本。