如何把一个整数转换成s5time的时间格式

作者&投稿:蒲梅 (若有异议请与网页底部的电邮联系)
如何把一个整数转换成s5time的时间格式~

如何转换,首先要弄清整数INT、时间S5Time及Time的数据结构。整数INT是16位的数据:

时间S5Time是16位数据,BCD码格式:



时间Time是32位数据,类似于双整数DINT:

由此可见,三者之间的转换即是整数INT、双整数DINT及BCD码之间的转换。可以根据数据结构特点,自己编程实现相互转换,这样比较复杂。利用库函数FC33/FC40是最简单方便的。方法如下: 1. 整数INT到时间S5Time的转换方法: INT -> I_DI指令 -> DINT -> MOVE指令 -> Time -> 库函数FC40 -> S5Time。



2. 整数INT到时间Time的转换方法:INT -> I_DI指令 -> DINT -> MOVE指令 -> Time。如图示:


3. 时间S5Time到整数INT的转换方法: S5Time -> 库函数FC33 -> Time -> MOVE指令 -> DINT -> 取其高字部分,用MOVE指令 -> INT。



  1、从上位机写整型数INT或实数REAL到PLC,首先该数值需包含以毫秒为单位的时间值,在写入PLC的数据存储区后,利用ITD(Integer to Double Integer)或RND(Real to Double Integer with Rounding Off)将该值转换为双整形,然后将该值写到类型为TIME的变量里,在程序中调用FC40,将TIME转换成S5TIME即可。
  2、从上位机写WORD到PLC,首先该数值需包含以某时基为单位的时间值,在写入PLC的数据存储区后,用Word Logic下的WOR_W指令将该值与其时基相或,再利用MOVE指令将得到的数值写入S5TIME类型的变量中。
  3、如果使用WinCC作为上位软件,或上位软件支持32位带符号浮点数,可以从上位写32位带符号浮点数到PLC中定义为TIME的变量,然后在程序中调用FC40,将TIME转换成S5TIME即可。

S7能够转换为S5time数据类型:
1.从上位机写整型数INT或实数REAL到PLC,首先该数值需包含以毫秒为单位的时间值,在写入PLC的数据存储区后,利用ITD(Integer to Double Integer)或RND(Real to Double Integer with Rounding Off)将该值转换为双整形,然后将该值写到类型为TIME的变量里,在程序中调用FC40,将TIME转换成S5TIME即可。
2.从上位机写WORD到PLC,首先该数值需包含以某时基为单位的时间值,在写入PLC的数据存储区后,用Word Logic下的WOR_W指令将该值与其时基相或,再利用MOVE指令将得到的数值写入S5TIME类型的变量中。
3.如果使用WinCC作为上位软件,或上位软件支持32位带符号浮点数,可以从上位写32位带符号浮点数到PLC中定义为TIME的变量,然后在程序中调用FC40,将TIME转换成S5TIME即可。
FC33用于S5TIME到TIME的转换。FC40用于TIME到S5TIME的转换。这两个块位于Libraries\Standard Library\IEC Function Blocks路径下,关于功能块的描述详见在线帮助。


如何把一个整数转化成字符串?
方法为:System.out.println(变量一+变量二+变量三+... +变量N)。至于将数值转换为String类型,有个简单的方法,即在每个数值后加上[ +“”] 中括号中的部分即可,如下面代码:如下面代码:int i=0;int j=0;nt k=0;int l=0;System.out.println(i+""+j+""+k+""+l);这样就输出的结...

