11

模拟量模板EM235的输入电阻是多少? 
  输入电阻的大小和您所选择的输入类型有关,如果您选择电压输入,这样输入阻抗不小10兆欧;如果选择电流输入则输入抗为250欧姆 

在应用EM231RTD模块的时候其测量值代表什么含义? 
  当您应用EM231RTD模块的时候,将其测量值除以10.0就是实际的温度值。模块本身能够测量的范围是-3276.8到3276.7摄氏度,但实际测量值的范围取决于传感器的测量范围和实际温度。 
 

什么环境下可以编辑中文TD200? 
建议采用STEP 7-Micro/WIN 32 V3.1 SP1中文版 
 

EM235的量程问题: 
通过调整电位计及DIP开关可以改变EM235的量程为:
0-10V;0-5V
0-1V;0-500mV
0-100mV; 0-50mV
±10V; ±5V; ±2.5V
±1V ±500mV; ±250Mv
±100mV; ±50mV; ±250mV
0- 20mA 

在什么环境下可以编辑中文TD200? 
  建议采用STEP 7-Micro/WIN 32 V3.1 SPI中文版 

什么是AC/DC/RLY? 
  这是S7-200CPU的型号
  AC/DC/RLY对应:交流220供电,24V DC输入,继电器输出
  另外的一类型号是:DC/DC/DC
  DC/DC/DC对应:直流24V供电,24V DC输入,晶体管输出 

开关量输入需要供电吗? 
  开关量的输入端需要供电,S7-200本身有相应的24V电源提供具体接线请在"技术规范"内查找 

为什么有的编程软件下没有Ln指令? 
  有两个原因:一是编程软件的版本问题,建议采用新版软件,二是只有CPU224、226支持此指令,CPU221,CPU222没有此指令。 

如果编程口的地址、波特率、等参数忘记了怎么办? 
  西门子提供一个wipeout.exe应用程序,可以恢复PLC为原厂设置,并且删除用户程序,数据块,和所有的配置信息,PLC将被设置为地址2,波特率9600。WIPEOUT在DOS环境下运行,不过您一定按照提示完成。如果一次不成功请重复测试,它的基本原理是这样的,PLC在上电这初期(非常短)是以出厂设置的状态工作的,WIPEOUT只有这段时间才有控制权改变PLC的设置的。所以您加电和键盘操作一定要配合好。Wipeout.exe文件拷贝在编程软件的光盘上,如果您没有欢迎下载 

能否在CPU224中使用存储在存储卡上的CPU222的程序 
  答:可以,您可以从EEPROM存储卡向相同的、更大的、或更新的CPU22X中输入程序。 

为什么在使用模拟量输入模块的时候,有时AD码值会有很大的"跳动"? 
  在应用模拟量模块的时候,您会有两个"电源地",一个是CPU的供电地,另一个是传感器信号地,两个电源的地线是没有连接的。这样就有可能产生高的共模电压,对模拟量输入值产生影响。
建议:建议将两个电源地线连接在一起,
注意:共地的时候一定保证两个电源只有一根共地线,以避免不必要的有害电流产生 

在使用MODEM的时候,无法连接 
  MODEM和CPU之间的通讯故障可能由下列原因产生
 1. CPU和PC/PPI电缆是为半双工设计的,而计算机的232口是全双工的
 2. CPU既不产生DTS信号也不产生RTR信号,但是计算机可以产生
  解决办法:
 1. 预先在MODEM上永久地断开本地回波(例如用AT指令AT EO)
 2. 在合适的地方断开DTS和RTR信号 关于"MODEM"和S7-200的有关问题我们将专题讨论 

当PLC的输入点采用PLC本身的24V电源供电时应该注意什么? 
  如果您的I/O通过PLC本身的24V电源供电时,在PLC刚刚加电的时候不会立即有电,CPU要领先于输入先得电。这一点对于上电初始化的时候可能有影响,解决的办法是如果初始化程序与开关量输入有关,请延时几毫秒再初始化。 

