本文主要是讲解自由口如何使用,先讲解发送指令,再讲解接收指令,最后讲解串口接收发送的程序如何安排,牵扯到的基础概念(像波特率,奇偶校验位等)不做讲解,请自行查找相关资料。
串口有状态位,没有接受或者发送数据时,位状态为1。
串口的基本参数设置存储区。
XMT指令利用数据缓冲区指定要发送的字符,用于向指定通信口以字节为单位发送一串数据字符,一次最多发送255个字节。XMT指令完成后,会产生一个中断事件(Port0为中断事件9,Port1为中断事件26)。
XMT指令缓冲区如下。
下面实现每隔0.5秒发送一次数据,数据实现每次自动加1。
主程序
串口调试结果
RCV指令可以从S7-200 CPU的通信口接收一个或多个数据字节,接收到的数据字节将被保存在接收数据缓冲区内。
RCV指令完成后,会产生一个中断事件(Port0为中断事件23,Port1为中断事件24)。特殊寄存器 SMB86和 SMB186则分别提供Port0和Port1的接收信息状态字节。
RCV指令的缓冲区格式如下表所示:
与发送相关的存储区
数据接收指令启动后,系统会一直启动对串口的监视,有数据传入后,并满足结束条件,RCV才能结束,并触发相应的事件。
实现检测结束字符来实现数据接收功能。
中断程序
(注:程序已经过测试)
实现检测接收时间来实现数据接收功能。
中断程序
(注:程序已经过测试)
设备要么实现发送信息然后等待接收反馈,或者准备接收信息发送反馈,我们这里实现后者。
中断程序0
中断程序1
测试结果