STEP7怎么把累积秒转换成年月日格式 点击:5070 | 回复:11



softlover

    
  • 精华:0帖
  • 求助:2帖
  • 帖子:2帖 | 4回
  • 年度积分:0
  • 历史总积分:115
  • 注册:2011年5月21日
发表于:2014-05-25 18:33:10
楼主

S7-300PLC做机器的运行时间累积,用OB35定时1秒中断,判断机器开就累积MD0,不开就不累积。

可是用户要看运行时间是**年**月**日**小时**分钟**秒。

自己编了一个转换程序很失败。失败原因:错以为MD0是浮点数,可在线监控,发现它是BCD,难过了!用BCD-DI然后DI-R,然后又是除又是余数之类的写了好几段仍然不行。

有哪位大侠整过这种程序,帮帮小弟了。




  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 455回
  • 年度积分:0
  • 历史总积分:1000
  • 注册:2008年1月09日
发表于:2014-05-25 21:10:24
1楼

多用几个变量,如年、月、日、时、分、秒,各自计时,当秒为60时,分加1,秒变0,等等


  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 455回
  • 年度积分:0
  • 历史总积分:1000
  • 注册:2008年1月09日
发表于:2014-05-25 21:42:00
2楼

既然有显示,应该是 有上位机或屏之类的,一般这些设备会支持脚本,所以可以在这些设备上来处理数据的显示,这样显然会比plc内好处理的多

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 455回
  • 年度积分:0
  • 历史总积分:1000
  • 注册:2008年1月09日
发表于:2014-05-25 22:09:02
3楼

Private Sub Command1_Click()

   Dim s As Long
   Dim y As Long
   Dim m As Long
   Dim d As Long
   Dim h As Long
   Dim min As Long
   Dim sec As Long
   
   Dim temp1 As Long
   Dim temp2 As Long
   
   s = CLng(Text1.Text)
   
   sec = s Mod 60
   Text2.Text = CStr(sec) & "秒"
   s = (s - sec) / 60
   
   min = s Mod 60
   Text3.Text = CStr(min) & "分"
   s = (s - min) / 60
   
   h = s Mod 24
   Text4.Text = CStr(h) & "时"
   s = (s - h) / 24
   
   d = s Mod 30
   Text5.Text = CStr(d) & "日"
   s = (s - d) / 30
   
   m = s Mod 12
   Text6.Text = CStr(m) & "月"
   s = (s - m) / 12
   
   y = s
   Text7.Text = CStr(y) & "年"
   
End Sub


这是VB写的程序,月份按30天算(因为你将来的不是日期,而是时间,所以无法按正常日期计算,如果只计算天数的话就没有这个问题),每年按360天计算

wyb2866255---王者之师

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2014-05-26 00:13:17
4楼

    编写如下程序,不知是否符合你的要求:

       累计秒的存储区以BCD码的格式存入在MD0与MW4中,其年的存储区为MB0,月的存储区为MB1,日的存储区为MB2,小时的存储区为MB3,分的存储区为MB4,秒的存储区为MB5.

 

乖乖小笨熊

  • 精华:2帖
  • 求助:0帖
  • 帖子:1200帖 | 11283回
  • 年度积分:2326
  • 历史总积分:62523
  • 注册:2006年8月05日
发表于:2014-05-26 10:32:07
5楼

实际:年份、月份都是直接调用万年历的!

天数一般也是调用万年历,至于累计时间,一般是多少小时!

正常人按照常规理解,非正常人例外

wyb2866255---王者之师

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2014-05-26 14:01:45
6楼

用户要看运行时间是**年**月**日**小时**分钟**秒。这里的年、月、日等不是指当前具体的日期与时间,而是值指从启动开始,程序运行的总的累计时间。如显示记录为:年=1、月=3、日=15、小时=2、分=35、秒=20,即到当前为止,总累计时间为:1年另3个月,又15天,再加上2小时35分20秒。

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 455回
  • 年度积分:0
  • 历史总积分:1000
  • 注册:2008年1月09日
发表于:2014-05-26 21:31:37
7楼

记录运行时间是没有闰年和闰月之分的,也没用大小月之分,也不知道如何该考虑这些问题,难道是运行第一个月俺31天计算,第二个月按28天算,到第4年要考虑闰年?不知道怎么考虑这些问题

qvbpgklwg

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 45回
  • 年度积分:0
  • 历史总积分:238
  • 注册:2006年11月24日
发表于:2014-05-27 11:10:18
8楼

每月按30天算的话一年就只有300天,要不就做成一个月30天一个月31天,如果要准确的话就不要年和月了,就记录**日**小时**分钟**秒。最后累计区清0错了,清零的话应该清MW10~MW20.


腚海神针

  • 精华:0帖
  • 求助:2帖
  • 帖子:152帖 | 743回
  • 年度积分:0
  • 历史总积分:4529
  • 注册:2007年12月05日
发表于:2014-05-28 09:28:01
9楼

引用  的回复内容: 多用几个变量,如年、月、日、时、分、秒,各自计时,当秒... 


 多来几个计数器,该掉电保持的做好,应该就可以了吧!

whysye

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 58回
  • 年度积分:0
  • 历史总积分:0
  • 注册:2014年5月08日
发表于:2014-05-29 13:56:00
10楼

谢谢楼主分享  正好要用到 下载看看4

明小小

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 20回
  • 年度积分:0
  • 历史总积分:20
  • 注册:2015年3月26日
发表于:2015-03-26 16:18:36
11楼

您的产品我们公司可以做,以下是我们的部分产品,如果有需要,请咨询:

MAC小三通电磁阀:http://www.mac-valves.com/smallthree/

MAC大三通电磁阀:http://www.mac-valves.com/dasantong/

MAC小四通电磁阀:http://www.mac-valves.com/xiaosi/

MAC大四通电磁阀:http://www.mac-valves.com/dasitong/

MAC iSO阀:http://www.mac-valves.com/iso/

MAC迷你阀:http://www.mac-valves.com/weixing/



热门招聘
相关主题

官方公众号

智造工程师