西门子玉溪PLC模块总代理
用于 ET 200SP 的 4、8 和 16 通道数字量输出模块
可通过自动编码插到基本单元上
用于显示“错误”、“运行”、“电源电压”和“状态”的指示灯
模块正面的清晰标签
模块类型和功能等级的普通文本标识
二维矩阵码(订货号和序列号)
接线图
模块类型 DI 的彩色编码:白色
硬件和固件型号
色码 CC,用于对 BU 端子处的电位进行模块特定的彩色编码
完整订货编号
可选标签附件
标签条
参考识别标签
根据色码 CC 对端子执行可选的模块特定的颜色标识
可选系统集成式屏蔽连接
Area of application
数字量输入模块包含用于 ET 200SP 的数字量输入。
可对模块进行热插拔,从而使设备极易维护。
提供有以下数字量输入模块:
DI 8x24 VDC 标准型,用于类型 A0 基本单元,彩色编码 CC01
DI 8x24 VDC 标准型,用于高性能 A0 基本单元,彩色编码 CC01
DI 8x24 VDC 源输入型,用于 A0 基本单元,彩色编码 CC02
DI 8xNAMUR,用于高性能 A0 基本单元,彩色编码 CC01
DI 4x120 V AC-230 V AC,适用于基本单元类型 B1,颜色代码 CC41(不久提供)
DI 16x24 VDC 标准型,用于类型 A0 基本单元,彩色编码 CC00
Design可用 BU对于单导线或多导线连接,提供了带有合适端子数的 BU。
一个浅色 BU 可以打开一个新负载组。传感器电源必须通过该 BU 馈入。接口模块旁的个 BU 必须为浅色 BU。
深色 BU 可通过自组装电压总线前馈左侧相邻的浅色 BU 的电源。因此,只有右侧下一个浅色 BU 需要新馈电。
与 I/O 模块的 BU 类型相对应的所有型号均可用作 BU。
端子的颜色标识BU 的端子处的电位通过 I/O 模块进行定义。端子的电位也可以通过模块特定的彩色编码标签对端子的电位进行标识,以避免接线错误。与相应 I/O 模块相匹配的彩色编码标签通过 I/O 模块的 CCxx 色码进行定义。该色码也印在模块的正面。颜色代码为 CC00 的模块不需要颜色编码标签。
在带有 10 个内置跨接 AUX 端子的 BU 中,这些端子也可以使用彩色编码标签进行标识。对于 10 个 AUX 端子,提供了红色、蓝色、黄色/绿色编码标签。
标记提供了两种不同材料的浅灰色和黄色标签条,用于为模块贴标签:
标签箔、带有 500 个标签条的标签卷,用于热转印打印机
纸张 (280 g/m2) 为 DIN A4 纸,每张带有 100 个条,适用于激光打印机
为了使电缆屏蔽线的连接能够节省空间和提高电磁兼容性,提供了可以快捷安装的屏蔽连接器。它包括一个屏蔽连接元件(可以插入到 BU 中)和一个可用于所有模块的屏蔽端子。用户无需任何附加接线即可实现功能性接地的低阻抗连接(DIN 导轨)。
二、存储器容量的估算
存储器容量是可编程序控制器本身能提供的硬件存储单元大小,程序容量是存储器中用户应用项目使用的存储单元的大小,因此程序容量小于存储器容量。设计阶段,由于用户应用程序还未编制,因此,程序容量在设计阶段是未知的,需在程序调试之后才知道。为了设计选型时能对程序容量有一定估算,通常采用存储器容量的估算来替代。
存储器内存容量的估算没有固定的公式,许多文献资料中给出了不同公式,大体上都是按数字量I/O点数的10~15倍,加上模拟I/O点数的100倍,以此数为内存的总字数(16位为一个字),另外再按此数的25%考虑余量。
首先应确定控制方案,下一步工作就是PLC工程设计选型。工艺流程的特点和应用要求是设计选型的主要依据。PLC及有关设备应是集成的、标准的,按照易于与工业控制系统形成一个整体,易于扩充其功能的原则选型所选用PLC应是在相关工业领域有投运业绩、成熟可靠的系统,PLC的系统硬件、软件配置及功能应与装置规模和控制要求相适应。熟悉可编程序控制器、功能表图及有关的编程语言有利于缩短编程时间,因此,工程设计选型和估算时,应详细分析工艺过程的特点、控制要求,明确控制任务和范围确定所需的操作和动作,然后根据控制要求,估算输入输出点数、所需存储器容量、确定PLC的功能、外部设备特性等,后选择有较高性能价格比的PLC和设计相应的控制系统。
三、控制功能的选择
该选择包括运算功能、控制功能、通信功能、编程功能、诊断功能和处理速度等特性的选择。
(一)运算功能
简单PLC的运算功能包括逻辑运算、计时和计数功能;普通PLC的运算功能还包括数据移位、比较等运算功能;较复杂运算功能有代数运算、数据传送等;大型PLC中还有模拟量的PID运算和其他运算功能。随着开放系统的出现,目前在PLC中都已具有通信功能,有些产品具有与下位机的通信,有些产品具有与同位机或上位机的通信,有些产品还具有与工厂或企业网进行数据通信的功能。设计选型时应从实际应用的要求出发,合理选用所需的运算功能。大多数应用场合,只需要逻辑运算和计时计数功能,有些应用需要数据传送和比较,当用于模拟量检测和控制时,才使用代数运算,数值转换和PID运算等。要显示数据时需要译码和编码等运算。随着建筑设计中楼宇智能化技术的发展,大型建筑群的供水系统也实现计算机的远程集中监控,以下介绍一个计算机监控的抽水系统,它采用VC++6.0可视化编程,通过计算机与plc的串行通信,由PLC不断采集被控对象的状况参数,返回计算机,计算机按照控制程序方式,监控被控制对象的运行。
1.抽水系统的组成与功能
1.1.抽水系统的组成(1)抽水系统可视化界面结构如图1;
(2)相应的数据库结构如图2;
(3)系统共设计有八个人机对话窗体,具体功能如下表1:序号窗体名称窗 体 功 能1登陆为进入系统的登陆窗体,实现对操作员工号与密码的安全检查2抽水监控界面为系统运行主窗体,实现对抽水的监控功能,分别设置有抽水方式选种栏、状态显示栏、系统示意图等3抽水记录查询为抽水记录查询窗体,记录开机操作员、关机操作员、抽水方式、启动时间、停止时间、抽水时间数据4故障记录查询为故障记录查询窗体,记录故障发生时的故障电流值、故障类型、故障时间 5操作人员管理为操作人员管理窗体,对操作人员的工号和密码管理。6保护整定为保护整定窗体,可整定速断电流值,过流电流值和时限7故障报警为故障提示窗体8打印打印窗体
(4)硬件配置
系统的硬件配置如图3所示,PLC用于开关量的输入与输出、电流数据输入,由PLC的Y0输出的开关量控制接触器KM的状态,从而实现对抽水泵工作电源控制;而Y0的状态由PLC的R0继电器控制,通过计算机远程置位和复位R0继电器,实现远程控制;在现场按钮SB1和SB2也可以对R0继电器置位和复位,实现就地合闸和分闸;K1和K2红外线接近开关分别作为满水和缺水的信号输入;抽水泵的工作电流由电流互感器变换为0-5A,再经电流变送器进一步变换为合适A/D输入的电流。 A/D转换后的数字量存放在专用的WX9中,供远程监控计算机的数据采集。1.2.抽水监控系统的软件设计与功能
(1)抽水监控系统的软件程序流程图如图4所示。
(2)具有的电流速断和定时限过流保护功能,当计算机检测得到的电流数据大于速断电流整定值,则计算机瞬时发出分闸命令;如果大于过电流整定值,延时发出预告信号,报警后,在设定时间内不能恢复正常,计算机发出分闸命令。
(3)建立数据库,记录抽水系统开机、关机操作员的编号、分合闸的时间、抽水方式;故障时,记录保护动作时间、动作电流值和故障类型。
(4)抽水监控系统有具有手动,自动,定时三种抽水控制方式。选择手动时,计算机在系统启动时,直接发送合闸或分闸指令;选择自动方式时,系统启动后,计算机采集缺水信号,若接到缺水信号将发送合闸指令,开始抽水后,等待满水信号,若满水,则发送分闸指令;当选择定时方式时,系统等待设置的启动时间到,自动向抽水泵发送合闸指令;同样系统也可以等待设置的停止时间到,自动向抽水泵发送分闸指令。
(5)操作员进入系统和退出系统需要进行登陆检查,采用安全措施进入和退出系统。登陆系统后,操作员可以修改自己的密码,只有管理员有权注册新的操作员。
(6)系统运行的仿真示意图,实时显示抽水系统的工作状态,在计算机监控窗体增加了灯光和流程动画,直观地显示系统的运行状态,更好展现可视化的效果。2.抽水监控系统设计的技术关键
2.1抽水监控系统的核心程序抽水监控系统的核心程序为系列函数:发出通信指令函数,如其中读x2状态的函数Read_x2();字符串转换并发送函数SendString(CString m_strSend);接收信息并转换字符串函数ReadString ()等。
计算机发出查询x2状态通信帧时,调用SendString(CString m_strSend)函数,将通信帧转换数据类型,再用SetOutput函数发送出去;PLC接收到信息后,自动返回x2的状态,计算机监测到输入缓冲区字符数到指定个数,调用ReadString()函数,接收并转换为Cstring格式的字符串。
void CCSXTAView::Read_x2()
{ m_com1.SetOutBufferCount(0);
m_com1.SetInBufferCount(0);
SendString("%01#RCSR0000**\r\n");
Sleep(100);
m_in=m_com1.GetInBufferCount();
ReadString();
x2=m_strRead;
x2=x2.Mid(6,1);
}
void CCSXTAView::SendString(CString m_strSend)
{ char TxData[100];
CString m_strSend;
m_strSend=“%01#WCSR00021**\r\n”;
int Count = m_strSend.GetLength();
for(int i = 0; i < Count; i++)
TxData[i] = m_strSend.GetAt(i);
CByteArray array;
array.RemoveAll();
array.SetSize(Count);
for(i = 0; i < Count; i++)
array.SetAt(i, TxData[i]);
m_MSComm1.SetOutput(COleVariant(array));//发送
}
void CCSXTAView::ReadString ()
{
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[2048]; //设置BYTE数组 An
//8-bit integerthat is not signed.
CString strtemp, str;
str.Empty();
strtemp.Empty();
variant_inp = m_MSComm1.GetInput();
//读缓冲区
safearray_inp = variant_inp;
//VARIANT型变量转换为ColeSafeArray型变量
len=safearray_inp.GetoneDimSize();
//得到有效数据长度
for(k=0;k<len;k++)
safearray_inp.GetElement(&k,rxdata+k);
//转换为BYTE型数组
for(k=0;k<len;k++)
//将数组转换为Cstring型变量
{ BYTE bt=*(char*)(rxdata+k);
strtemp.Format("%c",bt);
//将字符送入临时变量strtemp存放
str = str + strtemp;
//转换完成后赋值给字符串str
}
}
2.2计算机与PLC的通信帧抽水监控系统的设计关键之一是计算机与PLC的通信帧,PLC的通信系统的基本协议规定通信帧有严格的格式,本系统采用松下的PLC。上述Read_x2()指令函数中的"%01#RCSR0000**\r\n"为计算机发出读PLC的x2状态的通信帧,功能说明如下表2:
通信帧%01#RCSR0000**\r\n说明通信标志地址命令码,读接点接点编号效验码,不效验时用“*”代替结束码
2.3计算机与PLC的串行口连接
计算机与PLC的RS-232串行口有9和25个脚两种,而每个脚位的功能各有不同,正确连线才能使通信成功。计算机和PLC的串行口一般为9脚,其定义和功能如下表3:脚位PC机RS-232,其9支脚位的定义PLC上的RS-232,其9支脚位的定义简写意 义简写意 义1CD载波侦测FG保护接地2RXD接收字符SD传送字符3TXD传送字符RD接收字符4DTR数据端备妥RS要求传送5CND地线CS清除以传送6DSR数据备妥未用 7RTS要求传送SG地线8CTS清除以传送CD载波侦测9RI响铃侦测
计算机与PLC串行口连接通常有两种,基于连接和基于不连接的信号接线方式如图5所示:
2.4运用VC++6.0语言编程实现对计算机的串行口的读写
VC++6.0语言对计算机硬件有较好的控制能力,运用MSComm控件对计算机的串行口的读写控制。首先要对MSComm控件(假设名称为MSComm1,其对应的控制变量为m_MSComm1)的几个属性进行设置。
m_MSComm1.SetCommPort(1);//设置通信端口
m_MSComm1.SetSettings("9600,n,8,1");
//设置通信的波特率、效验方式、数据位、停止位
m_MSComm1.SetSthreshold(1);//设置要接受的字符数,当输入缓冲区字符书达到设置值,触发OnComm事件
m_MSComm1.SetPortOpen(TRUE);//打开通信端口
设置各项属性后,运用MSComm控件对串行口进行读写,将读到的内容写入输出缓冲区,再将输入缓冲区的信息读到程序去,计算机依据程序自动完成工作。
应用m_MSComm1.GetInput()和m_MSComm1. SetOutput()属性就可以将计算机输入缓冲区的信息读到程序中和把程序中的信息输出到计算机的输出缓冲区。
VC++6.0语言的m_MSComm1.GetInput()和m_MSComm1. SetOutput()属性发出和接收的是ColeSafeArray型数据,发送前要用SendString(CString m_strSend)实现转换,接收后要用ReadString ()实现转换为Cstring字符串。
PLC发出命令帧后,读取PLC的返回帧需一定的时间,否则返回帧的信息还未到达输入缓冲区,程序执行不正确的信息,所以在读返回帧的程序前,设置等待时间,使用Sleep()让程序处于休眠状态等待完整的回帧的信息。
2.4.PLC程序的配置
1)在PLC程序要设置波特率、奇偶效验方式、数据位、停止位为“ 9600,n,8,1”,与计算机程序一致。
2)在PLC程序要设置为允许计算机连接。
3)将程序下载到PLC后,还要将PLC断电再接通电,通信设置才生效。
3.结束语:
运用计算机的语言与计算机硬件控制、计算机与PLC通信等技术,实现计算机远程监控系统的设计,本文介绍的控制系统可作为一个控制模块嵌入到