雨天神
级别: 探索解密
精华主题: 0
发帖数量: 35 个
工控威望: 159 点
下载积分: 392 分
在线时间: 56(小时)
注册时间: 2011-11-29
最后登录: 2024-12-03
查看雨天神的 主题 / 回贴
楼主  发表于: 2013-07-01 22:27
大家好,小弟最近在做一工程,客户那边要求485方式通信,所以我选用了QJ71C24N 这个模块。第一次用这个模块,不会用,所以在此向大家请教一下如何做通信程序?
1.我这边是从机,客户那边发命令到我的PLC中,比如客户那边发开机的命令,如果我这边的机器没有问题,就返回一个数据,如果我的设备上有故障,就返回故障信息。
2.因为我这边是从机,是不是只能是客户那边有发数据,我这边才能返回数据?


我说一下 我的思路:
1.下行通信帧:帧头 站号 命令 数据 校验 帧尾
2.上行通信帧:帧头 站号 命令 数据 校验 帧尾

当我用INPUT 指令接数到下行的数据时,是不是先判断站号,然后再把接收到的数据求出校验,如果校验码与发下来的一样,那么我就把相应的数据返回给上位机,不
知我的思路对吗?


因为我这边是从机,所以我要写一份通信协议,让客户的上位机根据他的需求来写/读操作,如写开机、关机 信号,读报警信息。
有哪位大哥大姐做过相应的程序呀,能帮帮忙吗,谢谢了!!
wangk0
人都有点过去~
级别: 工控侠客
精华主题: 0
发帖数量: 82 个
工控威望: 2155 点
下载积分: 3866 分
在线时间: 64(小时)
注册时间: 2012-05-17
最后登录: 2024-04-11
查看wangk0的 主题 / 回贴
1楼  发表于: 2013-07-02 02:12
虽然没搞过,但我觉得用中断写会方便很多。接收到信息后中断,把接收到的信息存到D里,通过比较D来判断执行哪一路程序。
雨天神
级别: 探索解密
精华主题: 0
发帖数量: 35 个
工控威望: 159 点
下载积分: 392 分
在线时间: 56(小时)
注册时间: 2011-11-29
最后登录: 2024-12-03
查看雨天神的 主题 / 回贴
2楼  发表于: 2013-07-02 08:29
我也想用中断,但是QJ71C24N 这个模块,有接收读取请求的信号,当这个信号为ON时,就可以接收上位机发来的数据,转移动D区里,然后就先判断站号,如果是对的,再判断命
令,如果是对的,然后再算校验码,校验码相等时,就从D里提取数据,同时返回相应的数据给上位机。

不知我的想法可行吗,因为以前我看到过有些单片机通信程序是这样做的,而在PLC里,写从站的协议是否也可以这样做,或者有更好的方法?
雨天神
级别: 探索解密
精华主题: 0
发帖数量: 35 个
工控威望: 159 点
下载积分: 392 分
在线时间: 56(小时)
注册时间: 2011-11-29
最后登录: 2024-12-03
查看雨天神的 主题 / 回贴
3楼  发表于: 2013-07-02 22:33
没有回复,自己顶
1421219181
级别: 略有小成
精华主题: 0
发帖数量: 16 个
工控威望: 273 点
下载积分: 2653 分
在线时间: 54(小时)
注册时间: 2013-07-15
最后登录: 2017-09-20
查看1421219181的 主题 / 回贴
4楼  发表于: 2013-07-29 09:08
等高手回复
hucaishu
级别: 略有小成
精华主题: 0
发帖数量: 113 个
工控威望: 261 点
下载积分: 25071 分
在线时间: 104(小时)
注册时间: 2013-07-18
最后登录: 2024-11-15
查看hucaishu的 主题 / 回贴
5楼  发表于: 2013-08-28 11:52
向高手学习了