在使用TD200的时候信息为什么过一段时间会自动切换到其它的信息? 
  在组态TD200的时候,为信息赋予的优先级是降序排列的,第一条信息具有最高的优先权,在使能多条信息的时候,通过上下箭头键可以在多条信息间切换,黑色闪烁光标显示的是当前的信息,如果30秒内不做任何操作,系统会自动切换到优先级最高的那条信息。这是一个很好的功能,不是什么错误。如果您想固定显示某条信息,您只要在同一时刻只"使能"一条信息即可. 

关于RCV及XMT指令使用时的常见问题: 
  1. RCV及XMT指令不能同时有效,如果同时发生则会产生错误,通讯口不能进行新的通讯,需要重新    启动才可以清除错误。
  2. 在用PC/PPI电缆时,发送和接收之间有一定的时间间隔,这是由电缆本身的切换时间决定的。
  3. 关于通讯超时的问题,在SM187.2设为1的时候,并不是超过SMW192的时间值即终止接收,而是只    有接收到首字符后未能在规定时间内完成接收才可以自动终止接收,如果收不到首字节,RCV将一    直保持有效。 
 

 一点解决办法: 
  如果要停止RCV,需要复位相应的SM187.7,但是需要执行一次RCV才能有效,因为只有新的RCV指令CPU才去读SMB
  例如:
  LD M0.2
  RSM87.7,1
  RCV VB99,0
  XMT VB199,0
 在发送之前首先断开接收 

2001年后订的TP170A,程序下载不下去? 
  这是因为2001年后购的新版TP170A加进了新的功能和Firmware,原来的protool/pro V5.2+SP1不能支持这种新功能,所以应升级protool/proV5.2+SP1到 protool/proV5.2+SP2即好。 

旧的TP170A程序无法下载。怎么办? 
  对于MP270、OP170B、TP170A、TP170B等打新出的基于WindowsCE操作系统的操作员面板,因为Protool/pro软件版本不断升级,所以原来旧的TP/OP的Firmware不能与新protool/pro相匹配。所以软件程序无法下载下去,为此应按下列步骤对旧TP/OP的Firmware进行升级:

1.在新版Protool/pro光盘中,在images\TP170A\V5-2-SP2下找到Ptupdate.exe文件,运行此文件,则   会弹出一个名为“net-ptupdate”的窗口。在菜单“file”?“setting”中设置好通迅接口,如    coml。
2.在菜单“file”?“open”窗口中选中光盘中所带的“TP170A_V5_2_SP2_23.img”文件,并打开此文   件。
3.在菜单“file”?“download”中将此配置下载到TP170A中。
4.重新启动TP170A,然后下装程序

written by admin \\ tags: , , ,

15

