回复:如何讲长整型转换成整型?

n次看你的背影

  • 帖子

    2321
  • 精华

    73
  • 被关注

    53

论坛等级:奇侠

注册时间:2008-03-11

普通 普通 如何晋级?

发布于 2012-07-03 22:49:41

7楼

看到楼主比较纠结此事,刚好今晚闲暇无事,写了点代码给楼主参考一下,在PLCSIM测试过了,编译一下就能用了!见参考代码:

FUNCTION "Dint->int" : VOID
TITLE =将一个长整数转换成整数
//如果一个长整数在-32768~32767之内,是可以转换成成整数,如果不在这个数值范围之内
//就没法转了。
VERSION : 0.1


VAR_INPUT
Long_int : DINT ; //需要转换的变量
END_VAR
VAR_OUTPUT
Short_int : INT ; //转换好的整数数值存储在这个变量里面,如果不能转换,这个变量值为0
Return_bool : BOOL ; //转换错误Return_bool的状态为0,转换正确Return_bool的状态为1
END_VAR
BEGIN
NETWORK
TITLE =
L #Long_int;
L L#32767;
>D ;
JC EROR; //如果这个长整数大于32767,就跳转到EROR

L #Long_int;
L L#-32768;
<D ; //把中文字符的<换成英文字符小于
JC EROR; //如果这个长整数小于-32768,就跳转到EROR

L L#0;
L #Long_int;
>D ;
JC NEGA; //如果<0,跳转到Nega(Negative)
JU POSI; //如果≥0,跳转到Posi(Positive)

NEGA: -D ; //<0时的处理
T LD 20;
L LW 22;
L 0;
TAK ;
-I ;
JU NEXT;

POSI: T LD 20; //如果是大于等于0
L LW 22;
NEXT: T #Short_int;
SET ;
= #Return_bool;
JU END;

EROR: L 0;
T #Short_int;
CLR ;
= #Return_bool;
END: SAVE ;
BE ;
END_FUNCTION
佛对我说:“你的痛苦来自于你的欲望,没有欲望也就没有痛苦!”
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54622条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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