技术论坛

续:哪位编程高手帮我分析分析程序哪错了

作者 主题
xgg
游民

经验值: 117
发帖数: 53
精华帖: 0
续:哪位编程高手帮我分析分析程序哪错了


只看楼主 2007-08-18 22:55:55
我自己不调用 This Routine store values of V-memory to the internal EEPROM.自己编了一个程序好象可以执行如下:
GANIZATION_BLOCK 主程序:OB1
TITLE=程序注释M18.7开机一小时产生的一个标志位
// M18.0程序执行一次自校准后自动复位
// M29.0手动校准的标志,执行手动就复位校准计时
BEGIN
Network 1
LD SM0.1
MOVB 2, MB1
R M18.0, 6
S M18.7, 1
Network 2 // 网络标题
// 网络注释
LD SM0.0
= L60.0
LD M18.0
= L63.7
LD M29.0
= L63.6
LD L60.0
CALL SBR0, L63.7, L63.6, VB2700, VB2701, VD2702
Network 3
// 手动控制产生的标志
LD M29.0
S M18.3, 1
Network 4
// 中断前的数据保持
LD SM0.0
AN M18.1
MOVB MB1, VB2706
Network 5
// 正常状况下开机一小时执行一次自校准,然后每48小时循环执行一次,如果在一小时中间手动控制打断将不执行开机一小时的控制,而是重新计数,然后48时循环执行
LD M18.7
AN M18.3
AD>= VD2702, +1
OD>= VD2702, 48
EU
S M18.1, 1
S M18.2, 1
S M18.0, 1
R M18.7, 1
Network 6
LD M18.2
CALL SBR1
Network 7
// 自校准执行后把MB1的状态恢复至执行前
LD M18.6
MOVB VB2706, MB1
R M18.6, 1
R M18.0, 1
END_ORGANIZATION_BLOCK
SUBROUTINE_BLOCK 校准计时:SBR0
TITLE=子程序注释
VAR_INPUT
自动清零:BOOL;
手动清零:BOOL;
END_VAR
VAR_OUTPUT
秒:BYTE;
分:BYTE;
小时:DWORD;
END_VAR
BEGIN
Network 1 // 网络标题
// 网络注释
LD L0.0
O L0.1
FILL +0, LW1, 3
Network 2
LDN M19.3
TON T33, +100
Network 3
LD T33
= M19.3
Network 4
LD T33
INCB LB1
Network 5
LDB>= LB1, 6
INCB LB2
MOVB 0, LB1
= Q0.0
Network 6
LDB>= LB2, 6
INCD LD3
MOVB 0, LB2
END_SUBROUTINE_BLOCK
SUBROUTINE_BLOCK 自动校准:SBR1
TITLE=子程序注释
VAR
temp:REAL;
END_VAR
BEGIN
Network 1 // 网络标题
// 网络注释
LD SM0.0
LPS
MOVW +0, VW200
AENO
S M31.4, 1
= Q1.7
LPP
A M1.0
ANDB 250, MB1
Network 2
LD SM0.0
MOVR 5.0, VD2012
Network 3
LD SM0.0
MOVR VD2012, LD0
Network 4
LDN M19.4
TON T47, 200
Network 5
LD T47
= M19.4
Network 6
LD T47
LDW>= C5, 4
CTU C5, 4
Network 7
LDW= C5, +1
EU
MOVR LD0, VD2046
Network 8
// 把执行结果存在EEPROM中
LDW= C5, 2
EU
AN SM31.7
MOVW 2046, SMW32
MOVB 3, SMB31
S SM31.7, 1
Network 9
LDW= C5, 3
EU
R Q1.7, 1
R M31.4, 1
R M18.2, 1
S M18.6, 1
Network 10 // 网络标题
// 网络注释
END_SUBROUTINE_BLOCK
INTERRUPT_BLOCK INT_0:INT0
TITLE=中断程序注释
BEGIN
Network 1 // 网络标题
// 网络注释
END_INTERRUPT_BLOCK
SUBROUTINE_BLOCK 校准计时:SBR0
TITLE=子程序注释
VAR_INPUT
自动清零:BOOL;
手动清零:BOOL;
END_VAR
VAR_OUTPUT
秒:BYTE;
分:BYTE;
小时:DWORD;
END_VAR
BEGIN
Network 1 // 网络标题
// 网络注释
LD L0.0
O L0.1
FILL +0, LW1, 3
Network 2
LDN T40
TON T40, +10
Network 3
LD T40
INCB LB1
Network 4
LDB>= LB1, 60
INCB LB2
MOVB 0, LB1
Network 5
LDB>= LB2, 60
INCD LD3
MOVB 0, LB2
END_SUBROUTINE_BLOCK
SUBROUTINE_BLOCK 自动校准:SBR1
TITLE=子程序注释子程序注释MB1是一系列的泵的控制M1.0 是泵停(1)标志,下面是采集VD2012的数据进行校准运算,且VD2012的数要求保存在EEPROM中
VAR
temp:REAL;
END_VAR
BEGIN
Network 1 // 网络标题
// 网络注释在M1.0(1)泵时停状态下须开泵,
LD SM0.0
LPS
MOVW +0, VW200
AENO
S M31.4, 1
= Q1.7
LPP
A M1.0
ANDB 250, MB1
Network 2
LD SM0.0
MOVR VD2012, LD0
Network 3
// 采集运算间隔10MS
LDN M19.4
TON T47, 200
Network 4
LD T47
= M19.4
Network 5
LD T47
LDW>= C5, 4
CTU C5, 4
Network 6
LDW= C5, +1
EU
MOVR LD0, VD2046
Network 7
// 把执行结果存在EEPROM中
LDW= C5, 2
EU
AN SM31.7
MOVW 2046, SMW32
MOVB 3, SMB31
S SM31.7, 1
Network 8
LDW= C5, 3
EU
R Q1.7, 1
R M31.4, 1
R M18.2, 1
S M18.6, 1
Network 9 // 网络标题
// 网络注释
END_SUBROUTINE_BLOCK