PID参数的整定:
1、可以在软件中进行自动整定;
2、自动整定的PID参数可能对于系统来说不是最好的,就需要手动凭经验来进行整定。P参数过小,达到动态平衡的时间就会太长;P参数过大,就容易产生超调。
PID功能块在梯形图(程序)中应当注意的问题:
1、最好采用PID向导生成PID功能块;
2、我要说一个最简单的也是最容易被人忽视的问题,那就是:PID功能块的使能控制只能采用SM0.0或任何1个存储器的常开触点并联该存储器的常闭触点这样的永不断开的触点!
笔者在以前的一个工程调试中就遇到这样的问题:PID功能块有时间动作正常,有时间动作不正常,而且不正常时发现PID功能块都没问题(PID参数正确、使能正确),就是没有输出。最后查了好久,突然意识到可能是使能的问题——我在使能端串联了启动/停止控制的保持继电器,我把它改为SM0.0以后,一切正常!
同时也明白了PID功能块有时间动作正常,有时间动作不正常的原因:有时在灌入程序后保持继电器处于动作的状态才不会出现问题,一旦停止了设备就会出现问题——PID功能块使能一旦断开,工作就不会正常!
把这个给大家说说,以免出现同样失误。
下面是PID控制器参数整定的一般方法:
PID控制器的参数整定是控制系统设计的核心内容。它是根据被控过程的特性确定PID控制器的比例系数、积分时间和微分时间的大小。PID控制器参数整定的方法很多,概括起来有两大类:一是理论计算整定法。它主要是依据系统的数学模型,经过理论计算确定控制器参数。这种方法所得到的计算数据未必可以直接用,还必须通过工程实际进行调整和修改。二是工程整定方法,它主要依赖工程经验,直接在控制系统的试验中进行,且方法简单、易于掌握,在工程实际中被广泛采用。PID控制器参数的工程整定方法,主要有临界比例法、反应曲线法和衰减法。三种方法各有其特点,其共同点都是通过试验,然后按照工程经验公式对控制器参数进行整定。但无论采用哪一种方法所得到的控制器参数,都需要在实际运行中进行最后调整与完善。现在一般采用的是临界比例法。利用该方法进行 PID控制器参数的整定步骤如下:(1)首先预选择一个足够短的采样周期让系统工作;(2)仅加入比例控制环节,直到系统对输入的阶跃响应出现临界振荡,记下这时的比例放大系数和临界振荡周期;(3)在一定的控制度下通过公式计算得到PID控制器的参数。
PID参数的设定:是靠经验及工艺的熟悉,参考测量值跟踪与设定值曲线,从而调整P\I\D的大小。
比例I/微分D=2,具体值可根据仪表定,再调整比例带P,P过头,到达稳定的时间长,P太短,会震荡,永远也打不到设定要求。
PID控制器参数的工程整定,各种调节系统中P.I.D参数经验数据以下可参照:
温度T:P=20~60%,T=180~600s,D=3-180s;
压力P: P=30~70%,T=24~180s;
液位L: P=20~80%,T=60~300s;
流量L: P=40~100%,T=6~60s。
书上的常用口诀:
参数整定找最佳,从小到大顺序查;
先是比例后积分,最后再把微分加;
曲线振荡很频繁,比例度盘要放大;
曲线漂浮绕大湾,比例度盘往小扳;
曲线偏离回复慢,积分时间往下降;
曲线波动周期长,积分时间再加长;
曲线振荡频率快,先把微分降下来;
动差大来波动慢。微分时间应加长;
理想曲线两个波,前高后低4比1;
一看二调多分析,调节质量不会低。
经过多年的工作经验,我个人认为PID参数的设置的大小,一方面是要根据控制对象的具体情况而定;另一方面是经验。P是解决幅值震荡,P大了会出现幅值震荡的幅度大,但震荡频率小,系统达到稳定时间长;I是解决动作响应的速度快慢的,I大了响应速度慢,反之则快;D是消除静态误差的,一般D设置都比较小,而且对系统影响比较小。对于温度控制系统P在5-10%之间;I在180-240s之间;D在30以下。对于压力控制系统P在30-60%之间;I在30-90s之间;D在30以下。
这里介绍一种经验法。这种方法实质上是一种试凑法,它是在生产实践中总结出来的行之有效的方法,并在现场中得到了广泛的应用。
这种方法的基本程序是先根据运行经验,确定一组调节器参数,并将系统投入闭环运行,然后人为地加入阶跃扰动(如改变调节器的给定值),观察被调量或调节器输出的阶跃响应曲线。若认为控制质量不满意,则根据各整定参数对控制过程的影响改变调节器参数。这样反复试验,直到满意为止。
经验法简单可靠,但需要有一定现场运行经验,整定时易带有主观片面性。当采用PID调节器时,有多个整定参数,反复试凑的次数增多,不易得到最佳整定参数。
下面以PID调节器为例,具体说明经验法的整定步骤:
A. 让调节器参数积分系数S0=0,实际微分系数k=0,控制系统投入闭环运行,由小到大改变比例系数S1,让扰动信号作阶跃变化,观察控制过程,直到获得满意的控制过程为止。
B. 取比例系数S1为当前的值乘以0.83,由小到大增加积分系数S0,同样让扰动信号作阶跃变化,直至求得满意的控制过程。
C. 积分系数S0保持不变,改变比例系数S1,观察控制过程有无改善,如有改善则继续调整,直到满意为止。否则,将原比例系数S1增大一些,再调整积分系数S0,力求改善控制过程。如此反复试凑,直到找到满意的比例系数S1和积分系数S0为止。
D. 引入适当的实际微分系数k和实际微分时间TD,此时可适当增大比例系数S1和积分系数S0。和前述步骤相同,微分时间的整定也需反复调整,直到控制过程满意为止。
PID参数是根据控制对象的惯量来确定的。大惯量如:大烘房的温度控制,一般P可在10以上,I=3-10,D=1左右。小惯量如:一个小电机带一台水泵进行压力闭环控制,一般只用PI控制。P=1-10,I=0.1-1,D=0,这些要在现场调试时进行修正的。
PID控制说明:
在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称PID控制,又称PID调节。PID控制器问世至今已有近70年历史,它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用PID控制技术最为方便。即当我们不完全了解一个系统和被控对象﹐或不能通过有效的测量手段来获得系统参数时,最适合用PID控制技术。PID控制,实际中也有PI和PD控制。PID控制器就是根据系统的误差,利用比例、积分、微分计算出控制量进行控制的。
比例(P)控制 :比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差。
积分(I)控制 :在积分控制中,控制器的输出与输入误差信号的积分成正比关系。对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的或简称有差系统。为了消除稳态误差,在控制器中必须引入“积分项”。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。因此,比例+积分(PI)控制器,可以使系统在进入稳态后无稳态误差。
微分(D)控制 :在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。 自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。其原因是由于存在有较大惯性组件(环节)或有滞后组件,具有抑制误差的作用,其变化总是落后于误差的变化。解决的办法是使抑制误差的作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。这就是说,在控制器中仅引入“比例”项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势,这样,具有比例+微分的控制器,就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。所以对有较大惯性或滞后的被控对象,比例+微分(PD)控制器能改善系统在调节过程中的动态特性。

