S7-1200西门子PLC可通过配置标准的通讯口,用来与其它智能设备进行通讯。通讯口功能非常全,但数量有限,对于一些简单的通讯,比如单纯的显示、打印等,用此通讯口显得大材小用。本文探讨不用标准通讯口,而采用DO输出进行通讯的方法。并给出一个实例:S7-1200西门子PLC接打印机。执行控制运算,并将运算的结果输出到I/O 数据区,由 I/O 驱动程序转换输 出给物理通道,从而达到自动控制的目的。输出信号一般也包含如阀位信号、电流、电压等模拟量输出信号和启动设备的开/关、启/停的开关量输出 信号等。控制层软件每个程序组织单元作如下处理。 (1)从 I/O数据区获得输入数据。 (2)执行控制运算。 (3)将运算结果输出到 I/O 数据区。 (4)由 I/O驱动程序执行外部输出,即将输出变量的值转换成外部信号 (如 4~20mA 模拟信号)输出到外部控制仪表,执行控制操作。上述过程是一个理想的控制过程,事实上,如果只考虑变量的正常情 况,该功能还缺乏完整性,该控制系统还不够安全。一个较为完整的控制方案执行过程,还应考虑到各种无效变量情况。例如,模拟输入变量超量程情 况、开关输入变量抖动情况、输入变量的接口设备或通信设备故障情况,等等。这些将导致输入变量成为无效变量或不确定数据。此时,针对不同的控 制对象应能设定不同的控制运算和输出策略,例如可定义:变量无效则结果无效,保持前一次输出值或控制倒向安全位置,或使用无效前的后一次有 效值参加计算,等等。所以现场控制站 I/O数据区的数据都应该是预处理以 后的数据。
信号采集与数据预处理 控制计算机要完成其控制功能,首先要对现场的信号进行采集和处理。 控制计算机的信号采集指其 I/O系统的信号输入部分。它的功能是将现场的 各种模拟物理量如温度、压力、流量、液位等信号进行数字化处理,形成现场数据的数字表示方式,并对其进行数据预处理,后将规范的、有效的、 正确的数据提供给控制器进行控制计算。现场信号的采集与预处理功能是由控制计算机的 I/O 硬件及相应软件实现的,用户在组态控制程序时一般不用 考虑,由控制计算机系统自身完成。I/O硬件的形式可以是模块或板卡,电 路原理 DCS 和 PLC 基本相同。软件则根据 I/O 硬件的功能而稍有不同。对 于早期的非智能I/O(多为板卡形式)。处理软件由控制器实现,而对于现存 大多数智能 I/O 来说,数据采集与预处理软件由 I/O 板卡(模块)自身的CPU 完成。控制系统中 I/O 部分的设备框图
研究通讯的原理可知,通讯大致分为并行和串行两大类,本文使用串行通讯。一般的串行通讯,利用信号的两种状态,按预定的规则,把要传送的数据,调制在两种状态的变化序列中。其中关键的参数有,空闲状态、起始、位速率、位长、停止状态等。
按上面的叙述,研究S7-1200西门子PLC发现,其高速脉冲串输出(Pulse TrainOutput,PTO)功能,非常适合做DO通讯,既可以满足速度要求,也可以做到定时准确。
2 PTO简介
S7-1200西门子PLC的PTO总是产生一个可变频率的方波。通过PTO向导配置功能,可以实现脉冲输出控制多种配置框架。详细的功能描述,请参考《S7-1200可编程控制器系统手册》脉冲指令介绍部份。
每个S7-1200西门子PLC有二个PTO产生高速脉冲波形,一个PTO分配在Q0.0,另一个PTO分配在Q0.2。PTO提供指定脉冲个数的方波(50%占空比),周期(CycleTime)可以用微秒(us)或毫秒(ms)为单位指定,周期的范围是50~65,535us,或2~65,535ms,脉冲数的范围是1~4,294,967,295。
PTO功能允许脉冲串的排队,当激活的脉冲串完成时,立即开始新脉冲的输出,这保证了顺序输出脉冲串的连续性。PTO能自动读取在DB块中存放的脉冲描述数据,在连续多个脉冲输出时,能减少PLC程序的负担。
PTO脉冲串的多段管线:在多段管线模式,CPU自动从V存储器区的包络表中读出每个脉冲串的特性。在该模式下,仅使用特殊存储器区的控制字节和状态字节。选择多段操作,必须装入包络表在V存储器中的起始地址偏移量(SMW168或SMW178)。时间基准可以选择微秒或者毫秒,但是,在包络表中的所有周期值必须使用同一个时间基准,而且在包络正在运行时不能改变。执行PLS指令来启动多段操作。
用于 SIMATIC S7-400 的模拟量输入和输出
用于解决更复杂的模拟量过程信号控制任务
用于连接模拟传感器和执行机构,而无需增加放大器
应用
模拟量输入/输出模块用于处理自动化系统中的模拟量输入/输出任务。 模拟传感器和执行器可以通过这些模块连接到自动化系统。
使用模拟量输入/输出模块给用户提供以下优点:
佳适应性:
可根据需要使用相应的模板,可以满足控制任务所需的输入/输出点数量。 不需要过多的投资。高性能的模拟量处理技术:
输入/输出量程范围宽、测量精度到,可以连接多种模拟量传感器和执行器。
3 通讯格式
明白多段PTO功能后,接下来叙述一个西门子PLC的byte的传送方式,思路:未传数据前,先经历一个空闲间隔时间,此时间比任何一个数据脉冲都要长,以便能明显地区别开来;空闲间隔之后是起始脉冲,用来同步和时间校准用;起始脉冲过后,就是数据脉冲了,定义比起始脉冲宽者为二进制1,比起始脉冲窄者为0;传完8位二制位后结束,进入空闲状态。
事例:在DB块中建立表格数据,表2,以完成上述脉冲的输出。 按表2包络表的数据流程如下,PTO第1段发送周期为32ms间隔脉冲,然后第2段发送周期为2ms起始脉冲,接着发送周期为1ms(Byte数据位为0时)或3ms(Byte数据位为1时)数据脉冲,连续8组数据脉冲,总共10段脉冲数据,完成一个字节的发送。
表2在个SCAN时建立,并置PTO为脉冲串输出,指向表2。需传数据时,将字节值按位拆解,在Bit0~Bit7的位置填入1000(0)或3000(1),然后发PLS指令,西门子PLC开始脉冲输出。输出完成状态可以从SM66.7(PTO0)或SM76.7(PTO1)监视。
4 PTO实现打印
下面介绍如何利用PTO通讯实现S7-1200西门子PLC的打印输出。打印机的种类很多,本文用的是微型针式打印机,26芯并行接口(8位打印并行接口兼容),IDC26线插座,TTL信号电平,所以,控制打印机,至少得用10根控制线,TTL电平。
本文选用一片单芯片微控制器(MCU,ATMEL AVRATtiny15L),接收西门子PLC送来的PTO数据脉冲,解调出其中的原始数据,再驱动打印机,将数据(字符)打印出来。PTO脉冲输出经光耦合器隔离后,送入MCU中。西门子PLC和MCU间没有电气连接,没有相互间干扰和共地的问题。又由于连线少,信号强(24V脉冲),可以长距离传送。
MCU接收PTO脉冲后,按约定的时序,解调出原始数据,经串/并转换电路,变为打印接口所需的8位并行输出。MCU检测Busy信号,当为低电平时,在-STB上发一个低脉冲,将并行数据送入打印机。