研华工控机与西门子S7-200型号PLC通讯设计(示范例程)
发布时间:04月11日
详细说明
*近,几个客户一直在咨询西门子S7-200型号PLC与工控机通讯的问题,南京研维信息技术解决方案部门针对这方面需求,特意以专题形式予以解答,本文就以研华工控机为典型工控机类型进行介绍,下位机PLC选择大家比较常见的西门子S7-200型号产品,我们选择的是微软的Visual C++作为程序开发语言,具体通讯协议架构如下:
首先,整个示范程序的基本流程架构思路如下:用上位机作主机,向PLC发送读/写指令,PLC接收到信息后判断传输正确与否,若错误则反馈BCC码错误信息给上位机,若为读指令,在本系统中则读取实时压力值,若为写指令,则向PLC的M寄存器区写入数据,从而控制现场设备的运行。同时上位机向PLC询问写入数据库标志位状态,若为1则将压力值写入后台数据库。系统中计算机通过COM口发送指令到PLC的PORTO(或PORT1)口,PLC通过RCV接收指令,然后对指令进行译码,译码后调用相应的读/写子程序实现指令要求的操作,并返回指令执行的状态信息。
上位机串口设置程序如下:
BOOL MultiDoc::ConfigConnection()
{DCB dcb;
if(!GetCommState(m_hCom,&dcb))
return FALSE;//不能获取当前配置作错误处理
dcb.fBinary=TRUE;
dcb.BaudRate=9600;//数据传输速率
dcb.ByteSize=8;//每字节的位数为8
dcb.fParity=FAISE;//不启用奇偶校验
dcb.StopBits=ONESTOPBIT;//1个停止位
return SetCommState(m_hCom,&dcb);
//设置串行设备控制参数}
更多信息请访问南京研维信息网站。