新闻
西门子来宾PLC模块总代理
2023-03-08 13:20  浏览:38
西门子来宾PLC模块总代理

西门子来宾PLC模块总代理

一、 选型说明:

这个说明是查阅资料后编写的,如有相关意见可以修改。

整个需求分三部分:

1. 是利用现有的成熟的PLC技术,对各设备的监控点数据进行采集;

2. 再使用单片机技术,对PLC采集后的数据进行读取,并按照一定的格式存储在存储设备中,存储设备可以是U盘,存储卡等;

3. 使用读卡设备将存储的数据读出,并导入普通PC中,对读取数据进行分析。

二、 基本组成图:

图1 总框图

三、 PLC数据采集:
采用成熟的PLC技术,不需开发,使用西门子S7-200系列。

S7-200 PLC是串行通讯方式为丰富的小型PLC,支持多种通信协议,如点对点接口协议(PPI协议)、多点接口协议(MPI协议)和PROFIBUS协议以及自由通信协议等。其中自由通信协议又叫用户定义协议,利用自由端口模式,可以实现用户定义的通信协议,连接多种智能设备,使用起来非常方便,在第三方工程接入中取得了巨大的成功。

四、 单片机数据存储

此部分为整个技术的重点之一,他要完成的主要功能为,从PLC采集数据,并将数据按预先规定格式写入存储设备中,存储设备可设计成存储卡,U盘之类的。
以下为我所查资料的一些设想,只作为参考,如可行也可以作为使用。

1、 单片机与PLC通讯

单片机选用MCS51,MCS-51的串行口与MAX485芯片相接,然后与S7-200 PLC的RS-485口进行通讯,如图1所示:

图1 MCS-51单片机与S7-200的硬件接线图

在自由端口模式下,PLC的串行通信接口由用户来控制,通过梯形图程序以及和单片机的汇编语言进行配合,来使用完成中断、字符接收中断、发送完成中断等,通信协议由用户完全控制。这时单片机处于主机状态,由单片机主动发送握手信号,PLC接到信号后被动反馈信息即可。

a) 通信协议设计

定义根据经验和有关参考资料,定义协议结构和参数。

(1)通信波特率为9.6kbps,无校验,8个数据位,1个可编程位,1位起始位,1位停止位。

(2)定义通信协议的数据流结构的格式为起始码、命令码、元件首址、字节数、数据块、BCC校验码和结束码。

● 起始码:表示单片机与PLC开始发送数据,是数据流个字符,告诉PLC开始进行通信了,可以用00H表示

● 命令码:表示单片机对PLC的各种操作:

    40H:读取目标元件 I、Q、V、M、SM、L、T、C等的数据或状态;
    41H:修改目标元件 I、Q、V、M、SM、L、T、C等的数据或状态;
    42H:强制目标单元为ON;
    43H:强制目标单元为OFF;

● 元件首址:表示PLC内部的元件类型以及寄存器的地址(但不能表示一个位地址)。前两个字节表示寄存器类型,后两个字节表示寄存器号。00 00(H):I寄存器区 01 00(H):Q寄存器区。02 00(H):M寄存器区 08 00(H):V寄存器区;

● 字节数:从元件首地址起,读取或写入PLC元件的数据个数数据块:准备读取或者写入PLC的数据或状态;

● BCC校验码:在传输过程中,指令有可能受到任何的干扰而使原来的数据信号发生扭曲,此时的指令当然是错误的,为了侦测指令在传输过程中发生的错误,接收方必须对指令作进一步的确认工作,以防止错误的指令被执行,简单的方法就是使用校验码。BCC校验码的方法就是将要传送的字符串的ASCII码以字节为单位作异或和,并将此异或和作为指令的一部分传送出去;同样地,接收方在接到指令后,以相同的方式对接收到的字符串作异或和,并与传送方所送过来的值作对比,若其值相等,则代表接收到的指令是正确的,反之则是错误的

● 结束码:结束字符标志着指令的结束,在本例中被定义为FFH,不同的PLC从站可以定义不同的结束字符以接收针对该PLC的指令。

b) 通信程序的实现

(1)单片机端程序的实现。单片机在主程序中初始化,采用串行口工作方式3[2],波特率为9.6kbps,采用单片机作为主机,向PLC进行呼叫,定期读取数据或者写入数据,其程序流程图参见图2。

图2 单片机端通讯程序流程图

(2)PLC端程序流程图的实现。PLC端作为从机,采用梯形图或者STL编程,主要是先设置通讯协议,然后按照协议把采集到的数据进行处理,再发送给主机单片机,其具体的程序流程图如图3所示。

