回复:工艺部要我实现在PLC内执行一个计算公式,并把数值在WINCC画面上显示。

已锁定

shine

  • 帖子

    8803
  • 精华

    39
  • 被关注

    157

论坛等级:至圣

注册时间:2003-06-06

普通 普通 如何晋级?

发布于 2020-09-15 13:33:21

20楼

展开查看
以下是引用渔明鱼工在2020-09-15 09:37:02的发言 >19楼

mandrel_D芯棒直径是人为输入的值不是通过计算出来的。我们就15种规格在画面上选择输入的。

以下是引用shine在2020-09-14 11:07:25的发言 >18楼: IF Mandrel_D=...

引用18楼详细内容:

 IF Mandrel_D=  THEN 这类语句可能会有问题。

浮点数比较,如果变量是通过计算得到的,也许你看着相等,PLC算出来却不认为是相等的

浮点数相等的比较是一个危险的动作,建议还是改成整数。

如果是只有这几个规格,我有一个更简便的做法:

1、规格通过文本列表,选择输入而不是直接输入,限定输入范围。

2、因为是通过文本列表,PLC的实际输入是索引而不是实际值

3、我看了下,不同规格,计算公式都是一样的,只是数值不一样,那就不同规格的参数用一个结构数组存储,不需要那么多的比较,直接用索引值从结构数组中取数值,进行计算就好了。


比如:0 对应 270,1对应300 .。。。对应plc变量 idx

然后结构数组Z 包含两个元素 z0和z1

Z[0].Z0 = 1278

Z[0].Z1 = 1478.7


Z[1].Z0 = 1263

Z[1].Z1 = 1478.7


.

.

.


最后计算公式就是 

        Mandrel_Z0:=Z[idx].Z0-x0;

        Mandrel_Z1:=Z[idx].Z1 - x1;


评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54618条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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