written by admin \\ tags:

16
概述
——SIMATIC S7-200系列PLC适用于各行各业,各种场合中的检测、监测及控制的自动化。S7-200系列的强大功能使其无论在独立运行中,或相连成网络皆能实现复杂控制功能。因此S7-200系列具有极高的性能/价格比。
——S7-200系列出色表现在以下几个方面:
  • 极高的可靠性
  • 极丰富的指令集
  • 易于掌握
  • 便捷的操作
  • 丰富的内置集成功能
  • 实时特性
  •  
  • 强劲的通讯能力
  • 丰富的扩展模块

       S7-200系列在集散自动化系统中充分发挥其强大功能。使用范围可覆盖从替代继电器的简单控制到更复杂的自动化控制。应用领域极为广泛,覆盖所有与自动检测,自动化控制有关的工业及民用领域,包括各种机床、机械、电力设施、民用设施、环境保护设备等等。如:冲压机床,磨床,印刷机械,橡胶化工机械,中央空调,电梯控制,运动系统。
——S7-200系列PLC可提供4个不同的基本型号的8种CPU供您使用。

CPU单元设计

——集成的24V负载电源:可直接连接到传感器和变送器(执行器),CPU 221,222具有180mA输出, CPU 224,CPU 224XP,CPU 226分别输出280,400mA。可用作负载电源。

不同的设备类型

——CPU 221~226各有2种类型CPU,具有不同的电源电压和控制电压。

本机数字量输入/输出点

——CPU 221具有6个输入点和4个输出点,CPU 222具有8个输入点和6个输出点,CPU 224具有14个输入点和10个输出点,CPU 224XP具有14个输入点和10个输出点,CPU 226具有24个输入点和16个输出点。

本机模拟最输入/输出点

——CPU 224XP具有2个输入点,1个输出点。

中断输入

