台达PLC 通讯应用范例之二(RS指令) 点击:38942 | 回复:133



yangyfeng

    
  • 精华:4帖
  • 求助:0帖
  • 帖子:37帖 | 764回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2006-03-23 14:17:00
楼主
对于不是标准MODBUS协议的设备,台达PLC提供RS指令实现通讯控制,但前提是被控设备的通讯协议是公开的,且要有RS485通讯口。下面是对采用USS通讯协议的SIEMENS MM420变频器的通讯控制范例。



yangyfeng

  • 精华:4帖
  • 求助:0帖
  • 帖子:37帖 | 764回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2006-04-07 12:02:00
21楼
通过通讯控制变频器,报文有3种格式:1。仅使用PZD区 2。仅使用PKW区(P2012=0,PZD长度设为0)。 3。PZD区和PKW区都使用(P2012=2,PZD长度设为2)报文结构决定了不能同时修改两个参数,所以只能在PLC程序中设法使用轮询的方式去发送2笔PKW区的数据。 Q: 02 0A 00 3460 0000 42200000 1E  是不是就可以了呢 A: BCC检验码错误,应是02 0A 00 3460 0000 42200000 3E   ,用RS指令将该数据发出去即可,注意要将P2012设为0,即仅用PKW区。 Q:那2,1等任务标志是什么意思呢? A: 1是读参数,2是写1个字的参数,3是写多个字的参数(不是说一次写多个参数,而是指这个参数本身是由2个WORD表示的)。

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2006-04-07 16:36:00
22楼
感谢楼主,太棒了.
我看了两段你的程序,用加1轮转,
想问单PLC控多变频器的思路?(例:台达RS驱动三台420,
          写一次频率,读一次电流)


yqydcs

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 44回
  • 年度积分:0
  • 历史总积分:51
  • 注册:2006年3月23日
发表于:2006-04-07 20:37:00
23楼
    要加我的群的来呀我们一起学习plc和dcs我的qq群号是
19995926 

xiao a

  • 精华:1帖
  • 求助:0帖
  • 帖子:102帖 | 555回
  • 年度积分:0
  • 历史总积分:958
  • 注册:2005年12月10日
