• «
  • 1
  • 2
  • »
  • Pages: 1/2     Go
daizhicun
级别: 探索解密
精华主题: 0
发帖数量: 6 个
工控威望: 137 点
下载积分: 586 分
在线时间: 3(小时)
注册时间: 2013-07-03
最后登录: 2013-08-13
查看daizhicun的 主题 / 回贴
楼主  发表于: 2013-07-03 21:48
  
现在和西门子plc通讯感觉主要还是用OPC,
但是我不太喜欢OPC,
虽然它封装了上位和plc的沟通方式,做项目开发比较方便;但毕竟隔了一层;OPC内部同步数据点一次一般也需要500毫秒;
对于高速分拣等需要快速响应的,我想还是直接上下位沟通,绕过OPC;

我看了 西门子有 BCNetS7 协议规范 ,还没细研究;不知道有没有志同道合者一起研究;
而且网上介绍的资料也不多




不过用三菱的PLC却详细的介绍了和上位通讯的内部协议:MC协议;


比如读取D点,M点,X点,Y点的指令是:

//MC协议读取通讯点的指令:ENQ_ADDR--读取首地址  ENQ_LEN--读取长度  POINT_TYPE--通讯点类型(D,M,X,Y) ; ArrSend--返回指令数组
procedure GET_READ_ENQ_BYTES(ENQ_ADDR, ENQ_LEN: Integer;
  POINT_TYPE: string; var ArrSend: TArray < Byte > );
begin
  SetLength(ArrSend, 21);
  //辅助HEAD
  ArrSend[0] := $50;
  ArrSend[1] := $0;
  //QHEAD
  ArrSend[2] := $0; //网络编号
  ArrSend[3] := $FF; //plc编号
  ArrSend[4] := $FF; //请求目标模块低位
  ArrSend[5] := $3; //请求目标模块高位
  ArrSend[6] := $0; //请求目标模块站编号
  ArrSend[7] := $C; //请求数据长度低位
  ArrSend[8] := $0; //请求数据长度高位
  ArrSend[9] := $10; //cpu监视定时器低位
  ArrSend[10] := $0; //cpu监视定时器高位
  //文字部
    //命令
  ArrSend[11] := $1;
  ArrSend[12] := $4;
  //子命令(0000-字读取 0001-位读取)
  ArrSend[13] := $0;
  ArrSend[14] := $0;
  //开始地址
  ArrSend[15] := ENQ_ADDR;
  ArrSend[16] := ENQ_ADDR shr 8;
  ArrSend[17] := ENQ_ADDR shr 16; ;
  //设备编码:
  case POINT_TYPE[1] of
    'D':
      ArrSend[18] := $A8;
    'M':
      ArrSend[18] := $90;
    'X':
      ArrSend[18] := $9C;
    'Y':
      ArrSend[18] := $9D;
  end;
  //信号数量
  ArrSend[19] := ENQ_LEN;
  ArrSend[20] := ENQ_LEN shr 8;
end;


感觉和上位通讯这块,虽然西门子方式很多,但都偏向于用封装好的东西,比如prodave.dll ,还有及时最广泛的OPC;

不过,我感觉还是绿色的,最直接不借助任何第三方的东西最好; 直接上下位按照标准协议通过socket沟通;

一般在三菱Q系列的plc里,通讯端口设置8000,而且可以开多个通讯端口; 做多个sokcet服务端的监听;

西门子这方便我想应该更强吧。




beichen
级别: 家园常客
精华主题: 0
发帖数量: 158 个
工控威望: 979 点
下载积分: 1681 分
在线时间: 158(小时)
注册时间: 2013-06-21
最后登录: 2017-09-14
查看beichen的 主题 / 回贴
1楼  发表于: 2013-07-04 08:46
BCNet-S7协议时无锡北辰开发的协议,针对西门子S7-200/300/400。
上位机跟西门子PLC通讯可以选择直连或者OPC通讯,也可用高级语言调用。

只要安装北辰的驱动,就可以在SET PG/PC里选到
BCNet-S7(PPI)、BCNet-S7(MPI)、BCNet-S7(PROFIBUS)。

