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

台达人机宏通讯 点击:2381 | 回复:21



NewPLC_71

    
  • 精华:0帖
  • 求助:2帖
  • 帖子:54帖 | 119回
  • 年度积分:0
  • 历史总积分:434
  • 注册:2005年11月21日
发表于:2014-07-17 00:24:55
楼主

 用台达B10S411与一台SS2  PLC和其它控制器同时通讯,SS2用com2口没有问题;控制器用com1口,使用画面cycle宏,通讯口初始化可以通过,但是发送数据putchars()和getchars()两个指令都不能正常工作。几个问题咨询一下高手:

A:同样的数据串用串口调试工具直接发给控制器,控制器可以接收,并返回数据,说明控制器通讯正常,通讯指令字符串也应该没有问题吧;

B:用串口调试接到触摸屏com1口,收不到触摸屏的任何数据,是什么原因?

C:宏通讯方面的例程哪位可以给几个学习一下?


拜托高手指点一下,谢了!!!





WUFANG2004

  • 精华:0帖
  • 求助:2帖
  • 帖子:54帖 | 119回
  • 年度积分:0
  • 历史总积分:434
  • 注册:2005年11月21日
发表于:2014-07-17 09:02:38
1楼

有没有台达的专家帮忙给看下啊,谢谢!


公孙小天

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 263回
  • 年度积分:0
  • 历史总积分:1330
  • 注册:2005年12月27日
发表于:2014-07-17 14:29:06
2楼

1、首先除非你将触摸屏通讯口定义成MODBUS SLAVE,否则屏是作为主站,串口调试工具必须设成从站模式,然后由屏通过宏指令发送代码,再由调试工具接收字符;

2、使用宏指令做COM1口自由通讯时,首先在选项——设置通讯参数中,COM1口下不能建立任何连线,然后COM1口的初始化一般会放到Initial宏中,只要上电初始化做一次就够了;

3、PUTCHARS和GETCHARS等指令在执行的过程中要考虑时序的问题,确保每条字符串收发指令确实执行完成,一般粗略一点的就在两条指令之间加上DELAY指令确保时序错开;

4、最后就是确定一下接线。

WUFANG2004

  • 精华:0帖
  • 求助:2帖
  • 帖子:54帖 | 119回
  • 年度积分:0
  • 历史总积分:434
  • 注册:2005年11月21日
发表于:2014-07-17 16:01:12
3楼

首先感谢楼上的指点!

1、触摸屏肯定是master了,但是串口监视好像不能设置主从站的,它自己会接收;

2、COM1下没有设置任何连接,初始化也放在initial宏中试过,也没有效果;

3、delay指令也用了,从串口调试发送指令是瞬间就能得到返回数据,但是putchar指令发出半天,getchars返回值始终为0,也就是没有接收到发回数据。

4、连线用应该不会有什么问题,用同一条数据线,串口调试运行都正常。


不知道还有什么地方可以查找原因的。请大家帮忙指点一下

WUFANG2004

  • 精华:0帖
  • 求助:2帖
  • 帖子:54帖 | 119回
  • 年度积分:0
  • 历史总积分:434
  • 注册:2005年11月21日
发表于:2014-07-17 16:05:08
4楼

还有个问题就是用串口调试软件发送数据格式应该跟触摸屏发送的格式一样吧。比如:串口发送:55 AA 01 00 03 00 00 00 01 03,串口软件可以接收到控制器返回数据,如果PLC或触摸屏发送的也是这种数据,为什么会收不到控制器返回数据呢?

公孙小天

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 263回
  • 年度积分:0
  • 历史总积分:1330
  • 注册:2005年12月27日
发表于:2014-07-17 16:12:23
5楼

能不能把两段宏指令贴上来看一下?

WUFANG2004

  • 精华:0帖
  • 求助:2帖
  • 帖子:54帖 | 119回
  • 年度积分:0
  • 历史总积分:434
  • 注册:2005年11月21日
发表于:2014-07-18 08:38:16
6楼

这是initial宏:

$100 = 55H

$101 = AAH

$102 = 1H

$103 = 0H

$104 = 3H

$105 = 0H

$106 = 0H

$107 = 1H

$108 = 3H

$10 = INITCOM(0, 0, 1, 0, 0, 6, 0)

这个是画面cycle宏:

SELECTCOM(0)

$12 = PUTCHARS($100, 9, 500)

delay 500

$14 = GETCHARS($200, 40, 500)

delay 10000

在画面设置监控$10 $12 $14,$10返回1,说明初始化成功,$12在1和0之间周期变化,说明也是可以执行的,但是$14就不会返回1,一直是0。问题出在哪里百思不得其解啊。



公孙小天

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 263回
  • 年度积分:0
  • 历史总积分:1330
  • 注册:2005年12月27日
发表于:2014-07-18 09:51:21
7楼

putchar和getchar的资料长度指的是BYTE数,所以你第一条putchar指令实际只送出了4个半WORD,把$100-$108的数据规整合并下再试吧

WUFANG2004

  • 精华:0帖
  • 求助:2帖
  • 帖子:54帖 | 119回
  • 年度积分:0
  • 历史总积分:434
  • 注册:2005年11月21日
