您的位置:控制工程论坛网论坛 » PLC与PAC » PLC系统时间、运行时间的技巧

ljs625

ljs625   |   当前状态:离线

总积分:1029  2024年可用积分:0

注册时间: 2008-06-26

最后登录时间: 2022-08-03

空间 发短消息加为好友

PLC系统时间、运行时间的技巧

ljs625  发表于 2008/7/16 15:45:36      1219 查看 2 回复  [上一主题]  [下一主题]

手机阅读

支架装配线PLC程序
Network 1 // 联锁启动/联锁启动告警
LD     I4.5
O      M0.0
A      I0.0
A      I4.6
A      I4.7
AN     M0.3
=      M0.0
TON    T37, 40
AN     T37
=      Q0.0
Network 2 // 联锁启动信号
LD     I0.0
A      I4.5
A      I4.6
A      I4.7
=      M0.1
Network 3 // 联锁停止信号
LDN    I0.0
O      I4.6
=      M0.2
Network 4 // 设备处于单独/联锁运行状态
LD     Q0.1
O      Q0.2
O      Q0.3
O      Q0.4
O      Q0.5
O      Q0.6
O      Q0.7
O      Q1.0
O      Q1.1
O      Q1.2
=      Q1.3
ED
=      M0.3
Network 5 // 联锁状态指示
LD     I0.0
=      Q1.4
Network 6 // 第1段线体末光电开关上升沿
LD     I0.2
EU
=      M1.0
Network 7 // 第1段线体就地启动
LD     I2.1
O      M0.1
O      M1.1
A      I2.2
A      M0.2
A      I4.7
AN     M1.0
LPS
=      M1.1
LDN    I0.1
O      I0.2
ALD
AN     I2.1
TON    T38, 300
LPP
AN     T38
=      Q0.1
Network 8 // 第2段线体末光电开关上升沿
LD     I0.4
EU
=      M2.0
Network 9 // 第2段线体就地启动
LD     I2.3
O      M0.1
O      M2.1
A      I2.4
A      M0.2
A      I4.7
AN     M2.0
LPS
=      M2.1
LDN    I0.3
O      I0.4
ALD
AN     I2.3
TON    T39, 300
LPP
AN     T39
=      Q0.2
Network 10 // 第3段线体末光电开关上升沿
LD     I0.6
EU
=      M3.0
Network 11 // 第3段线体就地启动
LD     I2.5
O      M0.1
O      M3.1
A      I2.6
A      M0.2
A      I4.7
AN     M3.0
LPS
=      M3.1
LDN    I0.5
O      I0.6
ALD
AN     I2.5
TON    T40, 300
LPP
AN     T40
=      Q0.3
Network 12 // 第4段线体末光电开关上升沿
LD     I1.0
EU
=      M4.0
Network 13 // 第4段线体就地启动
LD     I2.7
O      M0.1
O      M4.1
A      I3.0
A      M0.2
A      I4.7
AN     M4.0
LPS
=      M4.1
LDN    I0.7
O      I1.0
ALD
AN     I2.7
TON    T41, 300
LPP
AN     T41
=      Q0.4
Network 14 // 第5段线体末光电开关上升沿
LD     I1.1
EU
=      M5.0
Network 15 // PH5动作后计时
LD     M5.0
O      M5.1
AN     T42
=      M5.1
TON    T42, 100
Network 16 // 第6段线体末光电开关上升沿
LD     I1.2
EU
=      M6.0
Network 17 // 第5~6段线体就地启动
LD     I3.1
O      I3.3
O      M0.1
O      M6.1
A      I3.2
A      I3.4
A      M0.2
A      I4.7
AN     T42
AN     M6.0
LPS
=      M6.1
LDN    I1.1
O      I1.2
ALD
AN     I3.1
AN     I3.3
TON    T43, 500
LPP
AN     T43
=      Q0.5
=      Q0.6
Network 18 // 第7段线体末光电开关上升沿
LD     I1.4
EU
=      M7.0
Network 19 // 第7段线体就地启动
LD     I3.5
O      M0.1
O      M7.1
A      I3.6
A      M0.2
A      I4.7
AN     M7.0
LPS
=      M7.1
LDN    I1.3
O      I1.4
ALD
AN     I3.5
TON    T44, 300
LPP
AN     T44
=      Q0.7
Network 20 // 第8段线体末光电开关上升沿
LD     I1.5
EU
=      M8.0
Network 21 // PH8动作后计时
LD     M8.0
O      M8.1
AN     T45
=      M8.1
TON    T45, 100
Network 22 // 第9段线体末光电开关上升沿
LD     I1.6
EU
=      M9.0
Network 23 // 第8~9段线体就地启动
LD     I3.7
O      I4.1
O      M0.1
O      M9.1
A      I4.0
A      I4.2
A      M0.2
A      I4.7
AN     T45
AN     M9.0
LPS
=      M9.1
LDN    I1.5
O      I1.6
ALD
AN     I3.7
AN     I4.1
TON    T46, 500
LPP
AN     T46
=      Q1.0
=      Q1.1
Network 24 // 第10段线体末光电开关上升沿
LD     I2.0
EU
=      M10.0
Network 25 // 第10段线体就地启动
LD     I4.3
O      M0.1
O      M10.1
A      I4.4
A      M0.2
A      I4.7
AN     M10.0
LPS
=      M10.1
LDN    I1.7
O      I2.0
ALD
AN     I4.3
TON    T47, 300
LPP
AN     T47
=      Q1.2
Network 26
LD     SM0.0
CALL   SBR3


