【紧急】多个Haiwell(海为)PLC通讯组件—262错误 点击:448 | 回复:4



X东海

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 7回
  • 年度积分:0
  • 历史总积分:68
  • 注册:2017年2月14日
发表于:2017-02-24 04:23:19
楼主

如上图所示,上位机采用.net开发,放了两个HaiwellPLCcomm.ocx组件,一个监听com1,一个监听com2,单独调用Run(true);都可以获取到数据,可是同时调用  axHWPLCComm1.Run(true);  axHWPLCComm2.Run(true); 后,就获取不到数据,其中axHWPLCComm2的ErrCode返回262,请教是什么原因呢?如何解决?谢谢。




楼主最近还看过



DavidLuiz

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 96回
  • 年度积分:0
  • 历史总积分:163
  • 注册:2014年9月28日
发表于:2017-02-24 13:00:43
1楼

是不是把你的VB报错内容也截图一下看下呢


一个串口能用  就说明这个控件本身没有问题 


考验的还是上位机VB工程师的能力

乖乖小笨熊

  • 精华:2帖
  • 求助:0帖
  • 帖子:1210帖 | 11287回
  • 年度积分:2461
  • 历史总积分:62658
  • 注册:2006年8月05日
发表于:2017-02-24 13:39:13
2楼

应该是2个串口访问了相同内存区,把该参数修改

X东海

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 7回
  • 年度积分:0
  • 历史总积分:68
  • 注册:2017年2月14日
发表于:2017-02-24 21:42:01
3楼


回复内容:

对: DavidLuiz 是不是把你的VB报错内容也截图一下看下呢一个串口能用 ... 内容的回复!


没有报错,只是第二个plc的ErrCode返回262,然后,获取不到参数值。


如果分别用两个程序运行,则可以获取到。感觉控件在同一winform中不能放两次。

X东海

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 7回
  • 年度积分:0
  • 历史总积分:68
  • 注册:2017年2月14日
发表于:2017-02-24 21:44:12
4楼


回复内容:

对: 乖乖小笨熊 应该是2个串口访问了相同内存区,把该参数修改 内容的回复!

请教,如何修改?

参数设置如下:

  //设置PLC1通讯参数

            axHWPLCComm1.BaudRate = (HaiwellPLCcomm.fBaudRate)4;        // 19200
            axHWPLCComm1.CommPort = int.Parse(tboxComPort.Text.Trim());
            axHWPLCComm1.SampleTime = 300;                              //范围100~30000毫秒
            axHWPLCComm1.CommProtrol = (HaiwellPLCcomm.fProtrol)0;      // [N,8,2,RTU]


            //增加PLC连接
            int iNO = int.Parse(tboxPLCNo.Text.Trim());
            axHWPLCComm1.HWPLCs.AddPLC(iNO, iNO.ToString() + "号PLC");



 //设置PLC2通讯参数

            axHWPLCComm2.BaudRate = (HaiwellPLCcomm.fBaudRate)4;        // 19200
            axHWPLCComm2.CommPort = int.Parse(tboxPlc24ComPort.Text.Trim());
            axHWPLCComm2.SampleTime = 300;                              //范围100~30000毫秒
            axHWPLCComm2.CommProtrol = (HaiwellPLCcomm.fProtrol)0;      // [N,8,2,RTU]


            //增加PLC连接
            int iNO = int.Parse(tboxPlc24No.Text.Trim());
            axHWPLCComm2.HWPLCs.AddPLC(iNO, iNO.ToString() + "号PLC");



热门招聘
相关主题

官方公众号

智造工程师