发表于:2006-04-08 15:53:00
24楼
to yangyafen:我还想问一下,1.尾码(将前面所有字节异或的结果)是人为计算出在输入的,还是用指令计算出的?台达编程软件里有没有求字节异或的指令呢?2.如果我想将要给西门子变频器的频率先放入一寄存器里然后再将该寄存器里的数值传给变频器,那么发送报文怎么写呢?[color=#808000]麻烦了[/color]

yangyfeng

  • 精华:4帖
  • 求助:0帖
  • 帖子:37帖 | 764回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2006-04-10 08:52:00
25楼
下面引用由zlc-zlc在 2006-4-7 16:36:00 发表的内容:
  感谢楼主,太棒了.<br>我看了两段你的程序,用加1轮转,<br>想问单PLC控多变频器的思路?(例:台达RS驱动三…
--------------------------------------------------------------------------------------------
这种情况为多笔通讯同时存在的情况,RS485是半双工,总线上同一时间只有一个点处于发送数据状态。
你说的情况需要用到6个RS指令来实现通讯读写,但务必需注意6个RS指令不能同时执行,需要用通讯标志(台达PLC定义了包括完成,逾时,错误)作为每次RS指令执行的条件。其思路请参考之前的一篇文章:http://bbs.gongkong.com/detail_old.asp?id=319654

yangyfeng

  • 精华:4帖
  • 求助:0帖
  • 帖子:37帖 | 764回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2006-04-10 08:54:00
26楼
下面引用由zlc-zlc在 2006-4-7 16:36:00 发表的内容:
  感谢楼主,太棒了.<br>我看了两段你的程序,用加1轮转,<br>想问单PLC控多变频器的思路?(例:台达RS驱动三…
--------------------------------------------------------------------------------------------
这种情况为多笔通讯同时存在的情况,RS485是半双工,总线上同一时间只有一个点处于发送数据状态。
你说的情况需要用到6个RS指令来实现通讯读写,但务必需注意6个RS指令不能同时执行,需要用通讯标志(台达PLC定义了包括完成,逾时,错误)作为每次RS指令执行的条件。其思路请参考之前的一篇文章:http://bbs.gongkong.com/detail_old.asp?id=319654

yangyfeng

  • 精华:4帖
  • 求助:0帖
  • 帖子:37帖 | 764回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2006-04-10 09:08:00
27楼
下面引用由yi yi在 2006-4-8 15:53:00 发表的内容:
  to&nbsp;yangyafen:我还想问一下,1.尾码(将前面所有字节异或的结果)是人为计算出在输入的,还是用指令计算出…
--------------------------------------------------------------------------------------------
我是人为计算的(Windows附件里面的计算器有这个计算功能)。
既然没有字节异或,那就用字异或吧,指令是(API28 WXOR),把需要异或的部分放在低字节即可,高字节填0。不过在改频率时这种情况下,报文前面部分 02 06 00 047F内容是固定的,其BCC码算出结果固定为7F,所以,只需将7F与后面的频率(一个WORD)的按字节异或即可,不需从报文开头就用指令WXOR来计算。

木子化十

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 30回
  • 年度积分:0
  • 历史总积分:64
  • 注册:2005年5月19日
发表于:2006-04-11 13:58:00
28楼
不错

xiao a

  • 精华:1帖
  • 求助:0帖
  • 帖子:102帖 | 555回
  • 年度积分:0
  • 历史总积分:958
  • 注册:2005年12月10日
发表于:2006-04-12 10:47:00
29楼
谢谢yangyafeng:不过我还想问问因为我更换产品时就要更改频率,所以我想先将输入频率数值先放一寄存器如D200里然后再将D200里频率写给变频器,只要D200里的频率变了,变频器输出的频率就跟着变,那么台达PLC带西门子的变频器可以实现吗?发送报文里写入频率处可以用D200替换吗?下面这么写对吗?
麻烦你了!

yangyfeng

  • 精华:4帖
  • 求助:0帖
  • 帖子:37帖 | 764回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2006-04-12 16:04:00
30楼
我看没什么问题。

xiao a

  • 精华:1帖
  • 求助:0帖
  • 帖子:102帖 | 555回
  • 年度积分:0
  • 历史总积分:958
  • 注册:2005年12月10日
发表于:2006-04-14 15:01:00
31楼
我试了可是不好使,变频器不动,好象根本没通讯上,你给的例子中频率值是占用D102上和D103下,可是如果用D200直接写入频率,无法将D200上写入D102上,D200下写入D103下,我想可能就是D200写入的地方不对使字节数也不对应6个字节了,BCC尾码的计算也出错了,所以不通讯。可是如何做能达到变频器的频率随D200里的数工作呢?

xiao a

  • 精华:1帖
  • 求助:0帖
  • 帖子:102帖 | 555回
  • 年度积分:0
  • 历史总积分:958
  • 注册:2005年12月10日
发表于:2006-04-15 09:17:00
32楼
TO yangyafeng:你给的例子中是以固定频率40HZ运行的,如果我想把频率先写入P1082里,每次开机是以变频器P1082里的频率运行,那么发送报文应该如何写?

廖乘风

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 43回
  • 年度积分:0
  • 历史总积分:57
  • 注册:2006年2月23日
发表于:2006-04-16 21:32:00
33楼
谢谢!谢谢!

yangyfeng

  • 精华:4帖
  • 求助:0帖
  • 帖子:37帖 | 764回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2006-04-17 13:00:00
34楼
范例是这样,但这样改一下即可,对P1082 .用指令RS D100 K12 D120 K12  将下面数据发送出去即可:
发送报文:02 0A 00 3460 0000 42200000 3E   
注意要将P2012设为0,即仅用PKW区
 

啸傲乾坤

  • 精华:0帖
  • 求助:0帖
  • 帖子:34帖 | 638回
  • 年度积分:0
  • 历史总积分:1394
  • 注册:2006年4月18日
发表于:2006-04-18 10:27:00
35楼
请教;台达SX系列PLC能实现此功能吗?
设定一个时间段,如一年,等时间到系统自动停止工作,重新上电也不恢复;还有,能否实现在一天中对锅炉炉温实行时间段控制,既时间段不同,温度也不同,可以吗???
请指教~~~~~
要可以的话,能否给发份相关程序,谢谢~~~
suntao1682003@163.com

张羽

  • 精华:1帖
  • 求助:0帖
  • 帖子:79帖 | 1053回
  • 年度积分:0
  • 历史总积分:1982
  • 注册:2006年3月25日
发表于:2006-04-18 19:32:00
36楼

yangyfeng

  • 精华:4帖
  • 求助:0帖
  • 帖子:37帖 | 764回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2006-04-18 22:25:00
37楼
SA机种支持.先将万年历读出来,再用比较指令.

xiao a

  • 精华:1帖
  • 求助:0帖
  • 帖子:102帖 | 555回
  • 年度积分:0
  • 历史总积分:958
  • 注册:2005年12月10日
发表于:2006-04-19 08:36:00
38楼
TO yangyafeng:很不好意思,还得问你,我在停机时修改的P1082的值,数值也传进去了,那么开机时就不能设定以40HZ运行了,我想那么开机时是不是就应该只给变频器一个启动命令,只要一启动变频器就会以P1082里的数运行呢?那么只给变频器启动不给变频器频率的开机报文是不是应该如下写呢?不对的话应该如何写呢?
02 04 00 04 7F 7D(尾码)
MOV H402 D100
MOV H400 D101 
MOV H7F7D D102
LD M0 RS D100 K6 D120 K6

xiao a

  • 精华:1帖
  • 求助:0帖
  • 帖子:102帖 | 555回
  • 年度积分:0
  • 历史总积分:958
  • 注册:2005年12月10日
发表于:2006-04-19 08:36:00
39楼
TO yangyafeng:很不好意思,还得问你,我在停机时修改的P1082的值,数值也传进去了,那么开机时就不能设定以40HZ运行了,我想那么开机时是不是就应该只给变频器一个启动命令,只要一启动变频器就会以P1082里的数运行呢?那么只给变频器启动不给变频器频率的开机报文是不是应该如下写呢?不对的话应该如何写呢?
02 04 00 04 7F 7D(尾码)
MOV H402 D100
MOV H400 D101 
MOV H7F7D D102
LD M0 RS D100 K6 D120 K6

yangyfeng

  • 精华:4帖
  • 求助:0帖
  • 帖子:37帖 | 764回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2006-04-19 17:40:00
40楼
不对,报文格式是固定的。控制字(047F)后面定义为频率,若不写频率,变频器将不能识别此报文,要只启动没频率的话,在频率位置处填入0000即可。



热门招聘
相关主题

官方公众号

智造工程师