西门子S7200自由口通讯

本文主要是讲解自由口如何使用,先讲解发送指令,再讲解接收指令,最后讲解串口接收发送的程序如何安排,牵扯到的基础概念(像波特率,奇偶校验位等)不做讲解,请自行查找相关资料。

 
 

串口有状态位,没有接受或者发送数据时,位状态为1


串口的基本参数设置存储区。


XMT指令利用数据缓冲区指定要发送的字符,用于向指定通信口以字节为单位发送一串数据字符,一次最多发送255个字节。XMT指令完成后,会产生一个中断事件(Port0为中断事件9Port1为中断事件26)。

XMT指令缓冲区如下。


下面实现每隔0.5秒发送一次数据,数据实现每次自动加1

主程序



串口调试结果


RCV指令可以从S7-200 CPU的通信口接收一个或多个数据字节,接收到的数据字节将被保存在接收数据缓冲区内。

RCV指令完成后,会产生一个中断事件(Port0为中断事件23Port1为中断事件24)。特殊寄存器 SMB86 SMB186则分别提供Port0Port1的接收信息状态字节。

RCV指令的缓冲区格式如下表所示:


与发送相关的存储区



数据接收指令启动后,系统会一直启动对串口的监视,有数据传入后,并满足结束条件,RCV才能结束,并触发相应的事件。

实现检测结束字符来实现数据接收功能。



中断程序


(注:程序已经过测试)

实现检测接收时间来实现数据接收功能。



中断程序


(注:程序已经过测试)

设备要么实现发送信息然后等待接收反馈,或者准备接收信息发送反馈,我们这里实现后者。




中断程序0


中断程序1


测试结果

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注