zoukankan      html  css  js  c++  java
  • Gcs Communication User Manual总览

    从21年10月份创建项目到1.0功能基本完成(包括设计,开发,测试),耗时已经有3个多月,开发效率非常低,基本都是利用零碎时间完成,废话不多说。

    1. 介绍

    设计Gcs Communication主要解决系统集成和测试自动化领域的各种通讯问题,让工程师能快速上手完成产品验证、系统搭建和设备部署。

    Gcs Communication基于C# 和 TestStand engine搭建框架,通讯模块会包含常用的通讯协议:ModbusTCP,ModbusRTU,RS232,TCP/IP ,CAN, HTTP , MQTT,SSH等,这些模块都会以插件的形式嵌入通讯平台。

    Gcs Communication拥有”编辑“和”运行时“两种模式,在编辑状态下可以编辑具体协议、指令和参数,并可以运行调试,如果命令验证结束即可保存,运行模式下可以直接运行保存的命令及参数。

    可以理解为离线调试完,测试程序也已经完成,无需再集成一遍代码。

    2. 安装使用

    软件需求:

    • .NET Framework 4.6.1 or later
    • TTStand 2.5.3.3 or later

    点击exe文件,默认安装即可。

    在TTStand环境下使用:打开Development环境,右击插入步骤如下图

     可以右击步骤选择Edit或者直接按快捷键Ctrl+E,打开编辑界面。

    3. 图形界面

    下图展示了Gcs Communication功能块:

    主要功能块:

    1. 主设置
    2. 物理层插件设置
    3. 指令编辑
    4. 结果输出
    5. 编辑控件和状态显示

    具体功能会在下面小节一一介绍。

    4. 主设置

    Socket: 指测试工位号,默认值为1,在运行模式下,该值由TTStand传入。

    Task: 默认值为Normal。有些通讯协议需要创建循环帧任务,可以选择非Normal项。

    Physical Layer: 直接关联物理层硬件和相应的协议。选择不同,物理层的插件界面会随之切换。

    选择不同的插件,插件需要完成:

    • open -> 处理跟硬件建立通讯连接
    • SendMessage -> 处理按照相应的参数发送信息给硬件
    • ReceiveMessage -> 处理接收来之硬件的反馈信息并且判断结果是否Pass or Fail ,通讯平台不负责判断反馈的是否正确,完全由插件负责判断。除非插件由异常发生,平台会停止任务并判定Fail
    • ClearBuffer -> 处理硬件或者软件的缓存信息的清除
    • Close -> 处理跟硬件断开通讯连接

    Init: 如果勾选,Gcs Communication会调用对应插件的Open函数。

    Send & Receive: 如果勾选,Gcs Communication会调用对应插件执行如下表格中指令的发送和接收任务。

    Clear Buffer: 如果勾选,Gcs Communication会将使能信号传递给插件执行,Send & Receive定义的指令是如果是多条,那么没条指令都会执行Clear Buffer任务。

    Stop On Fail: 如果勾选,指示有指令Fail,Gcs Communication将停止发送指令,假设只有一条指令,此项将不起作用。

    Close: 如果勾选,Gcs Communication会调用对应插件的Close函数。

    5. 物理层插件设置

    这个区域用于动态加载插件的特有设置,当Physical Layer没有任何定义,这个区域将是空白。

    6. 指令编辑

    这个区域用于配置和外设、仪器、产品等发送和接收的指令。

    这个表格支持多行配置,当"Send & Receive"被勾选,这个区域将被使能。

    指令执行的顺序会按照表格定义的顺序。

    TagName: 预留功能,后面的版本会支持从数据库加载指令。

    MessageToSend: 需要通过插件发送给硬件、仪器或者产品的指令。如果协议支持只读,这项可以为空。

    这项可以通过加载TTStand表达式变量,作为需要发送的指令

    在MessageToSend区域鼠标右击可以插入表达式,插入的变量类型需要是字符串类型,否则会提示插入变量失败。

    TTStand变量通过 '^'符号进行标记,同时支持和其他指令混合存在,这部分都由Gcs Communication负责解析。

    ExpectedAnswer:  这条指令期望接收硬件、仪器或者产品的反馈信息,可以为空。

    Period(ms):  在物理层期望信息以周期性发送,单位为ms,这项功能取决于插件的功能,不由Gcs Communication负责。默认值为-1,没有周期性发送。

    Timeout(ms): 单条指令的超时设置,如果超时,Gcs Communication将判定这步骤Fail。默认值100ms。

    Delay(ms):  在当前指令结束后执行这个同步延时,单位为ms,默认值为0。

    7. 结果输出

    结果输出区域会显示指令执行的结果,将会被展示在一个树形控件中,如下图。

    Socket: 执行任务所在的工位号

    Result: 可能的值为PASS,FAIL

    Actual Answer: 实际从硬件、仪器或者产品反馈的数据

    StepName: 当前步骤的名称

    Time Stamp(ms): 当天的时间戳,单位为ms

    MessageToSend: 请求发送的数据

    ExpectedAnswer: 期望接收的数据

    Error Info: 指令发生错误的信息

    Execution Time(ms): 当前指令执行的时间,单位为ms

    8. 编辑控件和状态显示

    执行控件->这个区域包含如下按钮:

    Run: 执行当前配置的指令。

    Save: 保存当前配置的参数和指令

    Revert: 将所有配置的参数恢复到初始位置

    Cancel: 取消操作,关闭编辑界面,如果有参数改动且未保存的,将不会被保存。

    步骤状态结果显示控件:

    当指令执行Fail时,可以查看Fail原因。

     

    同时在结果显示区也可以查看Fail原因:

    9. 菜单

    Execution

    • Exit 退出编辑界面。

    Tool:

    • Convert 转换指令工具

    10. 步骤参数

    输入参数:

    输入 参数都被保存在Step的容器中,详细如下:

    Step.ThreadTask

    Step.LogEnabled

    Step.Init、Step.EnableSendAndReceive、Step.ClearBuffer、Step.StopOnFail、Step.Close

    Step.PhysicalLayerName

     Step.PhysicalLayerString

    Step.Tags

    Step.MessagesToSend

    Step.ExpectedAnswers

    Step.Periods

    Step.Timeouts

    Step.Delays

     输出参数:

    Step.Outputs

     

    11. Log

    当使能Log记录指令发送过程。可以在TesterInfo\logs文件夹下,找到对应插件的log文件。

    文件名会以插件名+日期命名。

    如下是一条指令log记录的内容:

    2022-01-12T19:03:27.2755336+08:00---{"Socket":"1","StepName":"Read Version1","Result":"PASS","MessageToSend":"03 00 0D 00 0A","ExpectedAnswer":"GcsCommunication1.0","ActualAnswer":"GcsCommunication1.0","TimeStamp":"68607274","ExecutionTime":"6.71","Error":""}

    12. 运行时模式

    运行时模式相对比较简单,在编辑状态下保存的参数,不管单步执行,在Process环境中执行都可以。

    在TTStand的支持下,在生产环境中,可以在线调试Gcs Communication通讯。

    使用Interactive Step Into功能,实现可视化在线调试,如下图:

     通过这个功能可以清晰的分析运行时通讯失败的原因,提升寻找问题的速度,达到快速解决问题的目的,对已经投产的设备尤为重要!

    总结:

    Gcs Communicaiton通讯软件的功能已经介绍完成,插件模块功能的介绍将陆续更新,1.0版本已经实现Modbus TCP、Modbus RTU 、RS232 。

    如有疑问和建议,敬请留言...

  • 相关阅读:
    如何在markdown隐藏代码块
    html基础
    驻留机制
    字典
    echarts简单使用
    selenium的基本操作
    Excel上传、下载、models 自定义字段、批量执行(可选)
    django之自定义标签(路径url反向解码)
    邮件自动生成发送用例报告
    前台获取后台保存的数据
  • 原文地址:https://www.cnblogs.com/YourDirection/p/15798144.html
Copyright © 2011-2022 走看看