DVP04DA-H2支持RTU模式??? 点击:558 | 回复:14



牛牛不牛

    
  • 精华:2帖
  • 求助:0帖
  • 帖子:50帖 | 459回
  • 年度积分:0
  • 历史总积分:856
  • 注册:2006年5月07日
发表于:2008-11-12 14:34:36
楼主

手头有块EH的PLC和04DA-EH2的模拟量输出模块。

前几天用04DA默认的通讯参数(ASCII、7、E、1)用串口调试软件发以下的代码过去,能成功通讯上。以下是给1CH传送2000,输出5V模拟电压,经过万用表的监测,完全OK。串口软件设置为9600、7、E、1

3A 30 31 30 36 34 30 33 38 30 37 44 30 41 41 0D 0A

今天想用RTU模式调试(个人感觉RTU没ASCII烦琐)。将04DA的排线插到PLC的扩展插槽,然后用TO指令修改了通讯地址 (H4051为1、H4052更改为H8002)并用FROM指令监视,确认已经更改通讯参数。然后将排线拔下,用串口软件发如下代码:

01 06 40 38 07 D0 EE 6B(CRC是软件算出)

软件提示通讯超时,然后我尝试将通讯参数设置4052更改为H8002 、8000、C000、C002四个参数都不能通讯上。串口软件设置的是9600、8、E、1

请问04DA更改哪项参数才能与串口软件通讯上呢?又或者是不支持RTU模式?




孤掌难鸣

  • 精华:0帖
  • 求助:0帖
  • 帖子:76帖 | 324回
  • 年度积分:0
  • 历史总积分:704
  • 注册:2007年8月17日
发表于:2008-11-13 10:03:17
1楼

把04DA-H2的CR32的bit14,bit15设为1才可以用RTU模式,RTU模式要设成8,E,1通讯格式

04AD-H2说明书上有讲。

孤掌难鸣

  • 精华:0帖
  • 求助:0帖
  • 帖子:76帖 | 324回
  • 年度积分:0
  • 历史总积分:704
  • 注册:2007年8月17日
发表于:2008-11-13 10:20:38
2楼

说明:1. 04DA-EH2的模块不可以直接接在EH主机的后面,要接在EH2主机的后面才可以用FROM,TO指令。

              2. 楼上说的H4051,H4052为04DA的CR31,CR32,这两个参数不可以通过TO指令更改,要通过通讯的方式才可以更改。

 

牛牛不牛

  • 精华:2帖
  • 求助:0帖
  • 帖子:50帖 | 459回
  • 年度积分:0
  • 历史总积分:856
  • 注册:2006年5月07日
发表于:2008-11-13 10:21:34
3楼

谢谢1楼朋友的回帖,04DA-H2的CR32的bit14,bit15已经尝试过设置为1,即CR32为HC000。发过数据过去,一样没反应的

牛牛不牛

  • 精华:2帖
  • 求助:0帖
  • 帖子:50帖 | 459回
  • 年度积分:0
  • 历史总积分:856
  • 注册:2006年5月07日
发表于:2008-11-13 10:48:35
4楼

呵呵,您的帖子发在我的前面了

我的PLC型号是DVP40EH00T2    V1.20A0

刚刚在WPLSoft 2.11中用TO和FROM指令修改完毕后,能监视到CR31,CR32的参数已被修改。

牛牛不牛

  • 精华:2帖
  • 求助:0帖
  • 帖子:50帖 | 459回
  • 年度积分:0
  • 历史总积分:856
  • 注册:2006年5月07日
发表于:2008-11-13 10:55:42
5楼
十个字十个字十个字十个字

孤掌难鸣

  • 精华:0帖
  • 求助:0帖
  • 帖子:76帖 | 324回
  • 年度积分:0
  • 历史总积分:704
  • 注册:2007年8月17日
发表于:2008-11-13 11:50:13
6楼

您那个PLC是EH2的,不过不要用TO指令修改CR31,CR32的值,其他参数可以用FROM,TO指令读写。

用通讯的方式去修改CR31,CR32的值,你用串口发数据把CR32的值改了才可以。就像你开始帖子发的

3A 30 31 30 36 34 30 33 38 30 37 44 30 41 41 0D 0A ,只是你现在要用CR32的地址H4052,用通讯的方式改过后试一下。

