ISD:信息交换接口模块
Index
1- 介绍
ISD模块属于Contatto系统范畴,它的意思是Data Exchange Interface,即信息交换模块,它的作用使多个MCP之间能够进行信息交换,MCP和ISD通过RS485连接成一个网络。ISD的编程也是通过MCPtools软件写简单的程序等式来实现的。
MCP之间通过ISD的信息交换是使用虚拟点,ISD有如下的功能:
1. 它能够在内部RAM区创建所有连接的MCP(最多31个)的虚拟点镜像。
2. 按照顺序执行程序等式,如果某个程序等式的结果和先前的结果不一样,则其就在缓存中改变虚拟点,就会向对应得MCP发送新的状态。
3. 所有的信息是通过缓存发送到MCP的
ISD有2个独立的串口:RS485用于连接MCP;另一个是RS232口,用于连接PC机(用于编程或监控)。
由于MCP控制器是通过RS485口相连的,所以必须使用MCP plus,因为它具有RS485口。下文所说的MCP就是指MCP plus。每个MCP在RS485网络中具有不同的地址。
每个MCP控制器控制自己的总线,ISD接口能够在MCP之间传递虚拟点的状态。举例,能够控制一盏灯通过使用MCP2网络中的输出,使用MCP1网络中的输入。
最多可以连31个MCP控制器在同一个网络当中,ISD接口读取各个MCP模块的虚拟点的时间将随着MCP模块数量的增加而有所增加,这在RS485网络中是很正常的。具体的延迟时间和很多因素有关,难以计算,大致的时间计算公式如下:
Tr = (连接的MCP的数量) x 0.5 seconds
此公式的在ISD和MCP之间通信速率为19200 Baud时有效,并且监视器没有通过RS232连接在总线上(查看上面的连接图)。事实上,如果监视器挂接在总线上,则反应时间将会增大一点。
1.1 一般说明
Contatto家族里的ISD通信模块,在其RAM中,有1000个虚拟点,另加每个连接的MCP的1000个虚拟点的镜像。如上所说,也就是ISD只能交换MCP之间的虚拟点的信息。为了区分MCP之间和ISD的虚拟点,我们使用如下标识:
Vm.n
这里m就是MCP的地址,n是虚拟点。如果m=0,则表示ISD的虚拟点。
u 虚拟点V0.1到V0.1000是ISD本身的虚拟点。
u 虚拟点V1.1到V1.1000时MCP地址为1的虚拟点的镜像。
u 虚拟点V2.1到V2.1000时MCP地址为2的虚拟点的镜像。
u ……
u 虚拟点Vn.1到Vn.1000时MCP地址为n的虚拟点的镜像(n小于32)。
ISD预留一些点作特殊功用。
u V0.1000:只允许读;当ISD探测到一个或多个MCP出错的时候,此虚拟点激活,且其状态可在MCP的LED灯 MCP.F上显示。
u V0.999:可读/写点; 这个点状态控制着ISD内置的继电器,更确切的说,当V0.999为0的时候,继电器活动;当V0.999为1的时候,继电器不活动。
u V0.998:只读点;在模块上电程序初始化或在重新编程后,该点被激活。
u V0.997:只读点;该点的状态每0.5秒改变一次。
u V0.996:保留
u V0.995:保留
u V0.994:保留
u V0.993:保留
2- 等式:类型和标识符
只有逻辑等式才能下载到ISD模块里。通过虚拟点(作为输入)的逻辑等式控制虚拟点(作为输出)的状态。一个等式中包含的输入点量是没有限制的。一般ISD里的逻辑等式表示如下:
Vm.n = f ( Vj.k )
这里Vm.n是MCP地址为m的虚拟点n,f ( Vj.k )是输入点的联合等式。
用作输出的虚拟点的功能实现,可以通过使用逻辑的 与(符号&) 和 或(符号|)来联合一个或多个输入虚拟点,也可以在输入点前加 非 (符号!)。与的操作优先级高于或的操作优先级,但要注意的是优先级可以通过使用括号()来改变。
为避免混淆,一般遵循以下规则:
u 在MCP中作为输入使用的虚拟点,在ISD中作为输出使用。
u 在MCP中作为输出使用的虚拟点,在ISD中作为输入使用。
例子1:
此配置具有两个MCP控制器,MCP1和MCP2,MCP1的一个输出O1.1由MCP2的I1.1来控制,两个MCP通过ISD连在RS485网络上。
MCP2中的程序等式为:
ADDRESS=2 //给MCP分配地址为2
V1= I1.1 // V1由I1.1来控制
ISD中的程序等式为:
V1.1=V2.1 //MCP1中的虚拟点1由MCP2中的虚拟点1来控制
MCP1中的程序等式为:
ADDRESS=1 //给MCP分配地址为1
O1.1= V1 //O1.1的状态由V1 来控制,即通过ISD,由MCP2中的I1.1来控制。
其实现过程,可参见下图:
例子2:
此配置具有两个MCP控制器,MCP1和MCP2,MCP1的一个输出O1.1由MCP2的I1.1通过返回式按钮来触发控制,两个MCP通过ISD连在RS485网络上。
这个例子和例子1有点相似,因此有人想只是在MCP1中修改等式就可以,把O1.1 = V1 改为O1.1 = TV1;这是正确的,但是由于RS485网络的反应时间可能相当长,有可能丢失短暂的触发信号。所以一般最好的解决方法是T加在实际输入点前,即I1.1前,而不是V1前。
MCP2中的程序等式为:
ADDRESS=2 //给MCP分配地址为2
V1= T I1.1 // V1由I1.1来触发控制
ISD中的程序等式为:
V1.1=V2.1 //MCP1中的虚拟点1由MCP2中的虚拟点1来控制
MCP1中的程序等式为:
ADDRESS=1 //给MCP分配地址为1
O1.1= V1 //O1.1的状态由V1 来控制,即通过ISD,由MCP2中的I1.1来控制。
例子3:
此配置具有两个MCP控制器,MCP1和MCP2,MCP1的一个输出O1.1在由MCP2的I1.1闭合的情况下持续闪烁。两个MCP通过ISD连在RS485网络上。最好使用MCP的V997来控制闪烁输出,程序等式如下:
MCP2中的程序等式为:
ADDRESS=2 //给MCP分配地址为2
V1= I1.1 // V1由I1.1来控制
ISD中的程序等式为:
V1.1=V2.1 //MCP1中的虚拟点1由MCP2中的虚拟点1来控制
MCP1中的程序等式为:
ADDRESS=1 //给MCP分配地址为1
O1.1= V1&V997 //O1.1的状态当V1激活的时候闪烁。
例子4:
此配置具有两个MCP控制器,MCP1和MCP2,以及一个ISD接口模块。ISD的内置继电器在如下异常的情况下将会失效:
u 至少MCP1网络中1个模块总线错误
u MCP1总线短路
u 至少MCP2网络中1个模块总线错误
u MCP2总线短路
u ISD与至少1个MCP模块通信错误
ISD中的程序等式为:
V0.999=V0.1000|V1.1000|V2.1000|V1.999|V2.999
事实上:
u V0.999是ISD控制内置继电器的虚拟点
u V0.1000在RS485网络中与至少1个MCP通信错误的情况下激活
u V1.1000和V2.1000是对应得MCP网络中,当有模块出现错误的时候,该点被激活
u V1.999和V2.999是对应得MCP网络中,当有总总线出现错误的时候,该点被激活
任一种警报的虚拟点的激活都会激活V0.999,也就是会使ISD内部的继电器失效,警报发生器(如汽笛等)必须连接在常闭的继电器上。即使是在电源故障的情况下都会激活警报器。
例子5:
此配置具有三个MCP控制器,MCP1,MCP2和MCP3,以及一个ISD接口模块。MCP3的输出O7.3在MCP1的输入I38.4闭合,并且MCP2输入I46.3打开的时候激活。此例的程序等式如下:
MCP1中的程序等式为:
ADDRESS=1 //给MCP分配地址为1
V51= I38.4 // V51由I38.4来控制
MCP2中的程序等式为:
ADDRESS=2 //给MCP分配地址为2
V87= I46.3 //V87的状态由I46.3
ISD中的程序等式为:
V3.1=V1.51 & !V2.87 //这里输入部分的虚拟点等价于I38.4和I46.3
MCP3中的程序等式:
ADDRESS = 3 //给MCP分配地址为3
O7.3 = V1 //O7.1由V1来控制
3- 等式书写
等式书写是ISD编程的第一步。等式必须依照前面章节介绍的语法结构来书写。
用MCPTOOLS软件来编写等式;此软件与MCP模块一起由DUEMMEGI提供。
MCPTOOLS工作在个人计算机WINDOWS操作环境下,且允许程序的简单书写和系统配置。
MCPTOOLS一般包括:
l 编写程序的文本编辑器
l 可将ASCII文件转换成二进制文件的编译器。
l 可校验程序的仿真器。
l 可将程序从PC传输到ISD
l 配置的输入输出模块的状态显示图。
包含等式的文件为ASCII格式,文件扩展名必须为.EQU;例如:
filename.EQU
这里filename为程序文件的名称,可以为WINDOWS下任何允许的名字。扩展名.EQU是必须的,因为MCP程序的一系列步骤(编译和传输)要求源程序必须为此扩展名。
ISD模块程序包含3个连续步骤:
1.filename.EQU文件的建立(或编辑)
2.filename.EQU文件的编译,这是将ASCII文件转化为适合ISD存储器格式的filename.BIN文件。
3.将filename.BIN文件下载到ISD存储器。
假如在步骤2发现语法错误,则错误的语法,连同错误类型的信息和错误发生的行数,将被编译器说明。
3.1 等式书写规范
每个等式都必须按照相应的语法来书写。
以下规则必须遵守:
1.空格和TAB字符没有意义,将被编译器忽略,但是为了程序的可读性,等式项间的一些空格的使用被推荐。
2.使用符号“”可以使等式分散为多行。
3.等式在一行结尾处结束(假如没有“”符号说明)
4.“//”符号(双斜线)表明在本行结束前,接下去的字为注释,且他们将被编译器忽略。注释可增强程序的可读性。强烈推荐使用注释来描述程序中的等式。
5.在等式书写中大小写字母都可以使用。
编写和编译程序不需要将ISD模块连接到PC上。
3.2 等式编译
编译为ISD程序处理的第二步。包含等式的文件(.EQU扩展名)必须经由MCPTOOLS专门的菜单项编译。
编译器处理编写的等式,检查语法和前后一致性,警告任何存在的错误,且将数据存储在一个名字相同,扩展名为.BIN而不是.EQU的二进制文件。二进制文件为不可印刷格式,但它可以传送到ISD储存器。
在编译过程中,假如错误发生,这些错误将显示在PC上,且程序继续检查所有的等式但不产生二进制文件。
编译器同样也报告警告:这意味着没有错误发生,但在下载到ISD存储器前有一些地方需要核实;即使有警告信息,也会建立二进制文件。
3.3 将程序下载到ISD存储器
ISD程序处理的最后一步为将二进制文件传送到ISD的闪存中,这个二进制文件包含系统配置和等式代码。
下载由MCPTOOLS固有的菜单项实现,通过PC的RS232口连接到ISD的串口。
程序的下载要求ISD模块存在且通过合适的线缆连接到PC。
注意:ISD出厂波特率为19200;假如需要一个较低速的,可以设置内部跳线或ISD模块的微型开关选择器。
4 配置
4.1 连接
ISD模块提供一个连接到系统总线的5孔可移动式终端接口和一个内部连接到继电器用作系统错误(模块错误,总线错误等等)信号的3孔可移动式终端接口。这个继电器通常为激活的,当错误发生时,继电器无效;这样即使在ISD模块电源错误时,也会发生系统异常警报。继电器的复位是自动的,因为当异常消失时,继电器将恢复到它的正常状态(激活)。
由于刚刚描述的运行模式,可选错误指示器(闪光灯,警报器或其他)得连接到继电器的常闭触点;触点功耗为5A @ 250Vac。
4.3波特率选择
出厂的默认设置时19200,如果需要更改,可以获得如下的波特率:
u 19200 Baud
u 9600 Baud
u 4800 Baud
u 2400 Baud
掀开模块的表面板,通过跳线来选择需要的波特率。
注意:RS232口和RS485口的波特率是一样的。