您现在所在的是:

PLC论坛

回帖:35个,阅读:37085 [上一页] [1] [2] [3] [4] [下一页]
5631
心情 版主
文章数:1633
年度积分:50
历史总积分:5631
注册时间:2001/6/6
发站内信
09工控人生征文
发表于:2004/11/3 16:17:00
#0楼
OMRON PLC与其它仪表或设备通讯(无论是OMRON仪表或第三方仪表),要用带协议宏的串口通讯模块或模板,根据仪表或设备的通讯协议作相应的程序,建立相应的连通通道,就可对仪表进行读和写。
笔者曾为客户作过PLC与第三方温度仪表的通讯,现呈给各位,请指正。
所用PLC为OMRON C200HE-CPU42,配通讯模块C200HW-COM06,使用其A口(RS485)与温度表TTM-120通讯。

1、所用温度仪表“神王”TTM-120通讯协议:
EIA标准:RS485
通讯:站 1~31
传输:半双工
通讯码:ASCll  7位(BCC除外)  8位(MSD位=0)
接口方式:2线制
通讯速度:1200,2400,4800,9600
通讯距离:500Mmax
字符:启动位:1位
停止位:1/2位
数据:7/8位
校验:无/奇/偶
BCC校验:预先/不选择
通讯地址:1~99
通讯格式:
 读数据:STX(02H 起始码)+地址(2位)+R+标识码(3位)+ETX(03H 结束码)
 仪表返回:STX(02H 起始码)+地址(2位)+ACK(06H 响应)+标识码(3位)+数据(5位)+ETX(03H 结束码)
 写数据:STX(02H 起始码)+地址(2位)+W+标识码(3位)+ 数据(5位)+ETX(03H 结束码)
 仪表返回:STX(02H 起始码)+地址(2位)+ACK(06H 响应)+ETX(03H 结束码)
 错误信息响应:STX(02H 起始码)+地址(2位)+NAK(15H 错误响应)+错误格式(1位)+ETX(03H 结束码)