——允许以极快的速度对过程信号的上升沿作出响应。

高速计数器

       CPU221/222

       4个高速计数器(30KHz),可编程并具有复位输入,2个独立的输入端可同时作加、减计数,可连接两个相位差为90°的A/B相增量编码器

——CPU224/224XP/226

——6个高速计数器(30KHz),具有CPU221/222相同的功能。

CPU 222/224/224XP/226

——可方便地用数字量和模拟量扩展模块进行扩展。可使用仿真器(选件)对本机输入信号进行仿真,用于调试用户程序。

模拟电位器

——CPU221/222 1个

——CPU224/224XP/226 2个

——CPU221/222/224/224XP/226还具有

脉冲输出

——2路高频率脉冲输出(最大20KHz),用于控制步进电机或伺服电机实现定位任务。

实时时钟

——例如为信息加注时间标记,记录机器运行时间或对过程进行时间控制。

EEPROM存储器模块(选件)

——可作为修改与拷贝程序的快速工具(无需编程器),并可进行辅助软件归档工作。

电池模块

——用于长时间数据后备。用户数据(如标志位状态,数据块,定时器,计数器)可通过内部的超级电容存贮大约5天。选用电池模块能延长存贮时间到200天(10年寿命)。电池模块插在存储器模块的卡槽中。

编程

       STEP 7-Micro/WIN32 V3.1编程软件可以对所有的CPU 221/222/224/224XP/226功能进行编程。同时也可以使用STEP 7-Micro/WIN16 V2.1软件包,但是它只支持对S7-21x同样具有的功能进行编程。 STEP 7-Micro/DOS不能对CPU 221/222/224/224XP/226编程。如果使用PG/PC的串口编程,则需要使用PC/PPI电缆。 如果使用STEP 7-Micro/WIN32 V3.1编程软件,则也可以通过SIMATIC CP 5511或CP 5611编程。在这种情况下,通讯速率可高达187.5kbit/s。 可以利用PC/PPI 电缆和自由口通讯功能把 S7-200 CPU 连接到许多和RS-232标准兼容的设备。
有两种不同型号的 PC/PPI 电缆: 

 

 ——当数据从RS-232传送到RS-485口时,PC/PPI 电缆是发送模式。当数据从RS-485传送到RS-232口时,PC/PPI 电缆是接收模式。当检测到RS-232的发送线有字符时,电缆立即从接收模式转换到发送模式。当RS-232发送线处于闲置的时间超过电缆切换时间时,电缆又切换到接收模式。这个时间与电缆上的DIP开关设定的波特率选择有关。

  • 带有RS-232口的隔离型 PC/PPI 电缆,用5个DIP开关设置波特率和其它配置项 (见下图)。
  • 带有RS-232口的非隔离型 PC/PPI 电缆,用4个DIP开关设置波特率。 有关非隔离型PC/PPI电缆的技术规范,请参阅S7-200 可编程控制器系统手册。

  
 

written by admin \\ tags: ,

13

