精邦LIMS成功与西门子PLC通讯 达到仪器设备集成目的
C#与西门子PLC通讯
S7Net
PLC设置
C#程序
S7Net
PLC在工业自动化领域是常用的控制器,一般在和上位机界面通讯时,经常使用组态软件。以西门子PLC为例,上位机可以使用西门子的WINCC。但是,当面对需求比较多样化的需求时,WINCC难以胜任。而且,作为量产的标准化产品,WINCC授权的费用一笔不小的成本。 S7.Net .dll 是应用在 .NET平台上和西门子PLC通讯的一个动态库。大家可以到GitHub中直接去下载,或者直接搜索“S7.Net .dll”也可以找到下载的链接。文章最后也会给出链接。
目前该动态库支持的西门子PLC类型有S7-200,S7-300,S7-400,S7-1200,S7-1500,基本涵盖了西门子所有的PLC产品。该库可以直接读写PLC中的全局DB块,作为通讯的接口。 下面对需要的一些函数以及数据类型做简单说明。
构造函数:cpu 为枚举类型,代表PLC类型。ip 为PLC地址,需要和PLC组态的地址一致,同时,和通讯的PC IP地址应在同一局域网段。rack 为导轨号,slot 为插槽号,均可在TIA PLC 硬件组态处获得。
如下图,ip=“192.168.0.5”。
如下图,rack为0,slot为1。
该类库提供了两个用于PLC连接的函数,区别在于第二个为异步连接,在请求连接的过程中,不会导致线程阻塞。我个人比较喜欢第二种方式。
按位写操作:参数db代表访问的DB块编号,如下图所示UISendInt编号为3,UIReadInt编号为4。
PLC设置
实现外部程序可以访问操作DB块,需要对PLC部分做一些设置。首先对于要读取或者访问的DB块,要将优化的块访问取消,默认为勾选的,选中块右击选择属性。