2、用协议宏软件CX-PROTOCOL作协议宏程序
可用用CX-PROTOCOL中现有的系统标准协议COPY到新建的程序中,再作修改,当然也可重新编制。
在新建的程序的DEVICES中选择所用的PLC型号,
通讯口A参数设置方式为:PROTOCOL MACRO;并以仪表的通讯格式设置波特率等参数。
协议宏程序中有若干内容:主要是发送信息列表;接受信息列表;这两个表是协议宏的基本程序。再有就是具体的发送形式和接受形式,其它功能的读写形式,仪表的其它功能的读写形式。
我作了四种,根据仪表协议中的各个格式,编制宏程序,如下:
发送信息列表:
①写数据:SD(01)_1
<h>:STX
<t>:ETX  
数据形式:变量格式($(R(2),5))
地址格式:ASCll变量格式($(R(1),2)
"W":写请求
标识符(仪表功能参数:写入设定值)“空格SV”
数据格式:<h>+<a>+"W"+" SV"+($(R(2),5))+<t>
②  读请求:SD(02)_1
地址格式:ASCll变量格式($(R(1),2)
"R":读请求
标识符(仪表功能参数:读入过程值)“PV1”
数据格式:<h>+<a>+"R"+"PV1"+<t>
接受信息列表:
①接受响应:RV(01)_1
"ACK":响应接受
数据格式:<h>+<a>+"ACK"+<t>
②接受数据:RV(02)_1
数据形式:变量格式(&(W(1),*)) 存入PLC指定的接收数据
数据格式:<h>+(&(W(1),*))+<t>
写入命令设置:
编号:050
命令:发送&接受
发送命令:SD(01)_1
接收命令:RV(01)_1
读入命令设置:
编号:051
命令:发送&接受
发送命令:SD(02)_1
接收命令:RV(02)_1
编制设置完成,下装到PLC中。
3、用CX-PROGRAMMER作通讯程序
程序用协议宏指令PMCR完成与仪表的通讯:
三个操作数:一:控制字:端口+协议宏序列号
二:发送数据首址 占2/3个字,首字是指令字数;下一字为仪表地址;
对于写命令要多一个字为设定值
三:接收数据首址 占4个字,首字是命令字数;下两字是接收的5位数据。
对于写命令该操作数为虚设字,没有实际意义
 读指令:PMCR #1051 端口=1 序列号051(读出)
               DM0000 DM0000=#0002   DM0001=#0001
               DM0030     DM0030=#0004   DM0031~DM0033=数据
 写指令:PMCR #1050       端口=1 序列号050(写入)
               DM0020     DM0020=#0003   DM0021=#0001 DM0022=设置值
               DM0040(虚设)
 协议宏执行标志:端口一(A):α机为IR289.08  CQM1H为IR207.08
                 端口二(B):α机为IR289.12  CQM1H为IR207.12
当这变量=0时,方可执行PMCR命令
每个端口只能执行一个通信序列,可以不同的时间段产生PMCR指令的执行脉冲。
4、对于若干个仪表,每表设置不同的站号,就可由程序分别对其作读写操作,只有地址相符的仪表才能响应。

3160
xiouxian
文章数:1236
年度积分:50
历史总积分:3160
注册时间:2002/12/22
发站内信
发表于:2004/11/3 20:07:00
#1楼
好久没看见心情大姐了,悟桐山一别有几个月了,近来可好?
         快乐才是重要的!
5631
心情 版主
文章数:1633
年度积分:50
历史总积分:5631
注册时间:2001/6/6
发站内信
09工控人生征文
发表于:2004/11/10 11:05:00
#2楼
没人对这贴感兴趣?呵呵
我只是抛一块砖而已。
有不少朋友问我怎么作VB与PLC的通讯、PLC怎么与变频器通讯?电脑怎么通过通讯方式采集仪表信息?等等
其实通讯都是类似的,要作通讯,首先要知道被采仪表、设备的通讯协议:通讯格式、通讯读取命令格式等;
二就是用软件二次开发读写程序,就象上面用PROTOCOL和CXP所作的程序,这里通讯口的编程,读写指令的编程,数据格式的转换等等;
最后调试

2603
迷路者
文章数:680
年度积分:50
历史总积分:2603
注册时间:2004/2/6
发站内信
发表于:2004/11/10 13:19:00
#3楼
多谢心情姐姐的指教,偶好好学习,再多谢!
方即是圆、圆即是方,方圆原人为定义,又何必一定要分方圆。。。。。。
2750
tigerwu
文章数:833
年度积分:50
历史总积分:2750
注册时间:2003/10/20
发站内信
发表于:2004/11/10 14:10:00
#4楼
受教了.谢谢
自由自在     自然自我
1000
qdwgt
文章数:20
年度积分:50
历史总积分:1000
注册时间:2004/10/12
发站内信
发表于:2005/3/10 9:43:00
#5楼
正好用得着,谢谢大姐了
9062
吴辉
文章数:2351
年度积分:50
历史总积分:9062
注册时间:2002/1/15
发站内信
发表于:2005/3/10 22:00:00
#6楼
这年头的人都想吃现成贝,张口闭口就是老大给个程序吧!
9062
吴辉
文章数:2351
年度积分:50
历史总积分:9062
注册时间:2002/1/15
发站内信
发表于:2005/3/10 22:01:00
#7楼
好帖!
1073
zheng423
文章数:92
年度积分:50
历史总积分:1073
注册时间:2005/4/13
发站内信
发表于:2005/5/6 23:19:00
#8楼
好贴,顶
1017
影狐
文章数:16
年度积分:50
历史总积分:1017
注册时间:2005/3/21
发站内信
发表于:2005/6/6 23:20:00
#9楼
其实给个例子我们这些新手看看未必不好,起码是个捷径,能起到事半功倍的效果。这个不叫吃现成的,因为还有很多东西要更改,还要自己进一步调试。只是对更快进入共产主义有促进作用。我是个新手,希望得到大家的指点。谢谢!

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

109.2007