西门子模块总代理商-酒泉地区
.
西门子PLC是一种应用于企业的计算机,全名为可编程控制器。 在西门子PLC投入运行时,其工作过程一般分为三个阶段,即输入采样、用户程序执行和输出刷新三个阶段。完成上述三个阶段称作一个扫描周期。在整个运行期间,西门子PLC的CPU以一定的扫描速度重复执行上述三个阶段。
中央处理器是西门子PLC正常工作的神经中枢,当PLC投入运行时,首先它以扫描的方式接收现场各输入装置的状态和数据,并分别存入I/O映象区,然后从用户程序存储器中逐条读取用户程序,经过命令解释后按指令的规定执行逻辑或算数运算的结果送入I/O映象区或数据寄存器内。等所有的用户程序执行完毕之后,后将I/O映象区的各输出状态或输出寄存器内的数据传送到相应的输出装置,如此循环运行,直到停止运行。
其次是存储器。存储器是存放系统软件的称之为系统程序存储器;存放应用程序的存储器则被我们成为是用户成粗存储器。
其三是电源。当PLC投入运行后,其工作过程一般分为三个阶段,即输入采样、用户程序执行和输出刷新三个阶段。完成上述三个阶段称作一个扫描周期。
PROFINET IO 模式下的 DQ 模块(DQ 32×24VDC/0.5A HF)组态如
图 2-85 所示。组态为 4×8 通道时,模块通道应分为多个子模块,如图 2-
86 所示。在共享设备中使用该子模块时,可将子模块分配给不同的 IO 控制
器。与 1×32 通道模块组态不同,这 4 个子模块都可任意指定起始地址。用
户也可指定子模块中相关「值状态」的地址。
技术规范
一般信息 | |||
产品类型标志 | F1 型 | H0 型,D-SUB | |
产品功能 | |||
| 是; 资产数据 | 是; 资产数据 | |
电源电压 | |||
额定值 (DC) | 24 V | ||
电源导线的外部保险装置 | 是; 24 V DC / 10 A(具有脱扣特性 B 或 C 的 LS 开关,设备保护熔断器以充足的分断能力快速反应,电子保险丝,带相应类型为 B 或 C 的特性曲线) | ||
电流承载能力 | |||
高可达 70 °C,大值 | 10 A | ||
用于过程端子,大值 | 30 mA | 2 A | |
硬件扩展 | |||
自动编码 | 是 | ||
| 机械互锁 | ||
温度传感器 | 否 | ||
j建立电位组 | |||
| 否; 无电源总线 | 否; 无电源总线 | |
插槽 | |||
| 2; 输入输出冗余接口 | 1 |
组态为 1×32 通道 DI 32×24VDC BA MSI 的地址空间
在组态 1×32 通道模块(模块内部共享输入,MSI)时,可将模块的通
道 0~31 复制到多 4 个子模块中,如图 2-78 所示。在不同的子模块中,
通道 0~31 将具有相同的输入值。在共享设备中使用该子模块时,可将该
子模块分配给多 4 个 IO 控制器。每个 IO 控制器都对这些通道具有读访
问权限。
图 2-78 MSI 模块副本设置
一旦选择了 MSI,则「值状态」自动选用,如图 2-79 所示。图 2-80
为组态后的 MSI 地址,共有 3 个副本,且自身和副本都占 8 个字节。
值状态的含义取决于所在的子模块。对于第 1 个子模块(基本子模块),
将不考虑值状态。对于第 2 个 ~ 第 4 个子模块(MSI 子模块),值状态为
0,表示值不正确或基本子模块尚未组态(未就绪)。图 2-81~ 图 2-84 分
别显示了基本子模块、MSI_1 子模块、MSI_2 子模块、MSI_3 子模块的地
址空间分配。在实际应用过程中,某些时候可能会采用VB/DELPHI/VC等语言,自主编程与西门子PLC进行通讯,这类帖子、论文在网上都可以找到,在此总结一下。
1、Prodave通讯
Prodave是西门子提供的一个软件包,为语言编程和plc通讯提供接口。
通讯接口:MPI
因为MPI口是每块cpu的编程口,所以plc不需要另外添加通讯模块,这个方案就比较经济,而且prodave软件包里面附带了example和详细的说明,用起来应该比较简单和方便(本人只匆匆看过文档,没有实验过)。这方面的资料在百度上很多。当然,mpi的速度是有限的,如果采用普通的pc adapter连接pc和plc,高速度也就38.4kbps,我不知道prodave能否支持mpi卡(5611之类的话),如果可以的话速度可以达到187.5kbps。2、串行通讯
看到过一些论文,采用串行通讯的方法实现pc和plc通讯。这种情况存在几点要求:
a、需要为plc添加一块串行通讯模块,比如300的话就需要cp340或者cp341(前者便宜些);
b、plc里面需要对串行通讯进行编程,其实也就是接收报文和发送报文,调用fb2/fb3(cp340的话)。
c、串行通讯的速度是有目共睹的,而且cp340或者cp341的数据吞吐量也是有限的,即报文长度是有限制的,因此个人认为通讯数据量大的话采用串行通讯就不合适了。
d、报文格式的话就比较自由,但是也应当合理,我虽然没有具体实验过,但是个人认为可以参考modbus的报文结构来编程,甚至就采用modbus的规范,不过这样的话要求编程者对pc和plc侧的modbus编程都要熟悉。
3、OPC
Opc是这些年来很流行的东西,其实我很讨厌opc的安全认证的设定。不过采用opc编程来访问plc真的是一件非常轻松惬意的事情。你需要做的就是了解opc的结构和编程,尤其是采用vb来编写opc简直是件傻瓜化的工作当然也牺牲了很多。
前面我实验了用vb通过opc(以太网)来访问300,包括用西门子的simaticnet提供的opc接口和第三方的kepserver。
采用opc接口编程的优点:通讯速度快,编程简单。
4、以太网编程
采用以太网编程访问plc,其实又可以分为两种:
一种是socket接口,需要在plc里面编程进行收/发,大概是fc5/fc6吧,印象不深了,当然plc里面要定义一个connection,填好地址、端口号之类的信息,这个对于熟悉西门子工业通讯的人是很easy的事情。Pc侧采用socket接口编程,简单的就是vb里面的wisock控件,当然这掩盖了很多细节。Socket编程本来就是一门艺术,讲究说学逗唱:)
这个方法的优点应该是pc侧编程稍微简单点(相对于后一种),而且可以不局限于bbbbbbs平台,因为socket接口被诸如unix支持的更好。
第二种是采用西门子的sapi接口函数,这样plc里面不需要过多的编程了,当然pc侧的编程难度就比较高了,ms只能用c来写,所以我望而却步鸟。看过相关帖子和论文,有高人在项目里面就这么干的,而且数据量很大,看来高人很多很多啊,向他们致敬!关于sapi的资料其实都在simaticnet软件光盘里面,有兴趣的可以去找来看看。
联系方式
- 地址:上海杨浦 上海市松江区广富林路4855弄88号3楼
- 邮编:200093
- 电话:15821971992
- 经理:聂聪
- 手机:15821971992
- 传真:021-33556143
- QQ:2724917714
- Email:2724917714@qq.com