回复:求教怎么采集数据?

已锁定

城市游人

  • 帖子

    4
  • 精华

    0
  • 被关注

    0

论坛等级:游民

注册时间:2019-11-02

普通 普通 如何晋级?

发布于 2020-06-19 12:32:13

2楼

我已经解决了,用了中断和SCL,创建了各个DB块,现在快要交付给客户了,OB30里源码如下:

IF "Data".Collect."Start" AND "Data".Collect.Count <= 300 THEN

        // 获取实时轴位置信息,触发条件满足则进行采集数据,300为DB块设置的长度

    "MC_ReadParam_DB_1"(Enable := "AlwaysTRUE",

                        Parameter := "轴_1".ActualPosition,

                        Value := "Data".Collect.实时位置信息);

    "Data".数据处理.实时弧度放大1000 := "Data".Collect.实时位置信息 * 1000;

    "Data".Collect.实时位置信息_Dint := REAL_TO_DINT("Data".数据处理.实时弧度放大1000);

    "1、模拟量转换"();

    // 获取实时模拟量值,并换算成需要的类型

    IF "Data".自动流程.标志位.轴已经开始下压 THEN

        "电压(压力传感器-下)".压力值["Data".Collect.Count] := "Data".Collect."Pressure _Dint";

        "电压(踏板霍尔N.O1-下)".电压反馈["Data".Collect.Count] := "Data".Collect."Accelerator-1_Dint";

        "电压(踏板霍尔N.O2-下)".电压反馈["Data".Collect.Count] := "Data".Collect."Accelerator-1_Dint";

        "轴实时弧度-下".弧度值["Data".Collect.Count] := "Data".Collect.实时位置信息_Dint;

        "Data".Collect.Count := "Data".Collect.Count + 1;

    END_IF;

    IF "Data".自动流程.标志位.轴已经开始返回 THEN

        "电压(压力传感器-上)".压力值["Data".Collect.Count] := "Data".Collect."Pressure _Dint";

        "电压(踏板霍尔N.O1-上)".电压反馈["Data".Collect.Count] := "Data".Collect."Accelerator-1_Dint";

        "电压(踏板霍尔N.O2-上)".电压反馈["Data".Collect.Count] := "Data".Collect."Accelerator-1_Dint";

        "轴实时弧度-上".弧度值["Data".Collect.Count] := "Data".Collect.实时位置信息_Dint;

        "Data".Collect.Count := "Data".Collect.Count + 1;

    END_IF

    ;

END_IF;

然后西门子的SET_CINT的单位不是ms,是μs,但是组态的时候却是ms,我是博图V15,教材上组态都是μs,好奇怪,然后自复位好像西门子的也有问题,我写了一段一个m20.0导通时计时500ms后复位掉m20.0,死活不行,交叉引用都看过了,用自己的位去复位自己貌似在西门子这里不行?


评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15117条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。