图3 PLC端通讯程序流程图

2、 单片机数据存储实现

采用西安达泰电子的单片机读写U盘的模块 USB118AD,接线图如图4:

 

图4 USB118接线图

说明:采用USB118AD模块直接连U盘。具体接口方式需查USB118AD相关资料。
五、 数据软件分析

通过U盘或其它存储设备,将数据读入电脑软件中,电脑软件根据实际业务需要设计相应的算法,对数据进行分析,以数据报表,图表等方式展现结果。

1.硬件连接

一台pc机可与一台或多16台三菱fx系列通信,pc与plc之间不能直接连接。如图1a、b为点对点结构的连接,图a中是通过fx-232aw单元进行rs-232c/rs-422转换与plc编程口连接,图b中通过在plc内部安装的通信功能扩展板fx-232-bd与pc连接;如图1c所示为多点结构的连接,fx-485-bd为安装在plc内部的通信功能扩展板,fx-485pc-if为rs-232c和rs-485的转换接口。除此之外当然还可以通过其它通信模块进行连接,不再一一赘述。下面以pc与plc之间点对点通信为例。

图1 pc与fx的硬件连接图

2.三菱fx系列plc通信协议

pc中必须依据所连接plc的通信规程来编写通信协议,所以我们先要熟悉fx系列plc的通信协议。

1)数据格式

三菱 fx系列plc采用异步格式,由1位起始位、7位数据位、1位偶校验位及1位停止位组成,比特率为9600 bps,字符为ascⅱ码。数据格式如图2所示。

图2数据格式

2)通信命令

三菱fx系列plc有4条通信命令,分别是读命令、写命令、强制通命令、强制断命令,如表1所示。

表1 fx系列plc的通信命令表

3)通信控制字符

fx系列plc采用面向字符的传输规程,用到5个通信控制字符,如表2所示。

表2 fx系列plc通信控制字符表


控制字符ascⅱ码功能说明
enq05hpc发出请求
ack06hplc对enq的确认回答
nak15hplc对enq的否认回答
stx02h信息帧开始标志
etx03h信息帧结束标志


注:当plc对计算机发来的enq不理解时,用nak回答。

4)报文格式

计算机向plc发送的报文格式如下:


stxcmd数据段etxsumhsuml

其中,stx为开始标志:02h;etx为结束标志:03h;cmd为命令的ascⅱ码;sumh、suml为按字节求累加和,溢出不计。由于每字节十六进制数变为两字节的ascⅱ码,故校验和为sumh与suml。


数据段格式与含义如下:

注:写命令的数据段有数据,读命令数据段则无数据。

plc向pc发的应答报文格式如下:

注:对读命令的应答报文数据段为要读取的数据,一个数据占两字节,分上位下位:

数据段:

对写命令的应答报文无数据段,而用ack及nak作应答内容。

5)传输规程

pc与fx系列plc间采用应答方式通信,传输出错,则组织重发。其传输过程

如图3所示。

图3传输过程

plc根据pc的命令,在每个循环扫描结束处的end语句后组织自动应答,无需用户在plc一方编写程序。

3.pc通信程序的编写

编写pc的通信程序可采用编写,或采用各种语言编写,或采用组态软件,或直接采用plc厂家的通信软件(如三菱的melse medoc等)

下面利用vb6.0以一个简单的例子来说明编写通信程序的要点。假设pc要求从plc中读入从d123开始的4个字节的数据(d123、d124),其传输应答过程及报文如图4所示。

图4传输应答过程及命令报文

命令报文中10f6h为d123的地址,04h表示要读入4个字节的数据。校验和sum=30h+31h+30h+46h+36h+30h+34h+03 h=174h,溢出部分不计,故sumh=7,suail=4,相应的ascⅱ码为“37h”,“34h”。应答报文中4个字节的十六进制数,其相应的ascⅱ码为8个字节,故应答报文长度为12个字节。

根据pc与fx系列plc的传输应答过程,利用vb的mscomm控件可以编写如下通信程序实现pc与fx系列plc之间的串行通信,以完成数据的读取。mscomm控件可以采用轮询或事件驱动的方法从端口获取数据。在这个例子中使用了轮询方法


相关新闻
联系方式
公司:浔之漫智控技术-西门子PLC代理商
姓名:聂航(先生)
电话:15221406036
手机:15221406036
地区:直辖市-上海
地址:上海市松江区广富林路4855弄88号3楼
QQ:3064686604
微信:15221406036
拨打电话
微信咨询
请卖家联系我