发表于:2014-07-18 13:30:21
8楼

我只要发送$100到$108共9个BYTE,也就是4个半word,还需要怎么整合?谢谢

公孙小天

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 263回
  • 年度积分:0
  • 历史总积分:1330
  • 注册:2005年12月27日
发表于:2014-07-18 14:08:05
9楼

$100是一个WORD,含高低两个BYTE,$100=55H实际上是指低字节55H,高字节00H,按照你的PUTCHARS指令,最后发出的数据内容是55 00 AA 00 01 00 00 00 03。应该在初始赋值时这样写:$100=AA55H ,$101=0001H......依次类推

WUFANG2004

  • 精华:0帖
  • 求助:2帖
  • 帖子:54帖 | 119回
  • 年度积分:0
  • 历史总积分:434
  • 注册:2005年11月21日
发表于:2014-09-06 11:35:54
10楼

回复内容:

对: 公孙小天  $100是一个WORD,含高低两个BYTE,$100=... 内容的回复!


 谢谢!这个搞清楚了。

另外一个PLC的问题请教一下,就是如果用台达的RS指令读取控制器的话是否可行?数据是否也要像人机一样处理吗?头码、尾码是否一定要有呢?RS指令的头码长度有没有要求,比如我前面的55AA作为头码的话要占用两个BYTE,RS指令里面的数据长度是否包含头码,看指令手册里面接收长度好像是包含头尾码的。谢谢!

WUFANG2004

  • 精华:0帖
  • 求助:2帖
  • 帖子:54帖 | 119回
  • 年度积分:0
  • 历史总积分:434
  • 注册:2005年11月21日
发表于:2014-09-09 08:45:41
11楼



帮忙看下程序有没有问题。谢谢!

公孙小天

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 263回
  • 年度积分:0
  • 历史总积分:1330
  • 注册:2005年12月27日
发表于:2014-09-09 12:37:23
12楼

回复内容:

对: WUFANG2004 帮忙看下程序有没有问题。谢谢! 内容的回复!


RS指令的处理原则和触摸屏是一样的,所谓自由协议通讯就是指指令不去管你的协议,只负责将你要发的代码发出去或收上来,必须由你自己事先规划好要发的内容以及要发的长度,所以头码也是包含在长度里面的。

WUFANG2004

  • 精华:0帖
  • 求助:2帖
  • 帖子:54帖 | 119回
  • 年度积分:0
  • 历史总积分:434
  • 注册:2005年11月21日
发表于:2014-09-09 13:58:44
13楼

发送长度也是按BYTE计算的吗?跟RTU的8位、16位模式没有关系是吗?


公孙小天

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 263回
  • 年度积分:0
  • 历史总积分:1330
  • 注册:2005年12月27日
发表于:2014-09-09 14:08:54
14楼

长度是按WORD计算的,8位是指每个WORD只取下8位,16位则是高低8位都用到

liujian5118-PLC技术军团

  • 精华:2帖
  • 求助:8帖
  • 帖子:31帖 | 3109回
  • 年度积分:199
  • 历史总积分:19924
  • 注册:2009年3月25日
发表于:2014-09-09 14:34:35
15楼

SELECTCOM(0)
$8 = INITCOM(0, 0, 1, 0, 0, 6, 0)
FILLASC($3000,"?D")
$3001 = 0AH
$10 = PUTCHARS($3000,3,200)
$11 = GETCHARS($1500,3,200)

RTU的屏好像不好做,ASCII的可以做的

WUFANG2004

  • 精华:0帖
  • 求助:2帖
  • 帖子:54帖 | 119回
  • 年度积分:0
  • 历史总积分:434
  • 注册:2005年11月21日
发表于:2014-09-09 22:38:08
16楼

明白了,谢谢两位指点!


guruchina----骑士军团

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 17回
  • 年度积分:0
  • 历史总积分:376
  • 注册:2012年4月14日
发表于:2016-03-31 13:10:01
17楼

你好,问下最后一个BYTE要怎么处理?

回复内容:

对: 公孙小天 $100是一个WORD,含高低两个BYTE,$100=... 内容的回复!

 

qinjian1991

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 24回
  • 年度积分:105
  • 历史总积分:519
  • 注册:2017年4月11日
发表于:2017-02-28 17:50:27
18楼

22233333333333333333333

liyalong61

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 4回
  • 年度积分:0
  • 历史总积分:4
  • 注册:2012年11月08日
发表于:2018-08-31 18:12:29
19楼

回复内容:

对:公孙小天 能不能把两段宏指令贴上来看一下?     内容的回复:

$14 = GETCHARS($200, 40, 500)

请教下括号内的40是怎么算出来的百思不得其解呀!感谢

liyalong61

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 4回
  • 年度积分:0
  • 历史总积分:4
  • 注册:2012年11月08日
发表于:2018-08-31 18:14:52
20楼

回复内容:

对:公孙小天 putchar和getchar的资料长度指的是BYTE数,所以你第一条putchar指令实际只送出了4个半WORD,把$100-$108的数据规整合并下再试吧     内容的回复:

$14 = GETCHARS($200, 40, 500)

请问括号内的40是怎么算出来的?麻烦大神指点


热门招聘
相关主题

官方公众号

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