如何将一个整数转换为浮点数
const float PI=3.1415;class SimpleCircle {private:int *itsRadius;public:SimpleCircle(int Radius=0){ if(Radius<=0)itsRadius=0;else itsRadius=Radius;}float getPerimeter()\/\/获得周长 { return 2*PI*(*itsRadius);}float getArea(){ return PI*(*itsRadius)*(*itsRadius);}int getRa...

3\/1=多少分之几
二、整数转换成分数的方法:整数化分数的方法:先把整数写成一分之多少的形式,然后再把分子分母同时乘以一个不为0的整数即可。举例说明如下:1、把3化成分数:3可以写成3\/1(一分之三)。2、3\/1分子分母同时乘以2,得到6\/2,这就是整数3的一个分数形式。3、3\/1分子分母同时乘以3,得到9\/3,...

一个整数可以表示成二进制数的形式吗?
首先把整数部分27转换成二进制数。利用减权定位法:(27)10=16+8+2+1=24+23+21+20=(11011)2再把小数部分0.625转换成二进制数。整数部分0.625×2=1.2510.25×2=0.500.5×2=1.01(0.625)10=(0.101)2把整数部分与小数部分结合起来,即为27.625的二进制数表示。(27.625)10=1...

excel把整数转换成小数
一、首先,打开Excel表格程序,在程序操作主界面中空白单元格中输入“100”。二、然后,选中要化成小数的整数,点击上方的“粘贴”选项,点击“选择性粘贴”,点击打开。三、然后,在对话框中勾选“除”,点击打开。

如何把一个整数转换成二进制
这里可以用8421码的方法.这个方法是将你所要转化的二进制从右向左数,从0开始数(这个数我们叫n),在位数是1的地方停下,并将1乘以2的n次方,最后将这些1乘以2的n次方相加,就是这个二进数的十进制了.还是举个例子吧:求110101的十进制数.从右向左开始了 (1)1乘以2的0次方,等于1;(2)...

如何把一个整数转换成s5time的时间格式
-> MOVE指令 -> Time -> 库函数FC40 -> S5Time。2. 整数INT到时间Time的转换方法:INT -> I_DI指令 -> DINT -> MOVE指令 -> Time。如图示:3. 时间S5Time到整数INT的转换方法: S5Time -> 库函数FC33 -> Time -> MOVE指令 -> DINT -> 取其高字部分,用MOVE指令 -> INT。

将十进制正整数18转换成二进制数是多少?
正整数转换为二进制计算方法:将正整数除以二,再取商除以二,直到商为1或0,然后再将余数从下往上的方式书写,即可得出二进制数值。将十进制正整数18转换成二进制数的具体计算方法如下:18\/2=9 余0;9\/2=4 余1;4\/2=2 余0;2\/2=1 余0;1\/2=0 余1;将以上的余数结果按倒序的...

C语言中怎么将一个整数字符串转换为一个数
{ intvalue;value=0;\/\/逐个把一个整数字符串转换为一个数。while(*string>='0'&&*string<='9'){ value*=10;value+=*string-'0';string++;} \/\/错误检查:如果由于遇到一个非数字字符而终止,把结果设置为0 if(*string!='\\0')value=0;returnvalue;} intmain(){ char*numChar="102";p...

如何把一个整数转换成s5time的时间格式
1.从上位机写整型数INT或实数REAL到PLC,首先该数值需包含以毫秒为单位的时间值,在写入PLC的数据存储区后,利用ITD(Integer to Double Integer)或RND(Real to Double Integer with Rounding Off)将该值转换为双整形,然后将该值写到类型为TIME的变量里,在程序中调用FC40,将TIME转换成S5TIME即可。

安宁区13527349876: 如何把一个整数转换成s5time的时间格式 -
葛枝伽玛: 如何转换,首先要弄清整数INT、时间S5Time及Time的数据结构.整数INT是16位的数据:时间S5Time是16位数据,BCD码格式:时间Time是32位数据,类似于双整数DINT: 由此可见,三者之间的转换即是整数INT、双整数DINT及BCD码...

安宁区13527349876: 怎样将整型转换成s5time -
葛枝伽玛: 1、从上位机写整型数INT或实数REAL到PLC,首先该数值需包含以毫秒为单位的时间值,在写入PLC的数据存储区后,利用ITD(Integer to Double Integer)或RND(Real to Double Integer with Rounding Off)将该值转换为双整形,然后将该值写到类...

安宁区13527349876: 转化为S5TIME类型的2种方法?
葛枝伽玛: 我没问为什么显示60与60000,这个我自已乘出来的我肯定知道. 我问的是采用WOR指令得到的S5TIME类型数据MW189是一分钟,改为16进制显示是2060.而用FC40得到的S5TIME类型数据也是1分钟的数据MW310.改为16进制显示为什么是1600. 是为什么是2060和1600,而不是60与60000.

安宁区13527349876: step7 信号转换的问题· -
葛枝伽玛: 如果你用的是S7-300的PLC,那么库里面有相应的转换功能块FC40,可以将32位TIME格式的数据转换为16位S5TIME格式的数据,后者就可以作为定时器的设定时间.

安宁区13527349876: 如何为PLC定时器设置变量时间 -
葛枝伽玛: 程序上看没有问题,只需要把R转换为S5time就可以了,首先使用取整命令对MD26取整.找一个DB块建立一个名称为aaa 格式为 S5time 值为 S5T#100MS的变量. 使用MOVE命令把取整后的变量移动到S5TIME中就可以了,数据格式都为MB

安宁区13527349876: 如何转换为S5T#型时间 -
葛枝伽玛: 1. 首先将所要转换的数据转换为双整数并存储于数据格式为“TIME”的临时变量中.如将整数通过命令“ITD”转换为双整,通过“RND”将实数转换为双整. 2. 调用 STEP 7 标准库中 IEC 功能库中的...

安宁区13527349876: 十进制怎样转化为S5TIME -
葛枝伽玛: 介绍一个偷懒的方法,定义一time数据类型的数据(md,db.dbd等),调用fc40,把这一数据转化成s5t了

安宁区13527349876: 定时器设定值从浮点转为S5Time格式有没有好办法? -
葛枝伽玛: 如果你用的是西门子的人机界面就很简单的,如使用winccflex编程,将设定时间的数据格式为定时器就行了,单位是毫秒.数据就不需要转换了.

安宁区13527349876: 如何为西门子300PLC定时器设置变量时间 -
葛枝伽玛: 1、打开创建的工程文件,在左边找到启动文件,双击启动文件,找到方框内的内容.程序一般从系统初始化开始,在运行到main里面. 2、单击sysinit函数,按F12调转到函数定义界面,在函数里面有如下图方框的内容.这个函数就是配置时...

安宁区13527349876: 怎样在定时器运行中改变定时时间 -
葛枝伽玛: 定时器在运行时是不允许更改定时时间的,否则会造成定时器不工作 当定时器不运行的时候只需要更改将TV端设置成DB地址或者其他的变量地址,改变该地址内的值就可以了 方法如下: 1:在DB块里设置DINT数据,TIME数据和S5TIME数据...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网