首页 上一页 1 2 下一页 尾页

请教MODCOM出错原因。 点击:1707 | 回复:26



athlon XP

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 15回
  • 年度积分:0
  • 历史总积分:68
  • 注册:2004年12月09日
发表于:2007-04-18 22:08:00
楼主
请教K120S高人个问题,我最近刚做个工程,写了个程序,可是这个程序大概运行上60多分钟左右后就会有几个数值返不回来。有时8小时也没事,有时半小时就出点问题。
是K120S MODBUS RTU与4台280KW汇川变频器通讯。
变频地址是2 3 4 5 PLC是1   还有个MT510T的触目屏RS232与PLC通讯1口链接(2--2 3--3  5--5)。


有时是D107返不回来值,有时是别的,似乎是随机的。然后现象就是触目屏上的显示数少了一组(也许是电流不显示,也许是电压不显示,也许是频率....),目前的处理办法是,将
PLC的开关打到OFF上,然后再打到ON上就又都可以显示了。请大家分析一下原因,这问题说大不大,可总不显示,这工程做下来也太丢人了吧。请大家多帮帮忙。谢谢了。

load f0091
load m55    //m55测试使用
ctr c000 0022

load f0010
cmp c000 0001
and f122
and p3  //p3为1号变频使能信号  地址02
modcom 1 d100 d103 m0   //d100为h0203  d101为h8000  

d102为1 

load f10
cmp c0 2
and f122
and p6  //p6为2号变频使能信号  地址03
modcom 1 d200 d203 m0

load f10
cmp c0 3
and f122
and p9  //p9为3号变频使能信号  地址04
modcom 1 d300 d303 m0

load f10
cmp c0 4
and f122
and pc  //pc为4号变频使能信号  地址05
modcom 1 d400 d403 m0

load f10
cmp c000 5
and f122
and p3  //p3为1号变频使能信号  地址02
modcom 1 d100 d107 m0   

load f10
cmp c0 6
and f122
and p6  //p6为2号变频使能信号  地址03
modcom 1 d200 d207 m0

load f10
cmp c0 7
and f122
and p9  //p9为3号变频使能信号  地址04
modcom 1 d300 d307 m0

load f10
cmp c0 8
and f122
and pc  //pc为4号变频使能信号  地址05
modcom 1 d400 d407 m0
........共20条。



athlon XP

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 15回
  • 年度积分:0
  • 历史总积分:68
  • 注册:2004年12月09日
发表于:2007-04-18 22:11:00
1楼
与变频器  9600 偶校验 8 1 
与MT510T  38400 偶校验 8 1 

leodan

  • 精华:0帖
  • 求助:0帖
  • 帖子:15帖 | 196回
  • 年度积分:0
  • 历史总积分:320
  • 注册:2004年5月07日
发表于:2007-04-19 11:22:00
2楼
先点对点看看,数据是不是正常的啊。你那里要不要计算ASC玛的啊?首先肯定的是有数据反馈的话,一定是通上了,数据错乱的话,个人认为可能是1:站号没有设进去,或者站号不匹配,例如PLC和1号通讯的,现在和2号连上了……2:数据格式不对。3:停止位设的不对,也有可能出现上面的情况。最后就是现场干扰,因为你的是280KW的变频器,所以现场干扰肯定不小,而且还有好几台,建议你最好是加电抗器,或者是在PLC程序里面再做个滤波之类的程序,也就是几断程序数据采集,判断一下数据是否都收到了,然后再上传给HMI。(如果是HMI方面出现的问题话,可能性是数据接受迟缓,这个应该好判断的呢,因为我们也一直在做EVIEW和LG的PLC的,呵呵……这个情况很少出现的)

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2007-04-19 20:33:00
3楼
F0091太快了,使用1秒的时间脉冲

athlon XP

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 15回
  • 年度积分:0
  • 历史总积分:68
  • 注册:2004年12月09日
发表于:2007-04-19 22:16:00
4楼
感谢关注  这个程序我在公司用小功率的变频器连续运行过9个多小时都不出一次问题。
所以我怀疑是现场干扰问题,可能是干扰导致数据错误,使D寄存器数据溢出,使D寄存器不能正常工作。
可我在程序上应该用什么样的方法去解决干扰啊?请leodan:再指教指教。我这也是第一次写,出的问题现在还在再解决的办法。
有没有什么办法能判断出D积存器出错?还有 用什么方法去合理的复位一下出错的D积存器?

athlon XP

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 15回
  • 年度积分:0
  • 历史总积分:68
  • 注册:2004年12月09日
发表于:2007-04-19 22:18:00
5楼
f97太慢了

athlon XP

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 15回
  • 年度积分:0
  • 历史总积分:68
  • 注册:2004年12月09日
发表于:2007-04-19 22:29:00
6楼
我在人机界面上的显示数据是直接对应在D107....之类的寄存器上的。一但D存储器有数值,就会显示出来。

上面说到的站号  和数据格式应该没什么问题,停止位我设的是1位。  
要是写个CRC校验之类的程序,能抗干扰么?

leodan

  • 精华:0帖
  • 求助:0帖
  • 帖子:15帖 | 196回
  • 年度积分:0
  • 历史总积分:320
  • 注册:2004年5月07日