您的程序是用M1000操作后面的MOV指令,您可以用M0后用TO指令修改CR32的值,下面用M1000后用FROM指令读CR32的值,

M0强制ON后再OFF,管餐M1000后读出的CR32的值,会发现值实际上没有修改。

孤掌难鸣

  • 精华:0帖
  • 求助:0帖
  • 帖子:76帖 | 324回
  • 年度积分:0
  • 历史总积分:704
  • 注册:2007年8月17日
发表于:2008-11-13 11:56:27
7楼
我刚才说的程序是这样写。

孤掌难鸣

  • 精华:0帖
  • 求助:0帖
  • 帖子:76帖 | 324回
  • 年度积分:0
  • 历史总积分:704
  • 注册:2007年8月17日
发表于:2008-11-13 11:58:32
8楼
刚才图片没发上去,看一下这个图片

孤掌难鸣

  • 精华:0帖
  • 求助:0帖
  • 帖子:76帖 | 324回
  • 年度积分:0
  • 历史总积分:704
  • 注册:2007年8月17日
发表于:2008-11-13 12:01:00
9楼

您现在用ASCII码不是可以和04DA-H2通讯上吗,您可以更改其他参数,也就可以更改CR32,只是更改后就通讯你不上了,

再用新更改的通讯格式和PLC通讯就可以了,PLC和04DA的通讯格式要一致。

牛牛不牛

  • 精华:2帖
  • 求助:0帖
  • 帖子:50帖 | 459回
  • 年度积分:0
  • 历史总积分:856
  • 注册:2006年5月07日
发表于:2008-11-13 13:42:53
10楼

呵呵,阁下所言即是:我先发3A 30 31 30 36 34 30 35 32 43 30 30 30 41 37 0D 0A ,修改通讯格式为C000H,然后再发串口软件就通讯不上了。再联上PLC监视CR32的时候发现此时CR32的数据不是C000H,而是C002H,可能是PLC自动识别到最高位为1的时自动设置的通讯格式吧!

此时 -----------------------------13:36:16发送(H):1 6 40 3B 7 D0 EE 6B 
         -----------------------------13:36:16接收(H):1 6 40 22 50

万用表监视到4CH为5V。OK

您真厉害!谢谢!

牛牛不牛

  • 精华:2帖
  • 求助:0帖
  • 帖子:50帖 | 459回
  • 年度积分:0
  • 历史总积分:856
  • 注册:2006年5月07日
发表于:2008-11-13 13:46:01
11楼
对了,顺便再请问下,返回的1 6 40 22 50 中的40是啥?22 50是CRC,刚算的。

牛牛不牛

  • 精华:2帖
  • 求助:0帖
  • 帖子:50帖 | 459回
  • 年度积分:0
  • 历史总积分:856
  • 注册:2006年5月07日
发表于:2008-11-13 13:49:37
12楼
13:36:16发送(H):1 6 40 3B 7 D0 EE 6B
13:36:16接收(H):1 6 40 22 50
13:51:10发送(H):1 6 40 3B 3 E8 ED 79
13:51:10接收(H):1 6 40 22 50
13:51:19发送(H):1 6 40 3B 3 E8 ED 79
13:51:20接收(H):1 6 40 22 50

孤掌难鸣

  • 精华:0帖
  • 求助:0帖
  • 帖子:76帖 | 324回
  • 年度积分:0
  • 历史总积分:704
  • 注册:2007年8月17日
发表于:2008-11-13 15:00:27
13楼

不好意思,下午网络有问题,感觉回的数据不太对,

你写数据应该是发送和接收的一样才对,你读一下H403B的数据看一下返回代码是什么

牛牛不牛

  • 精华:2帖
  • 求助:0帖
  • 帖子:50帖 | 459回
  • 年度积分:0
  • 历史总积分:856
  • 注册:2006年5月07日
发表于:2008-11-13 21:34:38
14楼

21:34:49发送(H):1 6 40 3B 7 D0 EE 6B
21:34:49接收(H):1 6 40 22 50
21:35:01发送(H):1 3 40 3B 0 1 E0 7
21:35:01接收(H):1 3 2 7 D0 BB E8

接收的就是发送过去的数据,奇怪,为什么发送后自动接收(21:34:49接收(H):1 6 40 22 50)?

这个小软件还真方便,呵呵


热门招聘
相关主题

官方公众号

智造工程师