6ES7338-4BC01-0AB0参数详细

供应商
浔之漫智控技术-西门子PLC代理商
认证
手机号
15221406036
经理
聂航
所在地
上海市松江区石湖荡镇塔汇路755弄29号1幢一层A区213室
更新时间
2024-05-08 07:10

详细介绍

6es7338-4bc01-0ab0参数详细

 西门子s7-200的自由口通信需要通过编程设置串口的工作模式,安排发送和接受指令的触发顺序,还要设定接收的起始和结束条件。对于刚刚开始使用s7-200的工程师来说,的确有很多细微处易犯错误。一般碰到客户抱怨通信不上的问题,就要逐一帮客户确认编程配置是否正确。虽然麻烦,不过逐条查下去,总能查到错误所在并解决问题。但是有一次客户遇到的问题颇出人意料,还真耗费了一些时间。
      客户反应在编写了自由口通信程序之后,plc可以发送数据给通信伙伴,但是却收不到任何伙伴方发出的数据。能发送数据给对方,说明通信端口设置没有问题。极有可能是端口被其他通信指令占用导致无法进入接收状态。比如说用常开点调用xmt,或者没有对接收的故障状态进行判断并终止接收,从而导致后续的xmt和rcv都无法被正确执行。客户表示他的程序并不存在这种情况。但是为了测试问题所在,客户下载了一个仅包含条件触发rcv的程序下去,还是接收不到数据。监控程序rcv指令已被正常执行。 
     那么是不是接收的起始条件设置不当?客户使用的是起始字符,这并无不妥。并且改成空闲线检测之后,问题依然存在。难道是对方发送的信号有问题?用串口调试软件来测试,是可以接收到的。眼见这几个常见错误都没能cover住这个问题,我只好从头一步步地跟客户确认。但是还是没能发现任何破绽。郁闷之下,只好让客户把程序发过来看看。
     次检查程序的时候还真没注意到问题出在哪里。等到看出来了才觉得啼笑皆非:
 

     不知道大家看出来没有?客户在设定完空闲线时间smw90和消息定时器溢出值smw92后,惯性地将接受地大字符数smb94也写成了传送字smw94。而西门子plc的高低字节是逆序的,也就是说smb94为高有效字节,smb95为低有效字节。见手册中的如下说明:
 

     结果就是大字符数100被传给了smb95,smb95是神马呢?神马也不是,总之与接收条件无关。而真正大字符数存储字节smb94被赋值为0。大字符数都为0了,那当然是接收不到任何数据了。小马虎一下就耽误了这许多时间,各位看官引以为戒吧

 在使用西门子s7-200时,在不增加其它通讯接口模块时,紫金桥软件可以通讯ppi协议与s7-200直接通讯。但这种通讯方式由于受通讯协议本身限制,在通讯数据较多时,通讯速度相对较慢,使用modbus协议则通讯速度可以提高约一倍。下面就介绍一下怎么使用modbus协议建立s7-200与紫金桥软件之间的通讯:

硬件连接

     在使用modbus协议时,计算机与s7-200之间通讯直接使用ppi通讯电缆即可。但如果通讯距离较远,或者需要将多个s7-200连接到一个通讯总线上时,我们可以通过如下方法配制通讯链路。

选配一个计算机通讯端口

     由于s7-200通讯端口物理层使用的是rs-485通讯规范,因此我们需要在计算机端增加一个rs-485通讯端口,才能与计算机通讯建立通讯。如果计算机闲置的串口,我们可以选配一个rs-232转rs-484转换器即可;如果没有闲置的串口,我们通过在计算机中增加一个rs-485通讯卡也可以;现在很多计算机都有usb口,我们也可以在计算机上外接一个usb转rs-485转换器。

连接通讯电缆

     s7-200的通讯端口是一个9孔(famel)d型插头,针脚分布如下所示:

 

针脚

信号

1

地线 (rs-485 逻辑地)

2

24 v 地线 (rs-485 逻辑地)

3

信号b (rxd/txd+)

4

rts (ttl level)

5

地线 (rs-485 逻辑地)

6

(空)

7

24 v 电源

8

信号a (rxd/txd-)

9

通讯选择

s7-200通讯端口(端口0)与rs-485板卡或rs-485/rs-232转换器之间接线,如下图所示:

s7-200编程及设置

     在缺省情况下s7-200的通讯端口是不支持modbus协议的,要想实现modbus通讯必需在plc的主程序模块中调用modbus通讯子程序。modbus通讯子程序可以从“step7-micro/win add-on: instruction library (step7-micro/win附件:指令库)”中获得。在安装了“step7-micro/win附件:指令库”后,在导航树“指令/库”下面我们可以找到“modbusprotocol”。在其下面包含了mbus_init和mbus_slave两个子程序,mbus_init用于对modbus通讯进行初始化,mbus_slave用于在指定端口上提供modbus从站通讯服务。下在介绍如何在主程序中调相关子程序及环境参数设置:

调用modbus通讯初始化命令

     首先为mbus_init命令建立一个触发条件(只触发一次),如:sm0.1;从导航树“指令/库/ modbusprotocol”下面,将mbus_init指令拖拽到主程序块中。再就是正确设置mbus_init各项调用参数和执行结果输出地址,我们可以建立一下如下图所示初始化调用过程:

mode:协议类型,1-modbus协议;0-ppi协议。

addr: plc地址,1~247,。

baud: 通讯波特率,1200、2400、4800、9600、或11520。

parity: 校验方式,0-无校验;1-奇数校验;2-偶数校验。