但在这个程序中写入调用
LD SM0.0

= L60.0

LD M29.7

= L63.7

LD L60.0

CALL SBR2, L63.7, MD20, MW24, MW26, M14.0, M14.1好象程序也瘫痪了,按道理不应该影响程序的



 
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=362312&b_id=3&s_id=0&num=11

xgg
游民

经验值: 117
发帖数: 53
精华帖: 0
回复:续:哪位编程高手帮我分析分析程序哪错了


只看楼主 2007-08-18 22:57:15
有谁知道吗,急需回复
 
以下网友喜欢您的帖子:

  
至圣

经验值: 17112
发帖数: 4192
精华帖: 114
回复:续:哪位编程高手帮我分析分析程序哪错了


只看楼主 2007-08-18 23:15:28
你当人家是你公司的免费技术员吗? 呵呵. 程序这么长,你让大家怎么看啊!哎... ...这种“问题”真的不适合拿来讨论的
I can do it
以下网友喜欢您的帖子:

  
侠圣

经验值: 3362
发帖数: 740
精华帖: 1
回复:续:哪位编程高手帮我分析分析程序哪错了


只看楼主 2007-08-19 08:07:22
这怎么多的程序确实不太好看!!!
 
以下网友喜欢您的帖子:

  
游士

经验值: 196
发帖数: 179
精华帖: 0
回复:续:哪位编程高手帮我分析分析程序哪错了


只看楼主 2007-08-19 11:08:52
确实有点长呀,如果不静下心来看,真搞不明白!有时间静心研究一下~
求知上进.
以下网友喜欢您的帖子:

  
xgg
游民

经验值: 117
发帖数: 53
精华帖: 0
回复:续:哪位编程高手帮我分析分析程序哪错了


只看楼主 2007-08-20 09:14:31
其实程序并不复杂,就是一个累计计时的小子程序加一个计时满足时的根据需要采样一个数据并把数据计数定时自动存储在EEPROM中的小子程序,主程序只是用了一些满足条件的位控制的位操作,然后就是满足条件时调用了需要的子程序,哪有很复杂,复杂的是S7-200的数据需要自己存储在EEPROM中,而西门子的给的免费存储的库用上去,程序就出故障,即使不在上述小程序中调用也出问题,自己编的存储程序的话上面功能可以完成,但一个项目中不可能只存储一个数,其他程序还要调用存储库,这只是程序的很小的一角也,可能编的罗嗦了一点而已,但我的问题很简单也
 
以下网友喜欢您的帖子:

  
xgg
游民

经验值: 117
发帖数: 53
精华帖: 0
回复:续:哪位编程高手帮我分析分析程序哪错了


只看楼主 2007-08-20 09:22:45
斑竹 您只要花一点点的时间就可以看明白了,呵呵...对于新手要有耐心,爱护您的子民,这样我会更加拥护您的
 
以下网友喜欢您的帖子:

  
xgg
游民

经验值: 117
发帖数: 53
精华帖: 0
回复:续:哪位编程高手帮我分析分析程序哪错了


只看楼主 2007-08-20 09:22:48
斑竹 您只要花一点点的时间就可以看明白了,呵呵...对于新手要有耐心,爱护您的子民,这样我会更加拥护您的
 
以下网友喜欢您的帖子:

  
侠士

经验值: 1278
发帖数: 872
精华帖: 1
回复:续:哪位编程高手帮我分析分析程序哪错了


只看楼主 2007-08-20 10:54:40
自己编写的程序很难看出错误的,换句话说,要是自己知道错了也不会那么编呀!
深夜客来茶当酒,琴剑如歌岁如禅
以下网友喜欢您的帖子:

  
xgg
游民

经验值: 117
发帖数: 53
精华帖: 0
回复:续:哪位编程高手帮我分析分析程序哪错了


只看楼主 2007-08-24 16:30:03
看来高手都比较忙啊,有谁知道西门子免费提供的存储数据库的文件编程用到了V,M区的地址了吗,为什么我在主程序中加上它不调用它也会影响程序运行呢
 
以下网友喜欢您的帖子:

  
xgg
游民

经验值: 117
发帖数: 53
精华帖: 0
回复:续:哪位编程高手帮我分析分析程序哪错了


只看楼主 2007-08-24 16:33:06
这件事真的很头疼也,希望有谁知道的能指点一下,QQ:63246845
 
以下网友喜欢您的帖子:

  
侠士

经验值: 1759
发帖数: 1423
精华帖: 3
回复:续:哪位编程高手帮我分析分析程序哪错了


只看楼主 2007-08-24 19:45:14
我想是没有人愿意看的,看别人的程序是一件比较痛苦的事情
只会用S7-200PLC!
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
续:哪位编程高手帮我分析分析程序哪错了
×
扫描打开手机版
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。