仪表和PC及PLC之间的通讯

上一个提问的问题一直没有解决,就是一台仪表与PLC之间的通讯,也请过有多年经验的师傅到现场,也没能解决,PLC始终读取不到仪表发送的数据。我想既然PC可以接收到仪表发送的数据,能不能将PC接收到的数据再发送给PLC,这个过程要用到什么软件,怎么才能实现,PLC是200smart,st30,有COM1通讯扩展信号板,请各位大神帮帮忙。

图片说明:

仪表和PC及PLC之间的通讯   

钻石用户推荐最佳答案

应该都可以的。
PC接收到的数据再发送给PLC也可以。你的PC安装组态软件就很简单。如果没有的话就要搞个程序,不熟悉的话也挺累,还不如PLC直接读。有类似通信例程可以参考的。用通信中断事件
 类似程序给你参考
Network 1 // 初始化通信,9600,8.,N,1
LD     SM0.1               //首次扫描
MOVB   2#10001, SMB30     //设置PLC 通信口 
MOVB   2#11100100, SMB87  //设置接收和结束条件(使能接收、使用起始和结束字符)
MOVB   16#3D, SMB88      //定义起始字符“#”
MOVB   16#0D, SMB89      //定义结束字符(回车=16#0D)
MOVW   5, SMW92         //设置定时器超时数值
MOVB   15, SMB94         //信息接收最大字符数
ATCH   INT1, 9            // 连接9号中断(发送完成)到中断子层序INT1
ATCH   INT0, 23           // 连接23号中断(接收完成)到中断子层序INT0
ENI                       //使能中断程序
(2)定时轮询仪表参数:
Network 2 // 定时轮询仪表参数
LD     SM0.5                       //每秒钟执行
EU                                 //边沿触发
A      SM4.5                       //当通信口处于空闲状态
MOVB   1, VB1555                   //进入发送步骤
(3)...........:
Network 3  //  转换仪表地址为ASCII码
LD     SM0.0        //始终执行
BTI    VB10, LW5    //字节转换整数
+I     16#30, LW5    //转换成ASCII码
ITB    LW5, VB1503  //存入发送缓存区

Network 4           //发送步骤                
LDB=   VB1555, 1   //发送步骤时          
EU                                       
R       SM87.7, 1    //发送中取消接收模式  
RCV    VB1560, 0   //发送中取消接收模式  
XMT    VB1500, 0   //端口0发送VB1500的数据报文        
Network 5            //通信口空闲则接收
LD     SM4.5        //通信口空闲标志
RCV    VB1560,  0   //接收数据到VB1560开始的接收缓存区

Network 6            //接收完成
LD     SM0.5        //每秒执行
ED
AB>=   VB1555, 1          //接收步骤时
STR    VB1580, 2, VD1520   //转换接收的字符串转换成实数
MOVR   VD1520, VD20      //转换后存入测量值存储区
MOVB   0, VB1555          //完成一个周期的通信工作复位状态字节
发送完成中断程序INT1
Network 1 // 发送完成,开始使能接收程序
LD     SM0.0         //始终执行
S      SM87.7, 1      //发送完成使能接收程序
RCV    VB1560, 0     //接收

Network 2            //接收设置进入接收步骤
LDB=   VB1555, 1     //如果在发送步骤则
MOVB   2, VB1555    //进入接收步骤
(5)接收完成中断程序INT0
Network 1      //接收完成进入接收后处理步骤
LD     SM0.0         //始终执行
MOVB   3, VB1555    //进入接收后处理程序

Network 2       //接收完成将接收到数据存入缓存区
LD     SM0.0              //始终执行
SCPY   VB1560, VB1580    //接收后数据复制到字符处理区

提问者对于答案的评价:

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc279793.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年10月30日 下午6:16
下一篇 2020年10月30日 下午6:16

相关推荐

发表回复

登录后才能评论