郴州西门子以太网6XV1840-2AH10
S是根据RLO状态来置位,SET是将 RLO 状态来置位。
1、S 置位:如果 RLO = 1,则使用置位指令(S),可以将寻址位置位为“1”
例如:
A I0.0
S Q0.0//如果I0.0为1( RLO = 1),则 Q0.0也为1;如果I0.0为0( RLO = 0),则 Q0.0也为0.。
2、SET RLO 置位:使用 RLO 置位(SET)指令,可以将 RLO 的信号状态置为“1”。
例如:
SET//将RLO 置位
=M 0.1//RLO 为1,则M 0.1也为1.编程用上升沿实现比较方便,需要16个上升沿。请教各位上升沿指令怎么编程?用STL怎么实现?哪位大侠可以举个例子?
答:A I 20.0 //本周期脉冲输入状态
AN F20.0 //上一周期取反后的脉冲输入状态
= F20.1 //上升沿状态
A I 20.0 //本周期脉冲输入状态
= F20.0 //存储本周期脉冲输入状态
当脉冲I20.0脉冲高电平信号来到时,F20.1保持了一个机器周期的高电平
1.CP5611与S7的MPI通讯:
A.WinCC,这个不用讲了,驱动内置,直接支持.
B.iFix,iFix自己的IO Driver中没有MPI驱动,可以安装S7A for iFix驱动.
虽然不是GE-Inbbtion公司出品的,但是不收费,而且很好用.
C.Intouch,Intouch的IO Server中没有MPI驱动,应该安装OPC Server.
用西门子SimaticNet.需要Profibus SoftNet-S7授权.
6GK17045CW633AA0 RMB7845.50
5CW63中的63代表版本号V6.3,现在较新的该是5CW64了,因为好多人对订货号
很晕点,所以提一下.以下相同,不再赘述了.
其他厂家的没有内置MPI驱动的软件也类似.比如AB RSView等.
D.Citect,Wizcon,力控,组态王,紫金桥等,驱动内置,直接支持.
其实这些软件很多都是用Prodave写的底层库驱动.
Tips:
A.CP5512和CP5611一样,区别仅仅在于CP5512用于笔记本做现场调试,一般很少
实际长时间用于工程现场而已.
B.MPI方式组网,站点数理论值较大只能是32,但是CP5611较多只能支持8个
MPI连接.每台电脑仅支持1块CP5611卡.
C.如果电脑要通过MPI连接的PLC数量多于8,而小于31,可以换用CP5613卡.
D.CP5611较常用的速率是187.5K.在跟某些机型连接时,可以达到12M.
某些机型是那些呢?是那些MPI/DP口,如400全系列的X1口,31X-2PN的X1口,
318-2DP的X1口,319-3PN的X1口.
当然了,19.2K的速度也是支持的,但是买了CP5611而用19.2K的话,人家会认
为我们脑子有问题,这样还不如买跟PC Adtaper,还能省些银子.
E.用CP5611时,电脑可以有多台,每个CPU能跟多少台电脑进行通讯,取决于该
机型的具体型号,S7-300参数可以在Step7中的硬件\CPU\通讯中有连接资源
的设置.S7-400的应该在硬件\CPU\存储器中有通讯资源的设置.
2.CP5611与S7的Profibus DP通讯:
A.WinCC,一般是在DP链路上走S7协议,驱动内置,直接支持.可连接8个PLC
B.iFix,iFix自己的IO Driver中没有DP驱动,应该安装OPC Server.
西门子SimaticNet.需要Profibus SoftNet-DP授权.
6GK17045DW633AA0 RMB5868.50 (V6.3)
这个目前看来仅可以使用SimaticNet.
注意,当这样做时,计算机算个2类DP主站,CP5611可以支持多于8个的PLC.
走DP协议较多可以支持60个PLC做DP从站.
即使是WinCC,要用CP5611连接**过8个以上的PLC时,也需要SimaticNet.
不建议计算机和做DP主站的PLC来连接,即使要连接,数量较好不要**过1个PLC
C.Intouch,同iFix。
D.Citect,Wizcon,力控,组态王,紫金桥等,同iFix.
备注:
A.原来以为CP5611跟DP口通讯(比如315-2DP的X2口),只能做DP主站,
其实不是,也是可以做DP从站的,可以被1个DP主站来挂接,
这个主站可以是PLC,也可以是计算机,
但是在计算机软件和PLC通讯的方案中这样做没有任何意义.
B.因为DP链路上可以走S7协议.
所以理论上Profibus SoftNet-S7 可以替代Profibus SoftNet-DP
西门子S7-200的自由口通信需要通过编程设置串口的工作模式,安排发送和接受指令的触发顺序,还要设定接收的起始和结束条件。对于刚刚开始使用s7-200的电气工程师来说,的确有很多细微处易犯错误。一般碰到客户抱怨通信不上的问题,就要逐一帮客户确认编程配置是否正确。虽然麻烦,不过逐条查下去,总能查到错误所在并解决问题。但是有一次客户遇到的问题颇出人意料,还真耗费了一些时间。
客户反应在编写了自由口通信程序之后,PLC可以发送数据给通信伙伴,但是却收不到任何伙伴方发出的数据。能发送数据给对方,说明通信端口设置没有问题。较有可能是端口被其他通信指令占用导致无法进入接收状态。比如说用常开点调用XMT,或者没有对接收的故障状态进行判断并终止接收,从而导致后续的XMT和RCV都无法被正确执行。客户表示他的程序并不存在这种情况。但是为了测试问题所在,客户下载了一个仅包含条件触发RCV的程序下去,还是接收不到数据。监控程序RCV指令已被正常执行。
那么是不是接收的起始条件设置不当?客户使用的是起始字符,这并无不妥。并且改成空闲线检测之后,问题依然存在。难道是对方发送的信号有问题?用串口调试软件来测试,是可以接收到的。眼见这几个常见错误都没能cover住这个问题,我只好从头一步步地跟客户确认。但是还是没能发现任何破绽。郁闷之下,只好让客户把程序发过来看看。
**次检查程序的时候还真没注意到问题出在哪里。等到看出来了才觉得啼笑皆非:
不知道大家看出来没有?客户在设定完空闲线时间SMW90和消息定时器溢出值SMW92后,惯性地将接受地较大字符数SMB94也写成了传送字SMW94。而西门子PLC的高低字节是逆序的,也就是说SMB94为高有效字节,SMB95为低有效字节。见手册中的如下说明:
结果就是较大字符数100被传给了SMB95,SMB95是神马呢?神马也不是,总之与接收条件无关。而真正较大字符数存储字节SMB94被赋值为0。较大字符数都为0了,那当然是接收不到任何数据了