(已结束)工控PLC擂台第25期--PLC 自定义功能(函数)-带符号位的两字节转换成单字 点击:2840 | 回复:12



ye_w

    
  • 精华:21帖
  • 求助:1帖
  • 帖子:69帖 | 5217回
  • 年度积分:0
  • 历史总积分:46739
  • 注册:2002年4月17日
发表于:2011-02-13 10:37:30
楼主
PLC自定义功能(函数)应用,这期函数有具体要求,如下:
1、要求将两个字节转换成单字同时带符号位
2、不推荐使用某品牌PLC专用指令,也就是说需要便于移植
3、需要把PLC型号、PLC编程软件、功能(函数)的功能描述、各种参数及解释说明、以及具体的实现程序描述清楚,并贴出程序抓图并加详细的
程序说明。
4、推荐输入变量写成 sign(符号变量,Bool类型,0为正,1为负)
Hig(高字节变量,可以是BYTE类型或者WORD类型)
Low(低字节变量,Byte类型)
5、推荐函数返回值定义为 B2Wsgn INT类型


PLC型号及PLC编成软件不限。

工控PLC擂台每周一期,本期等24期结贴后一周结贴。奖项设置:一等奖1名:50MP,二等奖5名:10MP,三等奖10名:30积分。

MP介绍:gongkongMP即工控币,是中国工控网的用户积分与回馈系统的一个网络虚拟计价单位,类似于大家熟悉的QB,1个MP=1元人民
币。

MP有什么用?兑换服务:以1个MP=1元来置换中国工控网的相关服务。 兑换现金:非积分获得的MP可兑换等值现金(满100MP后、用户
可通过用户管理后台申请兑换)。



彩云之滇东北

  • 精华:20帖
  • 求助:5帖
  • 帖子:107帖 | 2725回
  • 年度积分:0
  • 历史总积分:21121
  • 注册:2005年6月14日
发表于:2011-02-13 11:02:11
1楼
首先顶一个,再去实施         

彩云之滇东北

  • 精华:20帖
  • 求助:5帖
  • 帖子:107帖 | 2725回
  • 年度积分:0
  • 历史总积分:21121
  • 注册:2005年6月14日
发表于:2011-02-13 11:06:27
2楼

两字节和单字都是无符号数,直接调用就行了

如IB0和IB1,读时直接用IW0就可以了

陈石头

  • 精华:28帖
  • 求助:2帖
  • 帖子:300帖 | 9288回
  • 年度积分:0
  • 历史总积分:54987
  • 注册:2008年3月07日
发表于:2011-02-13 16:56:00
3楼
引用彩云之滇东北 的回复内容:两字节和单字都是无符号数,直接调用就行了,如IB0和IB1,读时直接用IW0就可以了

还有,现在PLC都有这样的专用指令,没必要这样吧!

wyb2866255

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2011-02-16 08:52:34
4楼

         用S7-200编写了将两个带符号的字节数转换为字的程序,见下图:

说明:对MB1、MB2设置新数时,用16进制数,设置完后下载,再运行将显示新数

wyb2866255

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2011-02-17 23:44:13
5楼

       4楼程序是将二个带符号字节数放地址相连接的高低二个字节中,转换的字仍保持原二个字节数的原值,用于传递数据用。如果要将二个带符号的字节数"MB1"变为转换后的字的高字节值,即相当左移8位,"MB2"变为换后的字的低字节值,二数相加,即:以十进制说明:

      MB1            MB2                  VW1(和成为字值)

      +25            +32                   +2532              (即:25 * 100 + 32 =2532)

      -13            -45                     -1345                (即:-13 * 100 - 45 =-1345)

      +25           -32                    +2468               (即:25 * 100 - 32 =2468)

      -13            +32                   -1268                 (即:-13 * 100 + 32 =-1268)

     以上述转换原则,编编写的梯形图如下:

1、主程序:

