全国服务热线 15221406036

无锡西门子PLC总代理商

更新时间:2024-05-08 07:10:00
价格:请来电询价
联系电话:
联系手机: 15221406036
联系人:聂航
让卖家联系我
详细介绍

无锡西门子PLC总代理商

客户1:“西门子热线工程师,你好,我用第三方组态软件(如Intouch、iFix、组态王等),想在画面上设置定时器T的时间,以便人工及时修改。但组态软件中没有S5Time数据类型,怎么办?”
 客户2:“我想在PLC程序中,用整数INT给定时器T的预设时间赋值,怎么做?”
 客户3:“我用的第三方组态软件(如Intouch、iFix、组态王等),想在画面上设置PID积分时间,但FB41的积分时间TI是Time类型,组态软件中没有Time类型,怎么办?”
 客户4:“在PLC程序中,数据类型S5Time如何转换到整数INT类型?”
 以上四个客户,遇到的问题实质上是一样的,就是整数INT、时间S5Time及Time之间的相互转换。
 如何转换,首先要弄清整数INT、时间S5Time及Time的数据结构。整数INT是16位的数据:
 


 时间S5Time是16位数据,BCD码格式:
 


 


 时间Time是32位数据,类似于双整数DINT:
 


 由此可见,三者之间的转换即是整数INT、双整数DINT及BCD码之间的转换。可以根据数据结构特点,自己编程实现相互转换,这样比较复杂。利用库函数FC33/FC40是简单方便的。方法如下:
 1. 整数INT到时间S5Time的转换方法:
 INT -> I_DI指令 -> DINT -> MOVE指令 -> Time -> 库函数FC40 -> S5Time。
 


 


 


 2. 整数INT到时间Time的转换方法:INT -> I_DI指令 -> DINT -> MOVE指令 -> Time。如图示:
 


 

 
 3. 时间S5Time到整数INT的转换方法:
 S5Time -> 库函数FC33 -> Time -> MOVE指令 -> DINT -> 取其高字部分,用MOVE指令 -> INT。
 


 


 

比如我想把项目程序内的I0.0全部替换成I0.1,应该怎么来操作,因为项目比较大,I0.0出现了上百次而且是在上百个不同的块中,如果要一个一个去替换的话会很麻烦,请各位答侠能不能提供一次性全部替换的办法。我以前用欧姆龙是有这个功能的。
图中的替换是不能实现项目全部替换的.

答:这种方法在西门子PLC中称为:重新接线。有三种方法完成程序的重新接线(适应新的地址):
1、用SIMATIC 管理器,通过给出旧地址和新地址完成重新接线 (该方法不需要符号表)。
2、用源程序重新接线,这种方法需要符号表。
3、用“符号优先”重新接线,这种方法也需要符号表。 
种方法:1、在SIMATIC管理器中,选择“Blocks”文件夹,选择菜单命令 Options -> Rewire 见图一。 
2、在重新接线窗口中,输入旧地址和新地址,如果需要,激活“All addresses  within the specified address area”(就是说对相关地址的基于位的所有访问 也修改)这里在旧地址中输入I0.0,新地址中输入I0.1。见图二,图中下方的“指定地址内的所有存取(不包含外围设备)”的前面应该打钩选中。
3、用“OK”确认。如果需要,可以打开重新接线结果的报告文件。见图三、图四。

图一

图二

图三

图四

一、概述

很多自动化工程师在实际应用中使用组态软件与PLC进行modbus通讯,组态软件作为主站PLC作为从站。组态软件来采集PLC数据使用这种方式是比较常见的。但是反向的利用modbus协议让PLC去读组态软件里的数据确有着特殊的意义,在某些工控场合也是很好解决方案。紫金桥软件在组态软件行业里首先推出了modbus server,既紫金桥modbus server可以作为modbus从机为其他软件和硬件设备提供数据,在这篇文章中对此功能我们详细地加以介绍。

二、S7-200 Modbus主站的实现

1、S7-200 Modbus 通信协议介绍