delay:信息结束超时时间,0~32767,有线连接设置为0即可。

maxiq:0~128,映射在离散输入寄存器或离散输出寄存器中的i或q数。建议为:128。

maxai:0~32;映射在模拟输入寄存器中aiw数;cpu 221为0,cpu 222为16,cpu224、226和226xm为32。

maxhold:v内存映射在保持寄存器中的寄存器数。

holdstart:v内存的映射时的起始地址。

done:初始化指完成时,输出为开状态;开关量(bit)。

error:初始化错误代码,请参阅modbus从机协议执行错误代码;输出为字节。

调用modbus从机通讯命令

     初始化完成后,就可以调用modbus从机通讯命令(mbus_slave)了。通常modbus从机通讯命令在主程序块的每个执行周期都要初执行(始终保持通讯状态),因为可以用一个常开量作为命令的触发条件,如:sm0.0。从导航树“指令/库/modbus protocol”下面,将mbus_slave指令拖拽到主程序块中。调用过程如下图所示:

done: 当mbus_slave指令响应对modbus请求时,"done"为开状态。没通讯请求时"done"为关状态。

error:指令执行结果。只有"done"为开状态时,此状态有效。请参阅modbus从机协议执行错误代码;输出为字节。

库存储区分配

     在完成前面两个指令调用后,还要为库指令使用的符号分配内存。当库指令被插入到主程序块中,在导航树“程序块”下会出现一个“库”节点。在“库”节点上点击鼠标右键,在弹出菜单中选择“库存储区”,进入“库存储区分配”对话框。

     在地址框中输入分配内存的开始地址,或者通过点击“建议地址”按钮自动分配内存。注意,分配的内存不要与已使用的内存重叠。

紫金桥软件组态

     完成plc编程和配制后,还要对紫金桥软件进行配制,这样才能获取、处理、查测、存储和显示相应的数据。组态过程分为两个步骤:(1)设备组态,即建立一个与plc相对应的逻辑设备;(2)点组态,即建立过程数据库点的过程参量与plc中变量的对应关系,从而利用点的自身功能进行处理、检测和存储。当然要将过程数据在计算机上展现给用户,还要进行交互界面(窗口)组态。但这一过程对所有应用是相同这,这里就不介绍了。

设备组态

     设备组态就根据plc使用的通讯协议及在网上的节点地址、端口属性等对通讯参数进行定义的过程。

     进入紫金桥开发环境,将导航树切换到“数据库”,在导航树上选择“设备驱动/modbus/
modbus(ascii&rtu串口通讯)”,单击鼠标右键,在单出菜单中选择“增加设备驱动”会弹出发下所示对话框:

     在对话框中输入设备名称、设备地址(与plc中mbus_init初始化的addr参数一致),选择串口号,并且设置(点击“设置”按钮)端口属性,使用它与plc中mbus_init命令设置的属性一致。点击“下一步”:

     在modbus设备定义对话框中将协议类型选择为“rtu”,存贮器类型选择“32位”(即长整和浮点型4字节的数据的传送格式为高位在前,低位在后)。单击“完成”按钮,则设备组态完成。

点组态及i/o连接

完成了点组态还要进行点组态i/o连接,这样才能将plc中的变量映射到紫金桥软件中。

进入紫金桥开发环境,将导航树切换到“数据库”,在导航树上双击“点组态”,进入点组窗口:

     选择点类型,建点,设置常规参数是点组态的基本操作,对所有应用是相同的,这里就不详细说明了。下面重点介绍一下i/o连接及与变量对应关系。

     这里以模拟i/o点的i/o连接为例。新建一个模拟i/o点后,输入点名,切换到“数据连接”属性页:

     从该属性的设备列表框中选择在上一步骤中建立的设备(如:mod),点击“增加连接项”按钮,进入“modbus组点对话框”:

     这里的“内存区”、“偏置”和“数据格式”是与plc中部分内存类型和地址相对应的。对于在modbus协议中不能对应的plc内存类型,如果需要上传到过程数据库中,可以先它们先移动到v内存区,再通过v内存区读取。s7-200内存区与紫金桥i/o连接对应关系如下所示:


 

 

 

s7-200地址

紫金桥软件i/o连接

内存区

偏置

q0.0

do离散输出量

0

q0.1

1

q0.2

2

……(qm.n)

……(m*8+n)

q15.6

126

q15.7

127

i0.0

di离散输入量

0

i0.1

1

i0.2

2

……(im.n)

……(m*8+n)

i15.6

126

i15.7

127

aiw0

ar输入寄存器

0

aiw2

1

aiw4

2

……(aiw2n)

……(n)

aiw62

31

hold start(如:vb0)


0

hold start+2(如:vb2)


1

hold start+4(如:vb4)


2

……


……

hold start+(holdmax-1)*2


holdmax-1

     在完成存贮区和地址组态,还要注意一点就是数据类型一致性,只有类型一致才能从plc上获得正确数据。我们可以从“数据格式”中选择格式。对于字寄存器我们也可以将它拆分为位,从而获得某个位的状态。

      注:对新组态的数据库点只有重新启动后才会生效。

      以上是对通过modbus协议在紫金桥软件中获取s7-200plc数据的使用方法的简单介绍,希望对大家使用紫金桥有所帮助


西门子代理商,西门子模块代理商,西门子一级代理商,西门子中国代理商
展开全文
我们其他产品
我们的新闻
相关产品
参数 详细 电机参数
优质商家推荐 拨打电话