2、子程序:

 
 

    

wyb2866255

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2011-02-18 09:28:03
6楼

      以上二个程序均按自定义功能SBR_1编写的程序,第一个用于传递,即仍保持二个字节的原值,第二个是将二个字节数合成一个字的数:下面举例说明:

    MB1              MB2                第一程序: LW2                         第二程序: LW2             第二程序合成数

    16#1D          16#1E           16#1D1E                                     16#1D1E                           +7454

    16#AD          16#8E           16#AD8E                                    16#AC8E                            -21362

    16#1D          16#8E           16#1D8E                                    16#1C8E                            +7310

    16#AD           16#1E          16#AD1E                                    16#AD1E                            -21218

云锋

  • 精华:1帖
  • 求助:4帖
  • 帖子:252帖 | 5541回
  • 年度积分:0
  • 历史总积分:30376
  • 注册:2005年6月24日
发表于:2011-02-21 09:21:26
7楼
引用陈石头 的回复内容:引用彩云之滇东北 的回复内容:两字节和单字都是无符号数,直接调用就行了,如IB0和IB1,读时直接用IW0就可以了

还有,现在PLC都有这样的专用指令,没必要这样吧!



写出该功能指令,并加以介绍也可以。

昆山中宇工控网

  • 精华:1帖
  • 求助:0帖
  • 帖子:19帖 | 688回
  • 年度积分:0
  • 历史总积分:1438
  • 注册:2004年8月26日
发表于:2011-02-23 10:35:17
8楼

有点搞头,学习一下吧

昆山中宇工控,诚交天下工控朋友

矩形科技

  • 精华:1帖
  • 求助:0帖
  • 帖子:22帖 | 276回
  • 年度积分:0
  • 历史总积分:1221
  • 注册:2008年1月18日
发表于:2011-02-23 16:55:00
9楼

首先这个对这个题目有一点疑问。就是“要求将两个字节转换成单字,同时带符号位”如果是将2个字节合并成一个单字,那么第一个字节如果为符号位,那么到单字里自动也是最高位了,也是符号位了。感觉强调带符号位没有必要。

矩形科技的V80PLC有PACK指令为单字的拆分和组合,即可以将一个单字拆分成2个字节或者让2个字节组合成一个单字。应该直接可以调用即可。当然如果是要求自定义功能块则是另外一种写法了。

下面用通用指令来写,在之前可以用一个字程序封装一下,对于有无符号问题,因为只取决于第一个字节的最高位,
我运算中都只按无符号的数去处理,最后这个数,你是按有符号数去读即可。我感觉不是什么问题:
第一次看到这个擂台,很多规矩还不是太明白,就这么写着吧,呵呵。

ye_w

  • 精华:21帖
  • 求助:1帖
  • 帖子:69帖 | 5217回
  • 年度积分:0
  • 历史总积分:46739
  • 注册:2002年4月17日
发表于:2011-02-28 07:56:16
10楼

呵呵,不好意思,对大家的结果不是很满意,由于在外出差,不甚方便,给予大家估计吧

 

一等奖1名:50MP获得者:空缺


二等奖1名:10MP获得者:

矩形科技   矩形科技 

wyb2866255   wyb2866255

 


三等奖2名:30积分获得者:

云锋

  • 精华:1帖
  • 求助:4帖
  • 帖子:252帖 | 5541回
  • 年度积分:0
  • 历史总积分:30376
  • 注册:2005年6月24日
发表于:2011-03-01 10:01:20
11楼

一等奖: 50MP获得者:空缺


二等奖2名:10MP获得者:

矩形科技   矩形科技 

wyb2866255   wyb2866255

 三等奖:30积分获得者:空缺

wyb2866255

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2011-03-01 12:01:13
12楼
此擂台已结束,请楼主讲讲正确编程思路(可不用具体程序)以便学习!

热门招聘
相关主题

官方公众号

智造工程师