当反映CPU工作方式的特殊寄存器位SM0.7为1时, PLC的CPU处于RUN模式时,才可能用自由口通信。通过SMB30或SMB130(SMB30和SMB130分别设置端口0、1)的协议选择位置1,将通信端口置为自由口模式。发送指令XMT启动自由口模式下数据缓冲区中的数据发送,它可以发变发送1—255个字符,如果有中断程序连接到发送结束事件上,在发送完成后,端口0会产生中断事件9,也可以监视发送完成状态位SM4.5的变化,接收指令RCV可以初始化接收信息服务,通过指定的端口接受信息并存储在数据缓冲区内,在接收完成最后一个字符时,端口0产生中断23。S7-200CPU的通信口输出RS-485电平。
4 PLC与单片机的串行通信设计
4.1 通信协议设计
在单片机与PLC的通信中,主要是利用单片机向PLC发送命令和接受返回数据,实现读取数据或修改PLC程序中控制参数。通信协议采用命令/响应模式,一次通信发送的一组数据作桢,每桢由最多30个字符组成[3]。
单片机发送的数据流结构的格式为起始符,指令码,元件首址,字节数,数据块,BBC校验码和结束符。
● 起始码:表示单片机与PLC开始发送数据,是数据流第一个字符,告诉PLC开始进行通信了,可以用00H表示
● 命令码:表示单片机对PLC的各种操作:
40H:读取目标元件I、Q、V、M、SM、L、T、C等的数据或状态;
41H:修改目标元件I、Q、V、M、SM、L、T、C等的数据或状态;
42H:强制目标单元为ON;
上一篇:阿尔法变频器与台达PLC通信