以上都属于直连,BCNet还支持的直连包括
Modbus TCP、TCP/IP。

另外,还可以选择BCNet-S7 OPC进行通讯,在联网项目和生产管理系统构建是最常用的一种方法。
但如果开发者具备高级语言的基础,也可调用北辰的BCNet-S7函数来做,如VB、VC、C#等。
无锡市北辰自动化技术有限公司
BCNet-S7  技术交流群:229195162
0510-85166823  bcnets7@163.com
www.beichen-automation.com
淘宝:http://shop113462796.taobao.com/
daizhicun
级别: 探索解密
精华主题: 0
发帖数量: 6 个
工控威望: 137 点
下载积分: 586 分
在线时间: 3(小时)
注册时间: 2013-07-03
最后登录: 2013-08-13
查看daizhicun的 主题 / 回贴
2楼  发表于: 2013-07-06 20:09
如果用无锡的那个东西,毕竟还是需要他的模块;
费用先不管,多一个模块麻烦;

直接和plc 用socket通讯应该是可以的;
而且我人为用非阻塞的方式直接通讯,效率肯定是最高的了;
zsm9614501
级别: 略有小成
精华主题: 0
发帖数量: 97 个
工控威望: 220 点
下载积分: 10550 分
在线时间: 128(小时)
注册时间: 2012-03-31
最后登录: 2024-09-22
查看zsm9614501的 主题 / 回贴
3楼  发表于: 2013-07-07 07:32
请问楼主及大侠:正版WINCC大约多少钱一套,1000点左右的,开公司正规发票的,
每天好心情
lubin5282
级别: 探索解密
精华主题: 0
发帖数量: 71 个
工控威望: 164 点
下载积分: 794 分
在线时间: 184(小时)
注册时间: 2010-05-04
最后登录: 2024-09-19
查看lubin5282的 主题 / 回贴
4楼  发表于: 2013-07-07 08:11
破解版网上不是很多
riiynicel
sanziyoudu
级别: 略有小成
精华主题: 0
发帖数量: 270 个
工控威望: 380 点
下载积分: 3947 分
在线时间: 350(小时)
注册时间: 2010-09-15
最后登录: 2022-03-04
查看riiynicel的 主题 / 回贴
5楼  发表于: 2013-07-07 19:47
可以利用PPI协议和上位机通讯,硬件只需要USB-485 或编程线就可以。
http://item.taobao.com/item.htm?spm=686.1000925.1000774.26.vVuv7X&id=20807039215
    
beichen
级别: 家园常客
精华主题: 0
发帖数量: 158 个
工控威望: 979 点
下载积分: 1681 分
在线时间: 158(小时)
注册时间: 2013-06-21
最后登录: 2017-09-14
查看beichen的 主题 / 回贴
6楼  发表于: 2013-07-08 08:47
引用
引用第2楼daizhicun于2013-07-06 20:09发表的  :
如果用无锡的那个东西,毕竟还是需要他的模块;
费用先不管,多一个模块麻烦;

直接和plc 用socket通讯应该是可以的;
而且我人为用非阻塞的方式直接通讯,效率肯定是最高的了;


