发表于:2002-02-01 12:50:00
楼主
利用 PC-LonWorks通信板(双口RAM),利用组态软件如InTouch,VB等实现内存高速读取,无需DDE,OPC,LNS等方式也可以实现.
MA2121模块为PC机与Lonworks网络的接口卡,采用内存映像的机制,具有速度快、无需配置的优点。外形尺寸:125×114mm,可应用于普通工控机、IBM兼容机中。
1. PC-LON模块工作环境条件:
环境条件:
工作温度范围:-25℃~+70℃
相对湿度:<98% 55℃
振动:±1.0g
功耗:小于2W
2.结构配置
FLASH存储器容量:32K
RAM存储器容量:20K
信息存储量:4K
连接报文、网络变量数目:隐式寻址62个,显式寻址无限制
3.安装、接线方式:
将模块插入与ISA兼容的槽,安装在相应的机箱中。
模块上的九芯RS-232端子为网络接入端,PIN1,PIN6为一组,PIN5、PIN9为一组,接入网络,接线时无极性,通信电缆采用双绞线电缆,在恶劣环境条件下使用,要求采用带屏蔽层的双绞线。
模块上有网络终端匹配器作为备用,使用终端匹配器时,短接跳线T1、T2,否则断开。用于船舶监控时双绞线电缆表面应加铠装。
接线方式可以为总线型和自由拓扑结构:
总线型连接长度为2700m,超过该长度必须加接MA2123中继器,2700m连线上可以接60个LonWorks控制模块。
双绞线两端应加接终端匹配器。
附录一:一般用户的使用说明
在该卡上有4k的RAM供PC机访问,d800:0~d800:cff为数据区,存储数据采集模块的数据用,一个地址号站占用32个字节,对于采集数据多于32字节的模块,如热电耦模块和32路开关量模块(该系统中一个开关量同样按两个字节算,开路为0xaaa,短路为0x555)应占用两个地址号。如一个系统中有三个模块,MA2103、MA2102、MA2104,MA2103占用一号地址,MA2102占用二号地址,由于MA2102有17路信号,应占用两个地址号,所以MA2104的地址号为四。则MA2103的数据在地址d800:0~d800:1f区,MA2102的数据在地址d800:20~d800:5f区,MA2104的数据在地址d800:60~d800:7f区。
D800:d00开始的240个字节供判断正常配置模块与网络的连接情况用。一个地址号占两个字节,正常连接时为0xaaaa,否则为0x5555,如上述三个节点正常连接在网络上时,d800:d00开始的数据情况为0x5555(一号地址MA2103)0x5555(二号地址MA2102)0xaaaa(三号地址)0x5555(四号地址MA2104)。若MA2104与网络断开或不正常工作,d800:d00开始的数据情况为0x5555(一号地址MA2103)0x5555(二号地址MA2102)0xaaaa(三号地址)0xaaaa(四号地址MA2104)。
D800:df0开始的内存供网络管理用不给用户使用。
另外,该数据区的数据均是低字节在前,高字节在后。
附录二:开发用户的使用说明
在该卡上有4k的RAM供PC机和3150所共有,该内存地址在3150侧为d000~dfff,在PC机侧为d800:0~d800:fff。
如在3150的d000内写入,1,2,3,4,5,6,7,8,…在PC机侧的d800:0处即可读出,1,2,3,4,5,6,7,8,…。反之亦然。
有关Neuron C的地址定位问题。若想向把无符号短整型变量I的数据写入d000,首先要定义一个指针P指向d000,typedef unsigned int *L; L p=(L)0xd000;。在应用程序的适当位置,只需做如下操作即可把I的数据定为在d000,memcpy(p,&I,1)。若把d000处的数据赋值给变量I, 则执行下列函数:memcpy(&I,p,1)。
有关PC机读写物理内存的方式,根据所使用的编程语言,有不同的方式,具体请参阅相关资料。
Neuron C读写物理内存例子:
typedef unsigned int *L;
L p=(L)0xd000;
Unsigned int I;
When(读物理内存)
{
memcpy(&I ,p ,1)/*把d000的数据赋值给I*/
memcpy(&I,p+7, 1)/*把d007的数据赋值给I*/
}
When(写物理内存)
{
memcpy(p,&I,1)/*把I的数据定位到d000*/
memcpy(p+7,&I,1) /*把I的数据定位到d007*/
}
详细可以访问 www.loncontrol.com 咨询