S7-200 PLC之PPI协议     概述: 通过硬件和软件侦听的方法,分析PLC内部固有的PPI通讯协议,然后上位机采用VB编程,遵循PPI通讯协议,读写PLC数据,实现人机操作任务。这种通讯方法,与一般的自由通讯协议相比,省略了PLC的通讯程序编写,只需编写上位机的通讯程序资源

  S7-226的编程口物理层为RS-485结构,SIEMENS提供MicroWin软件,采用的是PPI(Point to Point)协议,可以用来传输、调试PLC程序。在现场应用中,当需要PLC与上位机通讯时,较多的使用自定义协议与上位机通讯。在这种通讯方式中,需要编程者首先定义自己的自由通讯格式,在PLC中编写代码,利用中断方式控制通讯端口的数据收发。采用这种方式,PLC编程调试较为烦琐,占用PLC的软件中断和代码资源,而且当PLC的通讯口定义为自由通讯口时,PLC的编程软件无法对PLC进行监控,给PLC程序调试带来不便。

  SIEMENS S7-200PLC的编程通讯接口,内部固化的通讯协议为PPI协议,如果上位机遵循PPI协议来读写PLC,就可以省略编写PLC的通讯代码。如何获得PPI协议?可以在PLC的编程软件读写PLC数据时,利用第三个串口侦听PLC的通讯数据,或者利用软件方法,截取已经打开且正在通讯的端口的数据,然后归纳总结,解析出PPI协议的数据读写报文。这样,上位机遵循PPI协议,就可以便利的读写PLC内部的数据,实现上位机的人机操作功能。

  软件设计

   系统中测控任务由SIEMENS S7-226PLC完成,PLC采用循环扫描方式工作,当定时时间到时,执行数据采集或PID控制任务,完成现场的信号控制。计算机的监控软件采用VB编制,利用MSComm控件完成串口数据通讯,通讯遵循的协议为PPI协议。

   PPI协议

  西门子的PPI(Point to Point)通讯协议采用主从式的通讯方式,一次读写操作的步骤包括:首先上位机发出读写命令,PLC作出接收正确的响应,上位机接到此响应则发出确认申请命令,PLC则完成正确的读写响应,回应给上位机数据。这样收发两次数据,完成一次数据的读写[5]。

  其通讯数据报文格式大致有以下几类:

  1、读写申请的数据格式如下:

  

  SD LE LER SD DA SA FC DASP SSAP DU FCS ED 

  SD:(Start Delimiter)开始定界符(68H)

  LE:(Length)报文数据长度

  LER:(Repeated Length)重复数据长度

  SD: (Start Delimiter)开始定界符(68H)

  SA:(Source Address)源地址,指该地址的指针,为地址值乘以8

  DA:(Destination Address)目标地址,指该地址的指针,为地址值乘以8

  FC:(Function Code)功能码

  DSAP:(Destination Service Access Point)目的服务存取点

  SSAP:(Source Service Access Point)源服务存取点

  DU:(Data Unit)数据单元

  FCS:(Frame Check Sequence)校验码

  ED:(End Delimiter)结束分界符(16H)

  报文数据长度和重复数据长度为自DA至DU的数据长度,校验码为DA至DU数据的和校验,只取其中的末字节值。

  在读写PLC的变量数据中,读数据的功能码为 6CH,写数据的功能码为 7CH。

  2、PLC接收到读写命令,校验后正确,返回的数据格式为 E5H

  3、确认读写命令的数据格式为:

  

  SD SA DA FC FCS ED 

  其中SD为起始符,为10H

  SA为数据源地址

  DA为目的地址

  FC为功能码,取5CH

  FCS为SA+DA+FC的和的末字节

  ED为结束符,取16H

  PPI协议的软件编制

   在采用上位机与PLC通讯时,上位机采用VB编程,计算机采用PPI电缆或普通的485串口卡与PLC的编程口连接,通讯系统采用主从结构,上位机遵循PPI协议格式,发出读写申请,PLC返回相应的数据。程序实现如下:

   1、串口初始化程序:

      MSComm1.CommPort = 1

      MSComm1.Settings = “9600,e,8,1″

      MSComm1.InputLen = 0

      MSComm1.RThreshold = 1

  MSComm1.InputMode = comInputModeBinary

  PPI协议定义串口为以二进制形式收发数据,这样报文的通讯效率比ASCII码高。

  2、串口读取数据程序,以读取VB100数据单元为例:

  Dim Str_Read(0 To 32) ‘定义发送的数据为字节为元素的数组。

  Str_ Read (32) = &H16 ‘相应的数组元素赋值,按照以下格式:

  Str_ Read (29) = (100*8) \ 256  ‘地址为指针值,先取高位地址指针

  Str_ Read (30) = (100*8) Mod 256 ‘取低位地址指针

  Str_ Read (24) = 1     ‘读取的数据长度(Byte的个数)

  For I=4 to 30

     Temp_FCS = Temp_FCS + Str_Read(i)

  Next I

  Str_Read(31)= Temp_FCS Mod 256 ‘计算FCS校验码,其它数组元素赋值省略。

  68 1B 1B 68 2 0 6C 32 1 0 0 0 0 0 E 0 0 4 1 12 A 10 2 0 1 0 1 84 0 3 20 8B 16

  PLC返回数据 E5 后,确认读取命令,发送以下数据:

  10 2 0 5C 5E 16

  然后上位机VB程序接受到以下数据:

  68 16 16 68 0 2 8 32 3 0 0 0 0 0 2 0 5 0 0 4 1 FF 4 0 8 22 78 16

  首先识别目标地址和源地址,确认是这次申请的返回数据,然后经过校验检查,正确后解析出第26号数据(&H22)即为VB100字节的数据。

   3、串口写入数据程序,以写VB100数据单元为例:

  Dim Str_Write(0 To 37) ‘定义发送的数据为字节为元素的数组。

  Str_Write (37) = &H16  ‘相应的数组元素赋值,按照以下格式

  Str_Write (35) = &H10  ‘要写入的数据值

  68 20 20 68 2 0 7C 32 1 0 0 0 0 0 E 0 5 5 1 12 A 10 2 0 1 0 1 84 0 3 20 0 4 0 8 C B9 16

  PLC返回数据 E5 后,确认写入命令,发送以下数据:

  10 2 0 5C 5E 16

  然后上位机VB程序接受到以下数据:

  68 12 12 68 0 2 8 32 3 0 0 0 0 0 2 0 1 0 0 5 1 FF 47 16

  这是PLC正确接收并写入信息的返回数据。

  4、串口接收程序:

  在数据接收程序中,利用VB中MSComm控件,一次接收缓冲区中的全部数据,存放到数组形式的暂存单元中,然后分析每个元素的值,得到读写的数据。

  Dim RCV_Array() As Byte

  Dim Dis_Array As String

  Dim RCV_Len As Long

  RCV_Array = MSComm1.Input ‘取出串口接收缓冲器的数据。

  RCV_Len = UBound(RCV_Array)

  ReDim Temp(0 To UBound(RCV_Array))

  For i = 0 To RCV_Len

  Dis_Array = Dis_Array & Hex(RCV_Array (i)) & ” ”

  Next i

  Text1.Text = Dis_Array ‘接收到的数据送显示。

   在程序的读写过程中,一次最大可以读写222个字节,目前给出的数据读写为整数格式。

  

  数据类型 Str_ Read(27)   

  S 04H   

  SM 05H   

  I 81H   

  Q 82H   

  M 83H   

  V 84H 

  以上程序,是以读写PLC的V变量区为例,利用PPI协议还可以读写S7-200PLC中的各种类型数据,包括I、Q、SM、M、V、T、C、S等数据类型,能够直接读出以上变量中的位、字节、字、双字等,其中读位变量时,是读取该位所在的字节值,然后上位机自动识别出该位的值。按照读写的数据类型,其中Str_ Read(27)的值各不同:

   在控制系统中,PLC与上位计算机的通讯,采用了PPI通讯协议,上位机每0.5秒循环读写一次PLC。PLC编程时,将要读取的检测值、输出值等数据,存放在PLC的一个连续的变量区中,当上位机读取PLC的数据时,就可以一次读出这组连续的数据,减少数据的分次频繁读取。当修改设定值等数据时,进行写数据的通讯操作。