若用西门子的以太网模块,不也需要西门子的硬件吗?
若MPI/PROFIBUS口直接通讯,也需要西门子的适配器或板卡,那就谈不上SOCKET通讯了。
无锡市北辰自动化技术有限公司
BCNet-S7  技术交流群:229195162
0510-85166823  bcnets7@163.com
www.beichen-automation.com
淘宝:http://shop113462796.taobao.com/
daizhicun
级别: 探索解密
精华主题: 0
发帖数量: 6 个
工控威望: 137 点
下载积分: 586 分
在线时间: 3(小时)
注册时间: 2013-07-03
最后登录: 2013-08-13
查看daizhicun的 主题 / 回贴
7楼  发表于: 2013-07-12 09:43
做为做上位系统的开发人员,
对上位的通讯的模式一直整不明白;
根据资料,西门子的通讯方式太多; 眼花缭乱的,
然而,我其实只需要最原始的那种:TCP/IP ; (串口就不考虑了);
需要plc提供的仅仅是:ip地址和通讯端口号;
不要整那些prodave,mpi,opc ,probus等 乱七八糟的,通讯效率低下不说,还要在电脑上安装这样那样的西门子的组件,受限于人,烦也烦死了;
可能三菱做多了,还是习惯三菱的MC那样,
比如三菱PLC的ip地址是:192.168.1.5;监听的通讯端口号是:8000;
那么读取D4000这个点的方法就是:
上位电脑通过ip:192.168.1.5 端口 8000和PLC建立socket(套接字)连接:
然后上位电脑给plc发送16进制数据:
50 00 00 FF FF 03 00 0C 00 10 00 01 04 00 00 A0 0F 00 A8 01 00
大概过了10毫秒,PLC给上位电脑反馈
RX:D0 00 00 FF FF 03 00 04 00 00 00 00 00
这样上位就知道了D4000点的值;
方法很简单,如果要监控D4000点的值的变化;那么就1秒或者更快的周期通讯一次;
摸索了很久,就没发现西门子有三菱这边方便直接的方式;
[ 此帖被daizhicun在2013-07-12 09:59重新编辑 ]
zylew
级别: 探索解密
精华主题: 0
发帖数量: 18 个
工控威望: 137 点
下载积分: 693 分
在线时间: 18(小时)
注册时间: 2012-02-21
最后登录: 2022-11-19
查看zylew的 主题 / 回贴
8楼  发表于: 2013-07-22 13:29
daizhicun
级别: 探索解密
精华主题: 0
发帖数量: 6 个
工控威望: 137 点
下载积分: 586 分
在线时间: 3(小时)
注册时间: 2013-07-03
最后登录: 2013-08-13
查看daizhicun的 主题 / 回贴
9楼  发表于: 2013-08-13 09:10
要的就是这种效果,可惜的是,这种方式只是串口的,

都这个年代了,谁还用串口啊,速度慢,不稳定,不像tcp/ip那样有3次握手;
而且布线也麻烦;

所以如果能有网线的通讯方式,就好了。
mhbxfys
趁年轻,走遍中国!
级别: 网络英雄
精华主题: 0
发帖数量: 674 个
工控威望: 7026 点
下载积分: 6625 分
在线时间: 228(小时)
注册时间: 2012-01-04
最后登录: 2024-09-27
查看mhbxfys的 主题 / 回贴
10楼  发表于: 2013-08-13 10:17
引用
引用第3楼zsm9614501于2013-07-07 07:32发表的  :
请问楼主及大侠:正版WINCC大约多少钱一套,1000点左右的,开公司正规发票的,

看你要什么版本的,以及选择什么安装包及授权
感谢每位朋友! 承接plc柜、电气柜设计、定制。触摸屏组态、调试。 蓝海华腾变频器代理,变频器维修!!!   QQ:545636511
beichen
级别: 家园常客
精华主题: 0
发帖数量: 158 个
工控威望: 979 点
下载积分: 1681 分
在线时间: 158(小时)
注册时间: 2013-06-21
最后登录: 2017-09-14
查看beichen的 主题 / 回贴
11楼  发表于: 2013-08-13 14:14
引用
引用第7楼daizhicun于2013-07-12 09:43发表的  :
做为做上位系统的开发人员,
对上位的通讯的模式一直整不明白;
根据资料,西门子的通讯方式太多; 眼花缭乱的,
然而,我其实只需要最原始的那种:TCP/IP ; (串口就不考虑了);
需要plc提供的仅仅是:ip地址和通讯端口号;
.......

三菱的TCP/IP,需要在PLC里面编写应对程序吗?

西门子的你一定要走TCP/IP也可以,但是PLC里面肯定要自己编写应答程序的,不然PLC不认你发送过去的请求命令,
没有这个标准的命令格式的,

当前,你也行只能试试BCNetS7协议,socket应该比较容易。
BCNetS7_Socket.rar (125 K) 下载次数:9
无锡市北辰自动化技术有限公司
BCNet-S7  技术交流群:229195162
0510-85166823  bcnets7@163.com
www.beichen-automation.com
淘宝:http://shop113462796.taobao.com/
  • «
  • 1
  • 2
  • »
  • Pages: 1/2     Go