曲线图(curve_graph)

功能

界面支持曲线图,可以根据脉冲时间实时显示横轴和纵轴之间的数据变化。两种方法在使用过程中略有不同。

由于系统软件的主控周期和PLC周期限制,曲线图的绘制会受到限制,数据变化太快时,曲线图会无法正常显示。并且曲线图的点位个数有限,超过一定范围后会删除旧点位。

参数

控件常规参数

  • 位置大小: 控件所在位置及所占空间大小,此参数类型为元组,写作 (a, b, c, d) 其中a/b/c/d都应该是正整形值分别表示控件的 起始行/起始列/所占行数/所占列数,其中c/d可以省略,省略时值均为1。
  • id: 控件的ID名称,可用于获取光标,进行曲线操作
  • 光标顺序: left左边控件,right右边控件,prev上一控件,next下一控件(对应数控系统面板上的 “左”/“右”/“上”/“下"按键),当需要设置控件的光标顺序时将对应控件的id赋值给相应参数即可,4个参数可以设置0个或多个。此参数为字符串类型或数字类型,取决于跳转到的控件的id,写作 left="LA"left=1,则按系统面板上的"左"按键时,id为"LA”/1 的控件捕获光标。
  • 颜色和背景色(不设为默认值),该控件仅支持color: 字体显示颜色和bg_color: 控件背景色
  • 边框格式:取值可为 隐藏/不隐藏,此参数可以省略,默认为不隐藏,此参数类型非字符串,写作 隐藏,会隐藏控件四周的线框。
  • grid_color: 控件网格线颜色
  • visible: 控件显示状态,表达式:当该表达式值不为0时该控件可以显示,等于0时控件不显示。若不设置该参数,则默认显示。此参数为字符串类型,写作visible="#100"
  • enable: 表达式:当该表达式值不为0时该控件才可以修改,等于0时控件不捕获光标,故不能修改。若不设置该参数,则可以修改。此参数为字符串类型,写作enable="#100",则只有当#100不等于0时才可以修改。(此参数仅在 确认 模式下有用)

曲线类型: 脉冲

脉冲曲线图检测脉冲进行绘图,每当检测到一个信号的脉冲就绘制一个单位。

  • 曲线图纵轴(Y轴)

    • y_expr: Y轴表达式
    • y_min: Y轴最小值
    • y_max: Y轴最大支
    • y_name: Y轴名称
    • y_unit: Y轴单位
  • 曲线图横轴(X轴)

    • x_expr: X轴表达式
    • x_min: X轴最小值
    • x_max: X轴最大值
    • x_unit: X轴单位
  • 曲线图绘图

    • x_pulse: 脉冲表达式,可由plc上升沿信号触发,可写x_pulse="X951.0"
    • start: 开始绘图, 可由plc上升沿信号触发,可写start="X951.1"
    • stop: 停止绘图, 可由plc上升沿信号触发,可写start="X951.2"
    • title: 曲线图标题名称,显示在曲线图上方
    • type: 曲线图类型,脉冲类型写作type=CurveType.pulse
    • reset: 图形复位清除,可由plc上升沿信号触发,可写reset="X951.3"
    • arrow_left: 纵轴坐标值刻度是否在右侧显示,默认为False
    • arrow_down: 横轴坐标值刻度是否在上方显示,默认为False

示例

曲线图横轴变量为#500,纵轴变量为#501,当检测到X951.1上升沿信号时,则开始绘图。当检测到X951.0上升沿信号时,根据当前数值在曲线图中绘制点位,每当检测到X951.0上升沿信号时就会绘图。 当检测到X951.2上升沿信号时,则停止绘制曲线图。当检测到X951.3上升沿信号时,则清除曲线图。

curve_graph((20, 50, 400, 400), y_expr="#501", y_min=-100, y_max=100, x_expr="#500", y_name="你好", y_unit="mm", x_unit="mm", 
            x_min=-100,x_max=100, x_pulse="X951.0", title="脉冲曲线", start="X951.1", stop="X951.2", type=CurveType.pulse,
            reset="X951.3")  # 脉冲曲线

曲线类型: 时间

时间曲线图根据采样周期进行绘图,每隔一个采样周期时间,绘制一个点位。

  • 曲线图纵轴(Y轴)

    • y_expr: Y轴表达式
    • y_min: Y轴最小值
    • y_max: Y轴最大支
    • y_name: Y轴名称
    • y_unit: Y轴单位
  • 曲线图绘图

    • t_second: 采样周期,单位为秒
    • t_interval: 曲线图每个单元格时间大小,单位为秒
    • start: 开始绘图, 可由plc上升沿信号触发,可写start="X951.1"
    • stop: 停止绘图, 可由plc上升沿信号触发,可写start="X951.2"
    • title: 曲线图标题名称,显示在曲线图上方
    • type: 曲线图类型,脉冲类型写作type=CurveType.time
    • reset: 图形复位清除,可由plc上升沿信号触发,可写reset="X951.3"
    • arrow_left: 纵轴坐标值刻度是否在右侧显示,默认为False
    • arrow_down: 横轴坐标值刻度是否在上方显示,默认为False

示例

当检测到X951.1上升沿信号时,则开始绘图。每隔一个采样周期绘制一个单位。 当检测到X951.2上升沿信号时,则停止绘制曲线图。当检测到X951.3上升沿信号时,则清除曲线图。

curve_graph((20, 50, 400, 400), y_expr="#501", y_min=-100, y_max=100, y_name="你好", y_unit="mm", title="脉冲曲线",t_second=1
            ,t_interval=10, start="X951.1", stop="X951.2", type=CurveType.time, reset="X951.3")  # 脉冲曲线

示例

曲线图

with page(456, 800, id="page1", text=(白色, f20x10, 左对齐), bg_color=(24, 24, 24)):

    label("曲线图", (1, 1, 40, 800), f24x16, 居中, 青色)
    curve_graph((50, 50, 400, 400), y_expr="#501", y_min=-100, y_max=100, x_expr="#500", y_name="主轴角度", y_unit="mm",
                x_unit="mm",
                x_min=-100, x_max=100, x_pulse="R3.1", title="脉冲曲线", start="X951.0", stop="X951.1",
                type=CurveType.pulse,
                reset="X901.7")  # 脉冲曲线

    label("横轴:#500,纵轴#501", (50, 450, 40, 350))
    label("S键/F1键(X951.0上升沿)开启绘图", (90, 450, 40, 350))
    label("T键/F2键(X951.1上升沿)停止绘图", (130, 450, 40, 350))
    label("R键/复位(X901.7上升沿)清除绘图", (170, 450, 40, 350))
    label("注意:绘图时每组数据间隔不能过短", (210, 450, 40, 350), 红色)

    menu("曲线图", "page1")