发表于:2007-04-20 11:21:00
7楼
我觉得不是F091的脉冲问题,我们以前都用的是F90的,这样扫描时间才可以跟的上,我的想法是一般D区域溢出的话,D的值监控的状态下是出现负号的,还有考虑用双字节移位看看,不知道可不可行的.另外就是一个土办法,用MOVP指令收集十个数据,做个比较,去掉最大的和最小的,然后再往屏里面写数据.扫描到一次数据以后清零一次.这样不知道行不行的通.

athlon XP

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 15回
  • 年度积分:0
  • 历史总积分:68
  • 注册:2004年12月09日
发表于:2007-04-20 18:44:00
8楼
每次接收数据前都先给寄存器清零,这样可以么?

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2007-04-20 21:29:00
9楼
 1如发送时间快的话,当从站的信号还没有处理完,又发送一幀数据,这时就造成通讯发生错误而出现通讯断开  或反馈错误代码,
 2又可能数据地址有其他地方使用的可能,
 3干扰,降低波特率,最好从硬件方面来解决,
 

leodan

  • 精华:0帖
  • 求助:0帖
  • 帖子:15帖 | 196回
  • 年度积分:0
  • 历史总积分:320
  • 注册:2004年5月07日
发表于:2007-04-22 11:19:00
10楼
如果光清零肯定是不行的呢,首先要做个程序判断一下取什么值才可以,加硬件抗干扰也是必要的。既然出现干扰就一定要想办法清除才好呢。我想如果是干扰也只有这些手段解决了。

athlon XP

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 15回
  • 年度积分:0
  • 历史总积分:68
  • 注册:2004年12月09日
发表于:2007-04-22 19:00:00
11楼
加硬件是不可能了,公司不会为个这事出钱的。只能想程序方面的办法了。
“数据地址有其他地方使用”,这是不可能出现的,我用过的寄存器我都要用笔记下来的,绝对不会发生这事儿。

athlon XP

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 15回
  • 年度积分:0
  • 历史总积分:68
  • 注册:2004年12月09日
发表于:2007-04-22 19:08:00
12楼
要不这样吧,
load f0010
cmp c000 0001
and f122
and p3  //p3为1号变频使能信号  地址02
modcom 1 d100 d103 m0   //d100为h0203  d101为h8000  
load m0
mov d103 d500//成功时显示D500的数值
load m1
mov 0 d103  //错误时清零

leodan

  • 精华:0帖
  • 求助:0帖
  • 帖子:15帖 | 196回
  • 年度积分:0
  • 历史总积分:320
  • 注册:2004年5月07日
发表于:2007-04-24 11:39:00
13楼
我还是建议你一下子先取十个数值先,然后一个一个的比较下来,去掉不用的,现在的问题不是你不可以成功的显示或者移不过去,而是你那里有干扰不可以正确的显示你要的数值啊,所以先判断你那里接收的数据是不是已经是这么多了,然后再比较一下,选择你要的范围的值,最后再送给HMI,再把数值清零,你上面那样做,我感觉是不会达到你想要的效果的,最多好一点点!

athlon XP

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 15回
  • 年度积分:0
  • 历史总积分:68
  • 注册:2004年12月09日
发表于:2007-04-26 11:33:00
14楼
感觉 这样判断用的时间太长了.取10个数就要100*10ms  况且我还要采集20组数.那样刷新一次是时间太长了.

leodan

  • 精华:0帖
  • 求助:0帖
  • 帖子:15帖 | 196回
  • 年度积分:0
  • 历史总积分:320
  • 注册:2004年5月07日
发表于:2007-04-26 14:14:00
15楼
一次性把20组的数据都采集来.大概是0.1秒左右吧?然后再采十次,作个判断也就1秒的时间啊,这样比较的快.不要分开取,那样就麻烦了!

athlon XP

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 15回
  • 年度积分:0
  • 历史总积分:68
  • 注册:2004年12月09日
发表于:2007-05-02 15:13:00
16楼
数要一个一个发,怎么一次性能搞定20组?不理解。

athlon XP

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 15回
  • 年度积分:0
  • 历史总积分:68
  • 注册:2004年12月09日
发表于:2007-05-05 11:32:00
17楼
LG k120S的CRC校验需要单独写么?怎么处理?发送的时候CRC放在什么位置?

leodan

  • 精华:0帖
  • 求助:0帖
  • 帖子:15帖 | 196回
  • 年度积分:0
  • 历史总积分:320
  • 注册:2004年5月07日
发表于:2007-05-09 10:07:00
18楼
是一个一个的发的,我的意思是发完20个再做个判断了啦.那个是看你INV需要不需要写校验玛的吧!上次我们做的和三菱的就有写的,是INV要求要最后写校验码的,不写不运行的.

athlon XP

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 15回
  • 年度积分:0
  • 历史总积分:68
  • 注册:2004年12月09日
发表于:2007-05-11 18:00:00
19楼
crc怎么写?

leodan

  • 精华:0帖
  • 求助:0帖
  • 帖子:15帖 | 196回
  • 年度积分:0
  • 历史总积分:320
  • 注册:2004年5月07日
发表于:2007-05-14 10:07:00
20楼
这个是查变频器的资料,根据变频器的要求往里面写数值的.如果变频器不要求写,例如LG的PLC和LG的变频器通讯走专用协议的话,就不要写的!三菱的通讯的程序,我很快就有了,过几天发来可以给你参考一下,目前还处在调试阶段,但是通讯是通上了,也没有什么大问题,只是有点小的现场干扰!不知道你能不能用的上!

热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页