西门子S7-200可编程控制器和微机通信之设计和实现--飞剪系统pdf,西门子S7-200可编程控制器和微机通信之设计和实现--飞剪系统这种方式不需要增加投资,具有较好的灵活性,适合小规模控制系统。自由口通信在物理接口上要求双方都使用接口,波特率最高为虽然机的标准串口为,但西门子公司提供的电缆带有电平转换器,因此在不增加任何硬件的情况下,可以很方便地将和机互联自由口模式的初始化的自由口模式通信编程首先是对串口初始化。对的初始化是通过对特殊存储字节(端口)写入通信控制字,来设置通信的波特率、奇偶校验、停止位和数据位数。显然,这些设定必须与上位机设定值相一致。另外还可选择通信模式和主从站模式,各具体存储位内容可参考系统手册。自由口模式下收发数据初始化自由端口通信模式后,就可以进行数据的收发。()发送数据指令格式:。可以用指令发送数据,指令激活发送缓冲区(从开始的变量存储区)中的数据。数据缓冲区的第一个数据指明了要发送的字节数,指明了用于发送的端口,缓冲区最多可以有个字符。在发完缓冲区的最后一个字符时,会产生一个中断(对端口为中断事件)。本例的缓冲区的格式如表其中,状态字节表示是否正确接收了上位机所传数据上传数据为传给的数据,需将字节的进制数编码为字节的码,所以字节数为为上传数据的异或和,同样将进制数编码为码结束字符的值为綵冲区内容字节数发送宁节数「起始宁符g上传数据18校验和BCC鲒结末导符26表发送缓冲区缓冲区内容字节数接以字节数起始字符g命兮卖型目标站号起始地址8读写字节数写入数据32校验和BCC结束字符‘G表接收缓冲区用指令接收最多为个字符的数据,这些字符存储在缓冲区中。在接收到结束字符时,会产生一个中断(对端口为中断事件)。本例的缓冲区的格式如表。其中,命令类型表小上位机让执行什么操作,如读或写目标站号是分配给的一个代号起始地址是要进行读写的存储区的起始地址读写字节数是接到命令后,对存储区进行读写的字节数,本例中最多写入字节、读出字节写入数据是上位机要写入的数据,对丁读命令不起作用是从命令类型开始到写入数据为止的字节数据的异或和。从目标站号到这几项内容,都是把进制数编码为码来表小的。自由口通信程序设计通信程序的设计需遵循一定的规则,如中断通信处理程序要短小精悍、要避免指令同时在一个端口执行等。整个通信程序包括主程序、通信初始化子程序、校验子程序、读写数据子程序和发送完成、接收完成中断服务程序主程序通信主程序是实现接收、发送功能的主框架。其主要流程为查询接收是否完成,校验,再根据命令类型执行读、写等操作它的作用是控制程序的主流程,校验、读写等具体工作由相应的子程序完成。流程如图通信初始化程序通信初始化子程序设置自由口通信的有关参数,对接收信息控制寄存器写入控制字,定乂起始字符、结束字符和接收超时。设好自由口模式的这些参数后,还要连接中断事件和中断服务程序,并打开中断最后,把接收、发送缓冲区写入初值即可。校验子程序每次接收完帧数据,就调用此子程序进行校验。进入子程序后,先清除接收完成标志位,再计算所接收数据的校验和如果正确,还要检验结束字符是否为不是的话,说明数据报文长度不对或传输过程中发生了错误,需要向上位机返回相应的出错信息。流程如图「开始<接收完标志校验正确又命令类型读款据写据「开连续上传连续上传图主程序流程图复位接收完成标志计算接收Bc<正确状态字节赋值为3h<猜束字符为状态字节赋值为q校验标志置1停止按收发送返回图校验子程序流程图读、写数据子程序这个子程序的任务是把存储区中的数据发给上位机或把上位机传来的数据写入存储区。二者的流程相似,只是数据流向不同。进入子程序后,先停止接收,然后完成数据传输,最后发送应答报文。不同之处就是应答报文中的状态字节:读操作时是、写操作时是接收、发送完成中断服务程序当接收到结束字符后产生中断(事件号)或数据发送结束后产生中断(事件号,这两个服务程序被执行。接收完,先把接收完标志置,然后再次启动接收。发送完,先清除校验正确标志,再把接收缓冲区中的结束字符和计算出的接收结果清零,最后再次启动接收由于是半双工通信,因此无论是发送和接收完数据后,都必须将通信口设置成接收状态。否则,就接收不到任何数据了上位机的通信编程上位机通过口与进行通信,环境串口通信程序利用编写。编写串口通信程序通常有件和通信两种方法。二者各有优缺点。控件封装了微机串口通信的基本功能,使用者只需设置一些基本参数,就可以通过串口收发数据了。这种方法简单,易于编程人员使用,现在已有很多例子供参考。用通信编写串口程序相对复杂一些。开发者要直接使用提供的一组函数来完成上述控件封装好的功能。所以使用编程比使用控件更复杂,但同时也更灵活。通信控件已经封装好的功能是无法改变的,而使用就能针对通信协议编写效率更高的代码在飞剪控制系统的上位机程序中,使用通信编写了串口读写的模块。接收时,程序要査找起始字符,以确定帧数据的开始再根据下一个状态字节判断通信的正确性最后,把长度为字节的数据帧接收好,并准备接收下一帧。发送过程不用判断数据内容,执行发送函数即可。需要注意的是:由于通信口是半双工的,所以在向上位机上传数据时,上位机要等帧数据接收完毕,再执行发送操作,以避免收发冲犬读入1个字符一是起始字符[读入状态字节状态正确陕宛此帧数据校验BcC正确数据处理显示有数据要发一发选图上位机串口通信流程图结束语