written by admin

十二 26

西门子的 S7-200 PLC 功能强大,性能可靠,但在做数学运算时不能象高级语言那样做变量类型自动转换,经常要手工做 BTI、ITD 之类的转换,计算完成后又要 DTI 等耗时的操作,而且使代码行数增加,程序可读性不好,也降低了程序运行的效率。
   本文给出一种可以避免使用这些指令的小技巧,使你的代码看起来更简洁,也缩程序的扫描周期。
   就是在计算机编程中做算法设计时典型的以空间换时间的思想。比如一个字变量,在计算中经常要向双字变量转换,则我们在定义符号时让该变量占据双字的内存空间,将不用的字清零,则可同时以字型或双字型访问该变量而不需要进行专门的转换。
   S7-200 的内存格式与我们常用的 PC 机正好相反,它是高字在前,低字在后的。所以我们可以将字变量放在后两个字节,在程序初始化时将前两个字节清零(程序的其它地方不得使用这两个字节)。
   如我们定义符号时将字变量定义在 VW2,同时保持 VW0 的值为零。则程序中可以用 VW2 以字型访问该变量,同时也可以 VD0 以双字型访问,避免了类型转换。
   为了避免使用时混淆,最好以明确的符号定义来区分字类型和双字类型。在此强烈推荐类匈牙利命名法:以前缀指示变量类型,用首字母大写的有意义的英文单词的组合作变量名。本人习惯用以下缀:
   b —- 字节型变量(byte)
   w —- 字型变量(word)
   d —- 双字变量(double)
   r —- 实型变量(real)
   f —- 位变量(flag)
   btn — 自复位按钮式输入(button)
   sw —- 切换开关或自锁按钮输入(switch)
   sig — 传感器、编码等电平信号输入(signal)
   rly — 输出继电器位(relay)
   ……
   当然,这个根据个人习惯来,没有定则,主要是利于自己区分。
   假如有一个字类型变量名为 VarName,为使用前面的转换技巧,我们可以这样定义:
   wVarName —- VW2
   dVarName —- VD0
   在程序初始化时将 VW0 清零(如果是不需要记忆的变量,直接将 dVarName 清零也可)或者在数据块中将 VW0 设置为零。则以后需要以字类型访问变量时就用 wVarName,需要以双字类型访问变量时就用 dVarName。完全不需要类型转换。
   本方法可以极大的减少程序语句数,使程序更简洁、可读性更好,由于不需要做耗时的类型转换,程序运行效率也得到提高。且数学运算量越大,效率提高越明显。
  
   缺点是要多占用两字节的内存,以后程序中不能使用 VW0。但 S7-200 的 RAM 空间很大,一般是用不完的,以 226 为例,有多达 10K 的 RAM,偶从来没有超过 1K。 这些 RAM 都是花钱买来的,不用白不用,不用也是浪费了。
   同理,如果有字节型变量经常需要与字类型变量相互转换,让字节变量占用一个字的内存宽度浪费一个字节,避免类型转换。

