信捷XC系列C语言功能块使用 点击:1871 | 回复:5



elysiem

    
  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 5回
  • 年度积分:0
  • 历史总积分:95
  • 注册:2017年9月09日
发表于:2020-09-15 08:35:11
楼主

10个变量D100,D101,D102,D103,D104,D105,D106,D107,D108,D109,对应10个标志号M100,M101,M102,M103,M104,M105,M106,M107,M108,M109,在10个变量比较,最大值置位对应的变量。这个要是用C语言功能块怎么实现呢?用梯形图写的话每比较一次都要写一次篇幅太大,所以想用C来简化下



楼主最近还看过



太月星辰

  • 精华:0帖
  • 求助:1帖
  • 帖子:5帖 | 349回
  • 年度积分:583
  • 历史总积分:3218
  • 注册:2011年11月02日
发表于:2020-09-15 16:04:01
1楼

冒泡算法写,你这个输入输出都是对应排列的比较好写!

elysiem

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 5回
  • 年度积分:0
  • 历史总积分:95
  • 注册:2017年9月09日
发表于:2020-09-15 17:16:01
2楼

谢谢

miy_gongkong

  • 精华:0帖
  • 求助:2帖
  • 帖子:26帖 | 3065回
  • 年度积分:0
  • 历史总积分:12421
  • 注册:2008年9月18日
发表于:2020-09-17 21:58:36
3楼

没必要非要用 泡泡排序, 用C语言做个简单的比较功能块即可

关育谋

  • [版主]
  • 精华:5帖
  • 求助:22帖
  • 帖子:738帖 | 5640回
  • 年度积分:68
  • 历史总积分:84034
  • 注册:2004年5月28日
发表于:2020-09-19 10:53:51
4楼

C语言简单的比较即可实现。用一个循环,比较9次即可。

anyili

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 37回
  • 年度积分:0
  • 历史总积分:55
  • 注册:2008年12月19日
发表于:2022-01-25 21:14:46
5楼


数据个数输入:       W[0]  

数据(整数)起始地址: W[1]   

例:

TDSS D0 M0

数据个数: D0=3

数据输入: D1=2, D2=8, D3=4

结果显示: D1=2, D2=4, D3=8

**************************************************************************/

void TDSS( WORD W , BIT B )

{

  short i;

  short m;

  short n;

  for(i=W[0];i>1;i--)

for(m=1;m<i;m++)

    if(W[m]>W[m+1])

{

n=W[m];

W[m]=W[m+1];

W[m+1]=n;

}

    }


}

信捷中有现成的C块,从小到大排列


热门招聘
相关主题

官方公众号

智造工程师