Modbus 是一种单主站的主/从通信模式。Modbus 网络上只能有一个主站存在,主站在 Modbus 网络上没有地址,从站的地址范围为 0 - 247,其中 0 为广播地址,从站的实际地址范围为 1 - 247。在 S7-200 CPU 通信口上实现的是 RS485 半双工通信,使用的是 S7-200 的自由口能。S7-200支持 Modbus 通信协议: S7-200 CPU 上的通讯口 0 和 1 (Port 0 和 Port 1)通过指令库支持 Modbus RTU 主站模式。

2、S7-200 Modbus主站的配置

西门子在 Micro/WIN V4.0 SP5 中正式推出 Modbus RTU 主站协议库(西门子标准库指令)。要使用 Modbus RTU 主站指令库,须遵循下列步骤:

⑴安装西门子标准指令库

⑵按照要求编写用户程序调用 Modubs RTU 主站指令库 Modbus RTU 主站功能编程使用 SM0.0 调用 MBUS_CTRL 完成主站的初始化,并启动其功能控制:

具体参数的解释如下:

EN使能:必须保证每一扫描周期都被使能(使用SM0.0)

Mode模式:常为1,使能 Modbus 协议功能;为0 时恢复为系统 PPI 协议

Baud波特率:设为9600,要与从站波特率对应

Parity校验:校验方式选择 0=无校验

Timeout超时:主站等待从站响应的时间,以毫秒为单位,典型的设置值为1000毫秒(1秒),允许设置的范围为 1-32767。注意:这个值必须设置足够大以保证从站有时间响应。

Done完成位:初始化完成,此位会自动置1。可以用该位启动 MBUS_MSG 读写操作

Error初始化错误代码(只有在 Done 位为1时有效):

0=无错误

1=校验选择非法

2=波特率选择非法

3=模式选择非法

⑶调用 Modbus RTU 主站读写子程序MBUS_MSG,发送一个Modbus 请求;

如图1所示,具体参数设置如下:

Slave从站地址:可选择的范围 1-247

RW读写操作:0=读, 1=写

注意:1. 开关量输出和保持寄存器支持读和写功能

2. 开关量输入和模拟量输入只支持读功能

Addr读写从站的数据地址:选择读写的数据类型 00001至0xxxx-开关量输出10001至1xxxx-开关量输入

30001至3xxxx-模拟量输入

40001至4xxxx-保持寄存器

Count通讯的数据个数(位或字的个数)

注意: Modbus主站可读/写的大数据量为120个字(是指每一个 MBUS_MSG 指令)

DataPtr数据指针:1. 如果是读指令,读回的数据放到这个数据区中

2. 如果是写指令,要写出的数据放到这个数据区中

Done读写功能完成位

 

图1西门子Modbus RTU 主站协议库

 

三、紫金桥软件Modbus从站的实现

1紫金桥modbus server的设置

Modbus 服务器可以把紫金桥数据库中的点映射为Modbus 设备的HR 寄存器,当前版本为3.0,支持串口和TCP/IP访问方式,支持HR区的读和写方式。也就是说支持03、06、16 号命令。

具体操作是先在紫金桥软件的安装目录中找到 ModbusSerSet.exe 并运行。其中左侧为变量配置显示区,它分为三列,分别是序号、数据库位号和Modbus 地址。后两列的意义是把某一个数据库位号和一个Modbus 地址建立映射关系。然后再调出系统设置对话框配置从机地址、串口等参数或以太网端口号、数据格式等。

2、通讯过程

配置完成后,先运行紫金桥软件然后在紫金桥软件的安装目录中找到 ModbusServer.exe 并运行。

从上面的通讯过程看到,S7-200与紫金桥modbus server通讯的响应速度为毫秒级的。


没有

联系方式

  • 地址:上海松江 上海市松江区石湖荡镇塔汇路755弄29号1幢一层A区213室
  • 邮编:201600
  • 联系电话:未提供
  • 经理:聂航
  • 手机:15221406036
  • 微信:15221406036
  • QQ:3064686604
  • Email:3064686604@qq.com