written by admin

十一 13

S7-300与S7-200通过EM277进行PROFIBUS DP通讯,需要在STEP7中进行S7-300站组态,在S7-200系统中不需要对通讯进行组态和编程,只需要将要进行通讯的数据整理存放在V 存储区与S7-300的组态EM277从站时的硬件I/O地址相对应就可以了。
插入一个S7-300的站,选中STEP7的硬件组态窗口中的菜单 Optionà Install new GSD,导入SIEM089D.GSD文件,安装EM277从站配置文件.
导入GSD文件后,在右侧的设备选择列表中找到EM277从站,PROFIBUS DPàAdditional Field DevicesàPLCàSIMATICàEM277,并且根据您的通讯字节数,选择一种通讯方式,本例中选择了8字节入/8字节出的方式.
根据EM277上的拨位开关设定以上EM277从站的站地址.
组态完系统的硬件配置后,将硬件信息下载到S7-300的PLC当中.
S7-300的硬件下载完成后,将EM277的拨位开关拨到与以上硬件组态的设定值一致,在S7-200中编写程序将进行交换的数据存放在VB0-VB15,对应S7-300的PQB0-PQB7和PIB0-PIB7,打开STEP7中的变量表和STEP7 MicroWin32的状态表进行监控.
注意:VB0-VB7是S7-300写到S7-200的数据,VB8-VB15是S7-300从S7-200读取的值。EM277上拨位开关的位置一定要和S7-300中组态的地址值一致。

written by admin