工控行业的小伙伴们都知道以前在中低端PLC市场西门子有S7-200系列产品,但是细心的你也许早就发现,S7-200系列PLC在组态编程上都与S7-300/400系列有很大的不同。 S7-300/400系列PLC用Step7(或博途)组态和编程,而S7-200用Step7 Micro/Win组态和编程,这几乎就是一个全新的平台,对于Step7很熟悉的人也需要从新开始学习。同样是西门子的产品,差别怎么就这么大呢? 这是因为S7-200系列PLC是西门子收购了一家美国公司开发的产品,从S7-200 的编程模式可以看到一些美日式PLC的影子。虽然西门子在中高端PLC市场做的风生水起,但是没有自己的中低端PLC产品一直是西门子的一个心病。 终于,S7-1200系列PLC面世了。 与S7-200系列不同,S7-1200是纯德国血统,可以用西门子的通用软件平台博途(TIA)组态和编程。 S7-1200支持经典的编程语言:梯形图(LADDER)和方框图(FDB),同时还支持SCL,熟悉计算机高级语言的人可以很快上手。 S7-1200支持布尔量,字节,字,整形,双字,日期时间类型,用户自定义类型等数据类型,很少见到一个中低端的PLC支持这么多数据类型; S7-1200支持PID调节,集成HMI显示,集成ProfiNet网络,支持Profibus-DP网络,支持第三方通信。还有一点很重要,颜值很高,如下图: S7-1200系列PLC性价比高,完全能胜任很多中小型的生产线,个人认为将在中小规模的自动化市场有不错的应用前景。 S7-1200可以通过CM(Communication Module)1241和CB(Communication Board)来进行串口的通信。CM只能安装在CPU的左侧或者另一个CM的左侧,S7-1200最多支持三个CM模块,加上CB模板,总共最多支持四个通信接口。 今天我们先来聊聊S7-1200的串口通信模块CM1241。 西门子根据电气接口的不同,把CM1241分成了三种产品,CM1241-RS232,CM1241-RS485,CM1241-RS422\485。 CM1241的端口都是隔离的;均由CPU进行供电,不需要提供外部电源;可以通过LED查看通信的发送和接收;与以往的模块的不同之处是它增加了一个诊断LED灯,可以从诊断组态的状态,其含义如下: 红闪:CPU没有找到CM模块,可能CPU还未上电; 绿闪:CPU找到了CM模块,但尚未组态; 绿常亮:CPU找到了CM模块,并且组态正确; CM1241-RS232模块外貌如下图: CM1241-RS232模块的电气接口(公头)如下:
关于这些接口的含义及如何连线,如果你有不清楚的地方,请看我前面发表的文章; 下面以CM1241-RS232为例来谈谈硬件组态和编程: 在硬件目录-通信模块'Communication modules'-点对点'point to point'下有3中模块可以选择,CM1241(RS232)\CM1241(RS485)\CM1241(RS422\485),如下图:
设置模块的属性参数: 点击'属性(property)',选择'RS232接口(Interface)'-'端口配置(port config)',在这里,可以配置波特率、数据位、停止位、校验位及流控制等参数:
输入参数: REQ:请求发送数据,上升沿; PORT:硬件组态中模块的ID BUFFER:发送缓冲区的地址 LENGTH:发送数据的长度 PTRCL:协议是西门子专用的还是通用的 输出参数: DONE:发送成功且没有错误 ERROR:发送失败,有错误发生 STATUS:如果发送有错误,存放错误代码 以上介绍的是数据的发送,接下来我们看看数据是如何接收的: 添加接收数据使用功能块RCV_PTP,会出现下列背景DB对话框,选择添加:
定义好接收数据缓存区后,就可以调用接收块接收数据了。RCV_PTP的参数定义如下: 输入参数: EN_R:允许接收数据 PORT:硬件组态中模块的ID BUFFER:接收缓冲区的地址 输出参数: NDR:是否接收到新数据,布尔量 ERROR:接收过程中有错误发生 STATUS:如果有错误发送,存放错误代码 LENGTH:接收缓冲区的数据的长度 到这里我们就把CM1241串口模块给大家介绍完了,如果你在现场实践中遇到了一些其它的问题,欢迎和我们联系,沟通交流。 |
|
来自: 阿明哥哥资料区 > 《68.通讯连接与协议》