价格:面议
0
联系人:
电话:
地址:
S7-200 SMART 软件在 V2.3 开始支持使用 USB-PPI (6ES7 901-3DB30-0XA0)电缆通过串行端口对所有型号的 CPU 进行编程。
不论是Modbus通信还是USS通信,在 S7-200 SMART CPU 通信口上实现的是 RS485 半双工通信,使用的是 S7-200 SMART 的自由口功能,以下说明以CPU Port0 自由口功能切换为例。
由于紧凑型 CRs CPU(CR20s、CR30s、CR40s 和 CR60s)无以太网端口,所以 RS485 端口为编程端口。因此,如果用户程序使用 RS485 端口作为自由端口,则会引起冲突。用户程序将RS485 端口用作自由端口时,STEP 7-Micro/WIN SMART V2.3 无法与CPU 通信。
切换方法:
自由口通信切换到PPI模式: 有以下两种方法:
1.将USB-PPI 电缆连接到CPU的 RS485 端口,会强制CPU退出自由端口模式并启用 PPI 模式,CPU并不停机。这是CPU固件2.3版新增功能,会使 STEP 7-Micro/WIN SMART V2.3 恢复CPU 控制,实现上载或下载功能。 如果USB-PPI 电缆一直连接到CPU的 RS485 端口,则CPU无法启用自由端口。
2.未连接 USB-PPI 电缆,通过程序手动给SMB30赋值切换到PPI模式。
PPI模式切换到自由口通信: 移除 USB-PPI 电缆后,CPU 不会自动重启自由端口,以下两种方法可以切换到自由口通信:
1.将 USB-PPI 电缆拔掉以后,断电重启CPU,并进入运行模式;
2.将 USB-PPI 电缆拔掉以后,通过程序手动给SMB30赋值切换到自由口(该方法可以在PLC不断电的情况下实现模式切换)。
1、系统初始化:一般小型PLC的系统初始化主要是进行初始化、设置、查找扩展模块等;
2、扫描输入:扫描IO输入信号;
3、执行逻辑:根据用户PLC程序执行逻辑;
4、家务管理:PLC诊断、维护和其它系统程序执行;
5、扫描输出:将逻辑执行的输出;
6、通信管理单元:通信服务程序,响应编程软件和其它通信任务。
PLC运行方式:
由上面可以看到PLC的运行是一种循环扫描的运行方式,实际上PLC还有定时扫描和中断扫描共三种扫描方式。
循环扫描:PLC按上图循环执行;
定时扫描:PLC根据用户设置的时间定时扫描,比方说50ms扫描一次,使用这种扫描方式,用户需要保证用户程序在设定时间内一定能扫描完毕,一般PLC使用定时中断和子程序结合起来实现这个功能(这种情况下与中断扫描方式并无不同),但在IO扫描方面会有一些细微的不同,很可能会用到立即刷新IO的功能块UpData_IO。
中断扫描:中断扫描根据外部或者内部中断的中断扫描程序的运行。比方说外部IO中断、高速计数中断、定时中断等。
十九、PID——温控、变频
PID(Proportional, Integral andDerivative)是闭环控制中最常用的一种算法,在包括温控、水泵、张力、伺服阀、运控等行业得到了广泛的应用,但因为每个应用的对象特性都不一样,这就要求调试工程师允分了解PID的控制原理,只有这样我们才能把PID的应用好。
PID原理:
PID是由比例、微分、积分三个部分组成的,在实际应用中经常只使用其中的一项或者两项,如P、PI、PD、PID等。
从控制原理来说,当一个控制对象,我们希望控制的输出达到我们设定的值,我们通常会使用开环或者闭环控制,如果控制对象的响应很稳定不会受到其它环节的影响,我们可以选用开环控制。反之如果被控对象受到设定值、负载或者源端的影响而产生波动,我们应该选用闭环控制。下图是一个温控的原理图:
PID执行周期(1/10秒) 〔范例〕
比例控制(P):
比例控制是最常用的控制手段之一,这也是最符合人的感观的一种控制,比方说我们控制一个加热器的恒温100度,当开始加热时,离目标温度相差比较远,这时我们通常会加大加热,使温度快速上升,当温度超过100度时,我们则关闭输出,通常我们会使用这样一个函数
e(t) = SP – y(t);
u(t) = e(t)*P
SP——设定值
e(t)——误差值
y(t)——反馈值
u(t)——输出值
P——比例系数
滞后性不是很大的控制对象使用比例控制方式就可以满足控制要求,但很多被控对象中因为有滞后性。
比方说塑胶挤出机,如果设定温度是200度,当采用比例方式控制时,如果P选择比较大,则会出现当温度达到200度输出为0后,温度仍然会止不住的向上爬升,比方说升至230度,当温度超过200度太多后又开始回落,尽管这时输出开始出力加热,但温度仍然会向下跌落一定的温度才会止跌回升,比方说降至170度,最后整个系统会稳定在一定的范围内进行振荡。
1.为什么有的 HMI 软件使用 Modbus RTU 协议可以读取作为 Modbus RTU 从站 S7-200 SMART CPU 的数据,但是不能写入数据?
可能此软件使用Modbus功能15写多个开关量输出功能到S7-200 SMART CPU时,没有遵守从站协议中“以整字节地址边界(如Q0.0、Q2.0)开始、以8的整数倍为位个数”的规约。定义HMI 软件严格执行此规律可以避免发生写入错误的情况
2.为什么有的 HMI 软件使用 Modbus RTU 协议读取作为 Modbus RTU 从站 S7-200 SMART CPU 的浮点型数据时会出现错误?
可能此HMI软件使用Modbus RTU通信协议时,处理保持寄存器中浮点数的存储格式与西门子的浮点数存储格式不同。西门子的PLC遵循“高字节低地址、低字节高地址”的规约。
Modbus RTU的保持寄存器以“字”为单位,1个浮点型数据则由2个“字”构成。HMI软件在处理时可能会将保持寄存器的两个“字”互换位置,造成不能识别以西门子格式表示的浮点数。如果HMI软件一方无法处理这种浮点数,则可在S7-200 SMART CPU中编程将存入保持寄存器区的浮点数的高“字”和低“字”互换。
3.S7-200 SMART紧凑型CPU作为 Modbus RTU 从站时,已经将 MBUS_INIT 指令的Mode 输入参数设置为“1”了,但是 MBUS_SLAVE 指令还是会出现 10 号错误(从站功能未启用)?
S7-200 SMART紧凑型CPU 不能扩展信号模块,不具有模拟量输入通道,如果MBUS_INIT 指令的MaxAI 输入参数设置不为“0”,则MBUS_SLAVE 指令会出现 10 号错误。
4.S7-200 SMART 使用S7-200的Modbus slave库无法初始化成功?
如下图所示,使用STEP 7-Micro/WIN SMART 直接打开S7-200 MODBUS 通信程序并做相关设置后测试,
首先,图中的MBUS_INIT的相关参数针对200smart来说,设置均正常,但是从测试可以看出,初始化MBUS_INIT报错1:存储器范围出错,而且MBUS_SLAVE报错10:从站功能未启用
图2. MODBUS Slave报错
这是因为200的库程序里针对过程映像区MaxIQ(0-128),AaxAI(0-32)做的报警判断,如下图Modbus Slave程序所示,S7-200的过程映像区***大0-31,所以超过31会报错,【但S7-200smart的AI过程映像区***大255】
图3. MODBUS Slave报警判断
所以当S7-200 SMART需要设计AI大于31的地址时,考虑还是使用STEP 7-Micro/WIN SMART自己的库。
5.S7-200 SMART CPU作为 Modbus RTU 从站时,是否支持 Modbus RTU 主站发送的广播命令?
S7-200 SMART CPU 作为 Modbus RTU 从站时,不支持广播命令。