TITLE=运行时间统计程序
Network 1 // 调用TD向导生成的子程序
LD     SM0.0
CALL   SBR1
Network 2 // 显示系统时间
// 读系统时钟,把年/月/日/小时/分钟/秒/星期依次放入VB2000/VB2001/VB2002/VB2003/VB2004/VB2005/VB2007存储器中;
// 将BCD编码(二进制编码的十进制值)的字节转换为BCD编码的字(整数);
// 将BCD编码的字(整数)转换为整数值;
// 把显示年的存储器加2000,以显示为200*年,比较美观;
// 其它类同,先将BCD编码(二进制编码的十进制值)的字节转换为BCD编码的字(整数),然后再将BCD编码的字(整数)转换为整数值;这样就得到了年/月/日/小时/分钟/秒的整数值(本程序没有处理星期,如果要处理,方法相同),以用于TD400C显示。
LD     SM0.0
TODR   VB2000
BTI    VB2000, VW1640
MOVW   VW1640, VW1642
BCDI   VW1642
MOVW   +2000, VW1644
+I     VW1642, VW1644
BTI    VB2001, VW1646
MOVW   VW1646, VW1648
BCDI   VW1648
BTI    VB2002, VW1650
MOVW   VW1650, VW1652
BCDI   VW1652
BTI    VB2003, VW1654
MOVW   VW1654, VW1656
BCDI   VW1656
BTI    VB2004, VW1658
MOVW   VW1658, VW1660
BCDI   VW1660
BTI    VB2005, VW1662
MOVW   VW1662, VW1664
BCDI   VW1664
Network 3 // 累计运行时间统计----秒数显示
// 累计运行秒数统计;
// 如果秒数大于等于60,就减去60,用于显示;同时产生一个脉冲信号让分钟数加1;
LD     Q1.3
LPS
A      SM0.5
EU
INCW   VW1628
LPP
AW>=   VW1628, 60
-I     +60, VW1628
AENO
=      M31.1
Network 4 // 累计运行时间统计----分钟数显示
// 累计运行分钟数统计;
// 如果分钟数大于等于60,就减去60,用于显示;同时产生一个脉冲信号让小时数加1;
LD     Q1.3
LPS
A      M31.1
INCW   VW1624
LPP
AW>=   VW1624, 60
-I     +60, VW1624
AENO
=      M31.2
Network 5 // 累计运行时间统计----小时数显示
// 累计运行小时数统计;
// 如果小时数大于等于60,就减去60,用于显示;
LD     Q1.3
A      M31.2
INCW   VW1620
Network 6 // 本班运行时间判定
// 每天只有1个班;
// 系统小时等于上班小时设置且分钟大于等于上班分钟设置、系统小时大于上班小时设置且小于下班小时设置、系统时间等于下班小时设置且小于等于下班分钟设置,则认为是上班时间。
LDW=   VW1656, VW1720
AW>=   VW1660, VW1724
LDW>   VW1656, VW1720
AW<    VW1656, VW1740
OLD
LDW=   VW1656, VW1740
AW<=   VW1660, VW1744
OLD
=      M31.4
Network 7 // 每天上班时对前一天的运行时间清零
// 每天上班时分别对前一天的小时、分钟、秒进行清零;
LD     M31.4
EU
MOVD   0, VD1600
MOVD   0, VD1604
MOVD   0, VD1608
Network 8 // 本班运行时间统计----秒数显示
// 本班运行秒数统计;
// 如果秒数大于等于60,就减去60,用于显示;同时产生一个脉冲信号让分钟数加1;
LD     M31.4
A      Q1.3
LPS
A      SM0.5
EU
INCW   VW1608
LPP
AW>=   VW1608, 60
-I     +60, VW1608
AENO
=      M31.6
Network 9 // 本班运行时间统计----分钟数显示
// 本班运行分钟数统计;
// 如果分钟数大于等于60,就减去60,用于显示;同时产生一个脉冲信号让小时数加1;
LD     Q1.3
LPS
A      M31.6
INCW   VW1604
LPP
AW>=   VW1604, 60
-I     +60, VW1604
AENO
=      M31.7
Network 10 // 本班运行时间统计----小时数显示
// 本班运行小时数统计;
LD     Q1.3
A      M31.7
INCW   VW1600
Network 11 // 累计运行时间存入转存
LD     SM0.0
MOVW   VW1620, VW3260
MOVW   VW1624, VW3262
Network 12 // 累计运行时间存入EPROM
// 累计运行时间存入EPROM;
// EEPROM写入次数统计;
LD     Q1.3
ED
AN     M30.1
LD     V57.7
EU
OLD
AN     SM31.7
MOVW   3260, SMW32
MOVB   3, SMB31
S      SM31.7, 1
INCW   VW3558
=      M29.1
Network 13 // EEPROM写入后计时
LD     M29.1
O      M30.1
AW<    VW3368, 3600
=      M30.1
A      SM0.5
EU
INCW   VW3368
Network 14 // EEPROM写入动作完成了指定时间后复位相关计数器
LDN    M30.1
MOVW   0, VW3368
Network 15 // 如果数据丢失,就从EEPROM中恢复
LDW=   VW1620, 0
AW=    VW1624, 0
MOVW   VW3260, VW1620
MOVW   VW3262, VW1624
Network 16 // 上班时间之小时设置存入EEPROM
LD     V68.0
EU
AN     SM31.7
MOVW   1720, SMW32
MOVB   2, SMB31
S      SM31.7, 1
INCW   VW3558
Network 17 // 上班时间之分钟设置存入EEPROM
LD     V68.1
EU
AN     SM31.7
MOVW   1724, SMW32
MOVB   2, SMB31
S      SM31.7, 1
INCW   VW3558
Network 18 // 下班时间之小时设置存入EEPROM
LD     V68.2
EU
AN     SM31.7
MOVW   1740, SMW32
MOVB   2, SMB31
S      SM31.7, 1
INCW   VW3558
Network 19 // 下班时间之分钟设置存入EEPROM
LD     V68.3
EU
AN     SM31.7
MOVW   1744, SMW32
MOVB   2, SMB31
S      SM31.7, 1
INCW   VW3558
Network 20 // 编辑通知位动作计时
// 因为写入EPROM的动作是在每个扫描周期之后,所以编辑通知位=1的状态至少需要保持1个周期以上才能确保写入EPROM的动作正常执行;
LD     V68.0
O      V68.1
O      V68.2
O      V68.3
TON    T253, 20
Network 21 // 复位编辑通知位
LD     T253
R      V68.0, 4
Network 22
LD     SM0.5
EU
INCW   VW3532
Network 23
LDW>=  VW3368, 3600
INCW   VW3534
MOVW   0, VW3532
Network 24 // EEPROM写入次数存入EEPROM
LDW>=  VW3534, 24
EU
AN     SM31.7
MOVW   3558, SMW32
MOVB   2, SMB31
S      SM31.7, 1
INCW   VW3558
MOVW   0, VW3534
Network 25 // 本班开始运行时间
LD     Q1.3
EU
AW<>   VW3778, VW1652
MOVW   VW1656, VW1680
MOVW   VW1660, VW1684
MOVW   VW1664, VW1688
MOVW   VW1652, VW3778
Network 26 // 本班最后运行时间
LD     Q1.3
ED
MOVW   VW1656, VW1700
MOVW   VW1660, VW1704
MOVW   VW1664, VW1708
Network 27 // 本班运行时间复位
LDW=   VW1760, 1
MOVW   0, VW1600
MOVW   0, VW1604
MOVW   0, VW1608
MOVW   VW1644, VW1764
MOVW   VW1648, VW1768
MOVW   VW1652, VW1772
MOVW   VW1656, VW1776
MOVW   VW1660, VW1780
TON    T247, 50
A      T247
MOVW   0, VW1760
Network 28 // 累计运行时间复位
LDW=   VW1800, 1
MOVW   0, VW1620
MOVW   0, VW1624
MOVW   0, VW1628
MOVW   VW1644, VW1804
MOVW   VW1648, VW1808
MOVW   VW1652, VW1812
MOVW   VW1656, VW1816
MOVW   VW1660, VW1820
TON    T248, 50
A      T248
MOVW   0, VW1800


配合TD2000显示系统时间及其他参数.

1楼 0 0 回复
  • 218hty

    218hty   |   当前状态:在线

    总积分:9071  2024年可用积分:0

    注册时间: 2006-08-18

    最后登录时间: 2019-06-25

    空间 发短消息加为好友

    218hty   发表于 2008/7/11 20:54:58

    如何将其粘贴在文本文档中,奖其转换为梯形图。
    2楼 回复本楼

    引用 218hty 2008/7/11 20:54:58 发表于2楼的内容

  • wilton_gao

    wilton_gao   |   当前状态:离线

    总积分:123  2024年可用积分:0

    注册时间: 2008-01-16

    最后登录时间: 2009-09-29

    空间 发短消息加为好友

    wilton_gao   发表于 2008/7/16 15:45:36

    把程序贴到文本文件里,然后从编程软件里导入即可

    3楼 回复本楼

    引用 wilton_gao 2008/7/16 15:45:36 发表于3楼的内容

总共 , 当前 /