s7-1200怎么没有VD VWs7200变量类型

端州二路北37号长湖综合楼首层1-9卡商铺招租公告

肇庆市端州区集体三资管理服务中心受肇庆市端州区黄岗街长湖股份合作经济社(出租方)委托, 定于2016年7月18日星期一上午10时20分在本中心举行2016年第0702期第三场竞租会,对端州二路北37号长湖综合楼首层1-9卡商铺组织公开竞租,现将竞租的有关事宜公告如下:


约);端州区公共资源交易中心网站();端州区党风廉政建设信息公开平台。

(一)竞租意向人在竞租前应对标的物进行核实了解,包括但不限于向出租方详细了解标的物是否取得合法产权证、用地性质、使用年限、消防验收证明、约定事项(或合同条款)等相关情况,确保标的物符合自己经营使用要求。

(二)标的物的现状以现场实物为准,本公告所提供的建筑物各项数据仅供参考,由竞租意向人在竞租报名前到现场考察自行判断,本中心不作任何承诺和赔偿。

(一)场地上的建筑物因历史遗留问题,目前报建及规划方面可能存在瑕疵,由此引起的相关责任后果及办理相关证照风险,由承租方承担。

(二)本中心仅按标的物的现状组织交易,不对出租方所提出的约定事项(或合同条款)进行解释和承诺。请各竞租意向人在报名前自行向出租方详细了解,自行判断并承担本标的物所有事项可能存在的风险,若由此引起的一切纠纷与本中心无关。

(一)端州区集体三资管理服务中心:****-*******或后可见(办公时间)

(二)标的物咨询及展示联系电话:杨女士(134*****766或后可见)

(三)监督投诉电话:端州区农林局,*******或后可见(办公时间)

肇庆市端州区黄岗街长湖股份合作经济社 肇庆市端州区集体三资管理服务中心

一、竞租意向人报名参加竞租前须详细阅读本次交易的《招租公告》、《竞租人须知》、《合同样本》中所有的事项、条款等内容。

二、本次交易是肇庆市端州区集体三资管理服务中心(以下简称“本中心”)接受标的物权属人(以下简称“出租方”)的委托而进行,本中心组织的本次交易行为仅为代理行为。

三、《招租公告》中标的物的具体情况是由出租方以书面的形式提供,并经过所在街道办事处审核通过,由出租方对信息的真实性负责。竞租意向人在报名参加竞租前须自行对标的物的所有事项(包括但不限于竞租物业的有关数据、权属情况、合法性、是否存在未决的纠纷、相关约定事项等)进行了解核实,独立做出交易判断并承担风险。交易双方对交易合同样本条款均经过慎重考虑,对条款没异议,均为自愿签订。本中心不对进场交易标的物的质量瑕疵、权属合法性瑕疵、约定事项、合同违约及交易双方的其他纠纷等承担法律责任。

四、拟参加竞租报名的竞租意向人应按要求和规定提供报名资料,保证所提供全部资料的真实性。

五、竞租意向人向本中心提交参加竞租的相关资料后,一经报名确认不可撤回,即视为对招租公告及标的物的所有事项均无异议。

六、本中心仅按标的物的现状组织交易,不对出租方所提出的约定事项(或合同条款)进行解释和承诺。请各竞租意向人在报名前自行向出租方详细了解,自行判断并承担本标的物所有事项可能存在的风险,若由此引起的一切纠纷与本中心无关。

七、所展示合同样本由出租方提供,具体详情敬请咨询出租方。

(一)竞租意向人应按照《招租公告》的要求提交竞租保证金和签署《竞租承诺书》,未按规定提交竞租保证金交纳凭证或未签署《竞租承诺书》的,将被视为未取得本项目竞租资格。

(二)竞租保证金交纳标准及要求按照《招租公告》中有关竞租保证金金额及交纳事项的要求。

(三)竞租保证金用于避免本次竞租因竞租人的行为使出租方遭受的损失。

(四)竞租保证金退还:竞得人在与出租方签订正式租赁合同后,可携带新签租赁合同、竞租保证金交款收据原件、合同履约金缴款收据原件及复印件、身份证原件、退款银行卡或存折等资料到区集体三资管理服务中心办理竞租保证金退款手续(不计利息),如需转给出租方作为合同履约金的,可委托本中心开具转账支票,由竞得人自行办理转款手续。未竞得物业承租权的竞租人,待竞租结果公示程序完成后,由本中心通知其本人携带竞租保证金交款收据原件、身份证原件、退款银行卡或存折等资料前来办理竞租保证金退款手续(不计利息);如有质疑或投诉,将在质疑和投诉处理完毕后不计利息原额退还。

(五)1、出现下列情形之一,竞租保证金全额不予退还,以补偿出租方因标的物闲置而造成的损失:

(1)竞租人相互串通竞租的;

(2)若本次交易仅有唯一一名竞租人,因其不按规定的时间和要求到场参加竞租会或参加竞租会又不参与竞租而导致本次交易失败的;

(3)竞租人在竞租会开始后结束前未经竞租组织方许可,擅自离开竞租现场的;

(4)竞得人竞得标的物后反悔的(包括但不限于放弃该项目的成交权、拒绝签订确认书、拒绝签订合同、无交纳合同履约保证金等);

(5)其他法律法规规定的情形。

2、符合竞租资格的竞租人有两个或以上,因不按规定的时间和要求到场参加竞租会或参加竞租会又不参与竞租而导致本次交易失败的,由上述竞租人按平均比例共同承担一份交易保证金数额的款项,以补偿出租方因竞租人的行为导致标的物闲置而造成的损失。

九、竞租时间、地点及有关事项

(一)竞租及签到时间:请已报名登记的竞租人按《招租公告》指定的时间准时到现场签到并参加竞租,本中心不作另行通知,提前、逾期恕不接受。

(二)竞租地点:肇庆市端州区集体三资管理服务中心(地址:肇庆市端州区尚东康城第2、3、4栋10号商铺二楼)

(三)竞租时需携带的资料:携带本人(或者委托代理人)二代身份证原件。

十、竞得人在确认竞得结果后,如要放弃该标的物成交权,该标的物将重新组织竞租。

十一、竞租方法及注意事项

)、端州区农村集体资产交易管理平台网页()和出租方所在地的公开栏公示。

确定竞得人后,本中心将向竞得人发出《竞租成交确认书》,《竞租成交确认书》是合同的一个组成部分。

(一)竞得人应及时与出租方联系,按指定的时间、地点与出租方签订合同。

(二)《招租公告》及其他竞租补充文件等,均为签订合同的依据。

(三)签订合同时间:在签订竞租成交确认书之日起5个工作日内,竞得人必须凭《竞租成交确认书》和出租方签订租赁合同;如在竞租结果公示期间有质疑或投诉,则在质疑或投诉处理完毕后5个工作日内签订合同,竞得人必须凭《竞租成交确认书》和出租方签订租赁合同。如因竞得人原因逾期不签订合同则视为竞得人自动放弃成交权,出租方有权收回物业,竞得人所交纳的竞租保证金不予退回,将退给出租方。若出租方逾期不签订合同的,则要双倍返还竞租保证金给竞得人。

(一)本中心不退还竞租人报名时所提交的所有资料。

(二)竞得人与出租方就本次交易事宜有争议的,由竞得人与出租方自行协商解决,与本中心无关。

(三)竞租人如果对竞租保证金归属有争议的,由竞租人自行与出租方协商解决,与本中心无关。

(四)竞租成功后,竞得人须按本文件的约定履行其义务,否则相关责任由竞得人自行承担。

(本合同样本由出租方提供,具体详情敬请咨询出租方)

出租方(以下简称甲方): 肇庆市端州区黄岗街长湖股份合作经济社

承租方(以下简称乙方):

根据《中华人民共和国合同法》及有关法律法规,在上级部门监督指导下,甲方通过公开投标,实行价高者得,最终由乙方中标。甲乙双方经友好协商一致达成如下商铺租赁协议,共同遵守。

甲方以有偿的方式提供位于肇庆市端州区黄岗镇端州二路北37号长湖综合楼楼下商铺第 卡,面积 平方米,每月每平方米 元。商铺具体现状:商铺。按现状交付使用。

乙方租赁甲方的商铺期限为:叁年,从201 年 月 日至20 年 月 日止。本合同期满,甲方无偿收回商铺使用权。

租金、保证金和其他费用的标准和交纳方法:

(一)乙方承租甲方的商铺应向甲方缴交合同履约金为人民币金额(大写): 万元正(¥ 元)。在租赁期满,如乙方无违约行为,合同履约金全部退回给乙方;如乙方中途自行退租或违反本合同有关条款,合同履约金归甲方所有,甲方有权单方解除合同,收回乙方租赁上述商铺的使用权;如甲方违约,双倍退还合同履约金。

(二)租金标准:乙方租用甲方的商铺,按每月计算租金,,现将乙方应交的租金确定如下:

① 由20 年 月 日至20 年 月 日止,乙方租用甲方商铺,乙方每月应向甲方缴交租金人民币金额(大写): 万 仟 佰 拾 元正(¥ 元),乙方每年共计向甲方缴交租金人民币金额(大写):万 仟 佰 拾 元正(¥ 元)。

② 乙方必须于每月10号前向甲方交纳当月租金, 先交租后使用,逾期缴交者,加收滞纳金每天200元,逾期 15 天者,作违约处理。保证金归甲方所得,且甲方有权收回出租商铺并追收所欠租金。

第四条 甲乙双方的权利和义务

(一)甲方的权利和义务

1.甲方有权每月向乙方收缴当月的租金及其它费用(如水费、电费、垃圾费、管理费等);

2.甲方有权督促乙方遵守法律法规、本村(居)村规民约和各项规章制度。

(二)乙方的权利和义务

1.乙方在入住前必须检查配套设施是否完好,如发现有问题的,必须立即通知甲方派人维修。否则,由乙方自行负责;

2.乙方必须持有效的证件(包括身份证、计划生育证、暂住证等)才能入住;

3.乙方不得容留违法犯罪及违反计划生育等违反法律法规的人员居住。一经发现,立即清退,并交有关部门处理;

4.乙方不得从事聚众赌博、斗殴等违法行为,晚上十点后不得产生噪音,以免影响他人休息;在乙方承租期间,乙方经营发生所有一切税金、费用、债权、债务、工伤事故、自然灾害损失、不可抗力造成损失由乙方负责.

5.甲方原有的设施乙方必须保护好,如有损坏,由乙方负责更换和维修。

6.乙方必须自觉搞好卫生并将垃圾放在规定的堆放处,不得往楼下丢垃圾。

7.乙方如需装修及安装其他电器设备,要征得甲方同意方可施工,但施工不得损害场地结构;合同期满不再续约的,除电器设备外,一切门窗装修及入墙设施不得拆除;退租前,将损坏的地方维修好并搞好清洁卫生,否则,视为乙方违约,本合同保证金归甲方所有,甲方有权向乙方追收一切维修和清洁费用;

8.乙方负责缴纳承租楼房的租赁税。

出租的商铺不得从事非法经营活动,否则,视乙方违约,甲方有权收回出租商铺并追收所欠租金,保证金归甲方所有。

租用年限届满,本合同自行失效,甲方无偿收回商铺使用权。如需继续出租,甲方必须将该商铺重新进行竞投交易。乙方如继续租用,必须在期满前 1 月内向甲方提交续租申请书,并重新参与投标,在同等条件下,乙方享有优先租用权;如乙方不再租用,属于乙方的家电设备由乙方自行拆除,并在租用年限届满后 5天内自行清理好商铺的杂物,逾期未拆除清理的视乙方自行放弃,甲方有权对进行处置。

本合同存续期间,如国家需征收、征用乙方租用商铺的土地,本合同终止,乙方必须无条件服从搬迁,征地补偿款、建筑物及设施补偿费属甲方所有,其他按有关政策规定执行。

第八条 合同的变更和解除

(一)甲乙双方经协商一致可变更或解除本合同。

(二)租用期间,乙方有下列行为之一的,甲方有权单方面解除合同,保证金归甲方所有,并收回出租物:

1.未经甲方书面同意,转租、转借承租物;

2.损坏承租物,造成严重损害,影响二次租赁,在甲方提出的合理期限内仍未修复的;

3.未经甲方书面同意,改变本合同约定的承租物租赁用途;

4.利用承租物存放危险物品或进行违法活动;

5.逾期未交纳按约定应当由乙方交纳的各项费用,已经给甲方造成严重损失的;拖欠租金 2 个月以上(含本数)

(三)在租用期内,如因法律规定的不可抗力致使本合同难以履行时,本合同可以变更或解除,双方互不承担违约责任。遭受不可抗力事件的一方应自行在条件允许下采取一切合理措施以减少这一事件造成的损失。

本合同履行中如发生纠纷,由争议双方协商解决;协商不成,双方可向甲方所在地的人民法院提出诉讼。

本合同一式五份,具有同等法律效力,双方签字(盖章)后生效;甲方、乙方双方各执一份,河旁经联社一份,街道办三资中心一份,区三资中心一份。

第十一条 补充协议规定

本合同未尽事宜,可由双方约定后签订补充协议,补充协议与本合同具有同等法律效力。

附:乙方居民身份证的复印件

法定名称:肇庆市端州区黄岗街长湖股份合作经济社(盖章) 法定代表人: (签字) 联系电话 134*****181或后可见

法定代表人: (签字)

签约时间:201 年 月 日

文档格式:DOCX| 浏览次数:14| 上传日期: 17:02:54| 文档星级:?????

用于描述指令的习惯用语

图6--1给出了对一条指令的典型描述,并指出了用于描述指令及其操作的不同区域。指令说明包括

LAD、FBD和STL三种格式。操作数表列出了指令的操作数,并给出每个操作数的有效数据类型,存   储区的区域及长度。

EN/ENO操作数和数据类型没有在指令操作数表中列出,因为这些操作数对于所有的LAD和FBD指令

  • 对于LAD:EN和ENO是功率流,同时是布尔数据类型。
  • 对于FBD:EN和ENO是I、Q、V、M、SM、S、T、C、L或功率流,同时是布尔数据类型。

S7- 200存储器范围及特性

常开触点指令(LD、A和O)与常闭触点指令(LDN、AN和ON)从  存储器或者过程映像寄存器中得到参考值。标准触点指令从存 储器中得到参考值。(如果数据类型是I或Q,则也可从过程映像寄存器中得到参考值。)

当位等于1时,常开触点闭合(接通),当位等于0时,常闭触点

闭合(断开)。在FBD中,AND和OR框中的输入最多可扩展为

32个输入。在STL中,常开指令LD、AND或OR将相应地址位 的位值存入栈顶;而常闭指令 LD、AND或OR则将相应地址位的位值取反,再存入栈顶。

立即触点不依靠S7- 200扫描周期进行更新;它会立即更新。常开立即触点指令(LDI、AI和OI)和常闭立即触点指令(LDNI、

ANI和ONI)在指令执行时得到物理输入值,但过程映像寄存器

当物理输入点(位)为1时,常开立即触点闭合(接通),当物理输 入点(位)为0时,常闭立即 触点闭合(接通)。常开指令立即将物理输入值Load (加载)、AND (与)或OR (或)到栈顶,而常闭指令立即将物理输入点值的取反值Load (加载)、AND (与) 或OR (或)到栈顶。

取反指令(NOT)改变功率流输入的状态(也就是说,它将栈顶值 由0变为1,由1变为0)。

正转换触点指令(EU)检测到每一次正转换(由0到1),让功率流接通一个扫描周期。负转换触点指令

(ED)检测到每一次负转换(由1到0),让功率流接通一个扫描周期。对于正转换指令,检测到栈顶值的

0到1转换将栈顶值设为1;否则,将设为0。对于负转换指令,检测到栈顶值的1到0转换将栈顶值设  为1;否则设为0。

对于运行模式下编辑(在RUN模式下编辑应用程序),您必须为正转换指令和负转换指令输入参数。关  于在RUN模式下编辑程序的更多信息参见第5章。

表6--3 位逻辑输入指令的有效操作数

I、Q、V、M、SM、S、T、C、L、功率流

如图6--2中所示,S7- 200用逻辑堆栈来决定控制逻辑。在本例中,“iv0”到“iv7”表示逻辑堆栈的

初始值,“nv”表示指令提供的一个新值,S0表示逻辑堆栈中存储的计算值。

图6--2 触点指令的操作。

  1. S0表示存储在逻辑栈中的计算值。
  2. 在装载指令执行之后,值iv8丢失。
提示由于正转换指令和负转换指令要求由1到0或者由0到1的变化,您不能在第一个扫描周期中检测到上

升沿或者下降沿的变化。在第一个扫描周期,S7- 200利用这些指令储存指定位的状态。在接下来

的扫描周期中,这些指令能够检测到指定位的变化。

输出指令(=)将新值写入输出点的过程映像寄存器。当输出指令执行时,S7- 200将输出过程映像寄存器中的位接通或者断开。在LAD和FBD中,指定点的值等于功率流。在STL中,栈 顶的值复制到指定位。

当指令执行时,立即输出指令(=I)将新值同时写到物理输出点 和相应的过程映像寄存器中。

当立即输出指令执行时,物理输出点立即被置为功率流值。在

STL中,立即指令将栈顶的值立即复制到物理输出点的指定位 上。“I”表示立即引用;当执行指令时,将新数值写入物理输出和相应的过程映像寄存器位置。这一点不同于非立即指令,只把新值写入过程映像寄存器。

置位(S)和复位(R)指令将从指定地址开始的N个点置位或者复 位。您可以一次置位或者复位1- 255个点。

如果复位指令指定的是一个定时器位(T)或计数器位(C),指令不但复位定时器或计数器位,而且清除  定时器或计数器的当前值。

  • 0091(操作数超出范围)

立即置位和立即复位指令将从指定地址开始的N个点立即置位或者立即复位。您可以一次置位或复  位1到128个点。

“I”表示立即引用;当执行指令时,将新数值写入物理输出点和相应的过程映像寄存器位置。这一  点不同于非立即指令,只把新值写入过程映像寄存器。

使ENO=0的错误条件:

  • 0091(操作数超出范围)

表6--4 位逻辑输出指令的有效操作数

栈装载与指令(ALD)对堆栈中第一层和第二层的值进行逻辑与 操作。结果放入栈顶。执行完栈装载与指令之后,栈深度减1。

栈装载或指令(OLD)对堆栈中第一层和第二层的值进行逻辑或 操作。结果放入栈顶。执行完栈装载或指令之后,栈深度减1。

逻辑推入栈指令(LPS)复制栈顶的值,并将这个值推入栈。栈底的值被推出并消失。

逻辑读栈指令(LRD)复制堆栈中的第二个值到栈顶。堆栈没有推入栈或者弹出栈操作,但旧的栈顶值

逻辑弹出栈指令(LPP)弹出栈顶的值。堆栈的第二个栈值成为新的栈顶值。

ENO与指令(AENO) 对ENO位和栈顶的值进行逻辑与操作,其产生的效果与LAD或者FBD中盒指令的ENO位相同。与操作结果成为新的栈顶。

ENO是LAD和FBD中盒指令的布尔输出。如果盒指令的EN输入有功率流并且执行没有错误,则ENO     将功率流传递给下一元素。您可以把ENO作为指令成功完成的使能标志位。ENO位被用作栈顶,影响功率流和后续指令的执行。STL中没有EN输入。条件指令要想执行,栈顶值必须为逻辑1。在STL

装入堆栈指令(LDS)复制堆栈中的第N个值到栈顶。栈底的值被推出并消失。

表6--5 装入堆栈指令的有效操作数

如图6--3中所示,S7- 200用逻辑堆栈来决定控制逻辑。在本例中,“iv0”到“iv7”表示逻辑堆栈的

初始值,“nv”表示指令提供的一个新值,而“S0”表示逻辑堆栈中存储的计算值。

图6--3 逻辑堆栈指令的操作

置位优先触发器是一个置位优先的锁存器。当置位信号(S1)和复位信号(R)都为真时,输出为真。

复位优先触发器是一个复位优先的锁存器。当置位信号(S)和 复位信号(R1)都为真时,输出为假。

Bit参数用于指定被置位或者复位的布尔参数。可选的输出反映 Bit参数的信号状态。

表6--7中给出了范例程序的真值表。

表6--6 RS触发器指令的有效操作数

读实时时钟和写实时时钟

读实时时钟(TODR)指令从硬件时钟中读当前时间和日期,并把它装载到一个8字节,起始地址为T的时间缓冲区中。写实时 时钟(TODW)指令将当前时间和日期写入硬件时钟,当前时钟 存储在以地址T开始的8字节时间缓冲区中。

您必须按照BCD码的格式编码所有的日期和时间值(例如:用

时间日期(TOD)时钟在电源掉电或内存丢失后,初始化为下列

日期: 90年1月1号

星 期 几 : 星 期 日

使ENO=0的错误条件:

  • 0007(TOD数据错误),只对写实时时钟指令有效。
  • 000C(时钟模块不存在)

S7- 200 CPU不会检查和核实日期与星期是否合理。无效日期February 30 (2月30日)可能被接受。故必须确保输入的数据是正确的。

不要同时在主程序和中断程序中使用TODR/TODW指令。如果这样做,而在执行TOD指令时出现了 执行TOD指令的中断,则中断程序中的TOD指令不会被执行。SM4.3指示了试图对时钟进行两个同 时的访问(非致命错误0007)。

在S7-200中日时时钟只使用最低有效的两个数字表示年,所以对于2000年,表达为00。S7-200PLC不以任何方式使用年信息。但是,用到年份进行计算或比较的用户程序必须考虑两位的表示方

法和世纪的变化。在2096年之前可以进行闰年的正确处理。

扩展读实时时钟(TODRX)指令从PLC中读取当前时间、日期和 夏令时组态 ,并装载到从由T指定的地址开始的19字节缓冲区内。

扩展写实时时钟(TODWX)指令写当前时间、日期和夏令时组态到PLC中由T指定的地址开始的19字节缓冲区内。

您必须按照BCD码的格式编码所有的日期和时间值(例如:用16#02表示2002年)。表6--9给出了19字节时间缓冲区(T)的格式

时间日期时钟在电源掉电或内存丢失后,初始化下列日期和 时间:

使ENO=0的错误条件:

  • 0091(操作数超出范围)

使ENO=0的错误条件:

  • 0091(操作数超出范围)

日期: 90年1月1号

提示S7- 200 CPU仅在字节8中选择了“用户指定”模式时才使用字节9--18。否则,返回由STEP 7- Micro/WIN或SET_RTCX指令写入这些字节的最后一个数值。

1 EU约定:在UTC三月份的最后一个星期日的上午1:00向前调整时间一个小时。在UTC时间十月份的最后一个星期日的上午2:00向后调整时间一个小时。(当进行修正时,当地时间依据于与UTC的时差。)。

2 US约定:在当地时间四月份的第一个星期日的上午2:00向前调整时间一个小时。在当地时间十月份的最后一个星期日的上午

2:00向后调整时间一个小时。

3 澳大利亚约定:在当地时间十月份的最后一个星期日上午2:00向前调整时间一个小时。在当地时间三月份的最后一个星期日的上午3:00向后调整时间一个小时。

4 澳大利亚(塔斯马尼亚岛)约定:在当地时间十月份的第一个星期日的上午2:00向前调整时间一个小时。在当地时间三月份的最后一个星期日的上午3:00向后调整时间一个小时。

5 新西兰约定:在当地时间十月份的第一个星期日的上午2:00向前调整时间一个小时。在当地时间三月份的第一个星期日或三月

15号以后的上午3:00向后调整时间一个小时。

网络读指令(NETR)初始化一个通讯操作,根据表(TBL)的定 义,通过指定端口从远程设备上采集数据。网络写指令

(NETW)初始化一个通讯操作,根据表(TBL)的定义,通过指定

端口向远程设备写数据。

使ENO=0的错误条件:

  • 如果功能返回出错信息,会置位表状态字节中的E。(见图6--5)

网络读指令可以从远程站点读取最多16个字节的信息,网络写 指令可以向远程站点写最多16个字节的信息。

在程序中,您可以使用任意条网络读写指令,但是在同一时 间,最多只能有8条网络读写指令被激活。例如,在所给的S7- 200 CPU中,可以有4条网络读指令和4条网络写指令, 或者2条网络读指令和6条网络写指令在同一时间被激活。

您可以使用网络读写向导程序。要启动网络读写向导程序,在命令菜单中选择工具 > 指令向导,并且在指令向导窗口中选择网络读写。

表6--10 网络读写指令的有效操作数

图6--5中给出了TBL参数参照表,表6--11列出了错误代码。

图6--6给出了一个实例来解释网络读写指令的使用。本例中,考虑一条生产线正在灌装黄油桶并将其   送到四台包装机(打包机)中的一台上。打包机把8个黄油桶包装到一个纸板箱中。一个分流机控制着黄  油桶流向各个打包机。4个CPU221模块用于控制打包机,一个CPU222模块安装了TD200操作器接口,被用来控制分流机。

图6--6 网络读写指令举例

图6--7中给出了2号站中接收缓冲区(VB200)和发送缓冲区(VB300)中的数据。S7--200使用网络读指令   不断地读取每个打包机的控制和状态信息。每次某个打包机包装完100箱,分流机会注意到,并用网   络写指令发送一条消息清除状态字。

图6--7 网络读写指令中TBL数据举例

实例:程序段读和程序段写指令

实例:程序段读和程序段写指令

发送指令(XMT)用于在自由端口模式下依靠通讯口发送数据。

接收指令(RCV)启动或者终止接收消息功能。您必须为接收操 作指定开始和结束条件。从指定的通讯口接收到的消息被存储 在数据缓冲区(TBL)中。数据缓冲区的第一个数据指明了接收到的字节数。

使ENO=0的错误条件:

  • S7- 200CPU没有处于自由端口模式。

表6--12 发送和接收指令的有效操作数

关于使用自由端口模式的更多信息,见226第7章中用自由端口模式创建用户自定义协议部分。

使用自由端口模式控制串行通讯口

通过编程,您可以选择自由端口模式来控制S7- 200的串行通讯口。当选择了自由端口模式,用户程序通过使用接收中断、发送中断、发送指令和接收指令来控制通讯口的操作。当处于自由端口模式时,通讯协议完全由梯形图程序控制。SMB30 (对于端口0)和SMB130(对于端口1,如果您的S7-200有两个端口的话)被用于选择波特率和校验类型。

当S7-    200处于STOP模式时,自由端口模式被禁止,重新建立正常的通讯(例如:编程设备的访问)。在最简单的情况下,可以只用发送指令(XMT)向打印机或者显示器发送消息。其他例子包括与条码阅

读器、称重计和焊机的连接。在每种情况下,您都必须编写程序,来支持在自由端口模式下与S7- 200通讯的设备所使用的协议。

只有当S7-  200处于RUN模式时,才能进行自由端口通讯。要使能自由端口模式,应该在SMB30 (端口0)或者SMB130 (端口1)的协议选择区中设置01。处于自由端口通讯模式时,不能与编程设备通讯。

可以使用特殊寄存器位SM0.7来控制自由端口模式。SM0.7反映的是操作模式开关的当前位置。当SM0.7等于0时,开关处于TERM位置;当SM0.7=1时,操作模式开关位于RUN位置。如果只有模式开关处于RUN位置时,才允许自由端口模式,您可以将开关改变到其他位置上,使用编程设备监 控S7- 200的运行。

将PPI通讯转变为自由端口模式

SMB30和SMB130分别配置通讯口0和通讯口1,并且为自由端口操作提供波特率、校验和数据位数

的选择。自由端口的控制字节如图6--8所示。每一个配置都产生一个停止位。

发送指令使您能够发送一个字节或多个字节的缓冲区,最多为255个。 图6--9给出了发送缓冲区的格式。

如果有一个中断程序连接到发送结束事件上,在发送完缓冲区中的最后一个字符时,则会产生一个中断(对端口0为中断事件9,对端口1为中断事件26)。

图6--10 接收缓冲区的格式

您可以不使用中断,通过监视SMB86 (端口0)或者SMB186 (端口1)来接收消息。当接收指令未被激

活或者已经被中止时,这一字节不为0; 当接收正在进行时,这一字节为0。

如表6--13中所示,接收指令允许您选择消息的启始和结束条件。使用SMB86至SMB94对端口0进行   设置,SMB186至SMB194对端口1进行设置。

当超限或有校验错误时,接收消息功能会自动终止。必须为接收消息功能操作定义一个启始条件和

一个结束条件(最大字符数)。

接收指令的启动和结束条件

接收指令使用接收消息控制字节(SMB87或SMB187)中的位来定义消息起始和结束条件。

当接收指令执行时,在接收口上有来自其他器件的信号,接收消息功能有可能从一个字符的中间开  始接收字符,从而导致校验错误和接收消息功能的中止。如果校验没有被使能,接收到的消息有可  能包含错误字符。当起始条件被指定为一个特定的起始字符或任意字符时,这种情况有可能发生,  正象下面第2.条和第6.条中所描述的那样。

接收指令支持几种消息起始条件。指定包含一个停顿或者一个空闲线检测的起始条件,通过在将字  符放到消息缓冲区之前,用一个字符的起始来强制接收消息功能和消息的起始相同步,来避免以上  问题。

接收指令支持几种起始条件:

  1. 空闲线检测:空闲线条件定义为传输线路上的安静或空闲时间。在SMW90或者SMW190中指定其毫秒数。当接收指令在程序中执行时,接收消息功能对空闲线条件进行检测。如果在空闲    线时间到之前接收到任何字符,接收消息功能会忽略那些字符并且按照SMW90或者SMW190 中给定的时间值重新启动空闲线定时器。参见图6--11。在空闲线时间到之后,接收消息功能将  所有接收到的字符存入消息缓冲区。空闲线时间应该总是大于在指定波特率下传输一个字符(包括起始位、数据位、校验位和停止位)的时间。空闲线时间的典型值为在指定波特率下传输三个字符的时间。

对于二进制协议、没有特定起始字符的协议或者指定了消息之间最小时间间隔的协议,您可以  使用空闲线检测作为起始条件。

图6--11 用空闲时间检测来启动接收指令

  1. 启动字符检测:启动字符是用作消息第一个字符的任意字符。当接收到SMB88或者SMB188中  指定的起始字符后,一条消息开始。接收消息功能将起始字符作为消息的第一个字符存入接收  缓冲区。接收消息功能忽略所有在起始字符之前接收到的字符。起始字符和起始字符之后接收  到的所有字符一起存入消息缓冲区。通常,对于所有消息都使用同一字符作为起始的ASCII码协议,您可以使用起使字符检测。设置: il = 0,sc = 1,bk = 0,SMW90/SMW190 = 无关,SMB88/SMB188 = 起始字符
  1. 空闲线和起始字符:接收功能可启动一个组合了空闲线和起始字符的消息。当接收指令执行时,接收消息功能检测空闲线条件。在空闲线条件满足后,接收消息功能搜寻指定的起始字符。如果接收到的字符不是起始字符,接收消息功能重新检测空闲线条件。所有在空闲线条件  满足和接收到起始字符之前接收到的字符被忽略掉。起始字符与字符串一起存入消息缓冲区。

空闲线时间应该总是大于在指定波特率下传输一个字符(包括起始位、数据位、校验位和停止

位)的时间。空闲线时间的典型值为在指定波特率下传输三个字符的时间。

通常,对于指定消息之间最小时间间隔并且消息的首字符是特定设备的站号或其他消息的协议,您可以使用这种类型的起始条件。这种方式尤其适用于在通讯连接上有多个设备的情况。  在这种情况下,只有当接收到的消息的起始字符为特定的站号或者设备时,接收指令才会触发  一个中断。

  1. 断开检测:当接收到的数据保持为零值的时间大于完整的字符传输时间时,指示断开。一个完  整字符传输时间定义为传输起始位、数据位、校验位和停止位的时间总和。如果接收指令被配  置为用接收一个断点作为消息的起始,则任何在断点之后接收到的字符都会存入消息缓冲区。  任何在断点之前接收到的字符都被忽略。

通常,只有当通讯协议需要时,才使用断点检测作为起始条件。

  1. 断开和起始字符:接收指令可配置为在接收一个断开条件后开始接收字符,然后按顺序接收特  定的起始字符。在断点条件满足之后,接收消息功能寻找特定的起始字符。如果收到了除起始  字符以外的任意字符,接收消息功能重新启动寻找新的断点。所有在断点条件满足和接收到起  始字符之前接收到的字符都会被忽略。起始字符与字符串一起存入消息缓冲区。
  1. 任意字符:接收指令可配置为立即启动接收任意和所有字符,并将它们放入消息缓冲区。这是  空闲线检测的一种特殊情况。在这种情况下,空闲线时间(SMW90或者SMW190)被设置为0。  这使得接收指令一经执行,就立即开始接收字符。

议的主站是非常有用的,并且当在指定时间内,没有来自从站的任何响应的情况,也需要采取  超时处理。由于空闲线时间被设置为0,当接收指令执行时,消息定时器启动。如果没有其他终止条件满足,消息定时器超时会结束接收消息功能。

接收指令支持几种结束消息的方式。结束消息的方式可以是以下一种或者几种的组合:

  1. 结束字符检测:结束字符是用于指定消息结束的任意字符。在找到起始条件之后,接收指令检  查每一个接收到的字符,并且判断它是否与结束字符匹配。如果接收到了结束字符,将其存入  消息缓冲区,接收结束。

通常,对于所有消息都使用同一字符作为结束的ASCII码协议,您可以使用结束字符检测。您  可以使用结束字符检测与字符间定时器、消息定时器或者最大字符计数相结合来结束一条

  1. 字符间定时器:字符间时间是从一个字符的结束(停止位)到下一个字符的结束(停止位)的时间。  如果两个字符之间的时间间隔(包括第二个字符)超过了SMW92或者SMW192中指定的毫秒数,  接收消息功能结束。接收到每个字符后,字符间定时器重新启动。见图6--12。

当协议没有特定的消息结束字符时,您可以用字符间定时器来结束一条消息。由于定时器总是  包含接收一个完整字符(包括起始位、数据位、校验位和停止位)的时间,因而该时间值应设置为大于在指定波特率下传输一个字符的时间。

您可以使用字符间定时器与结束字符检测或者最大字符计数相结合,来结束一条消息。

图6--12 使用字符间定时器来结束接收指令

  1. 消息定时器:消息定时器在启动消息后指定的时间终止消息。接收消息功能的启动条件一满足,消息定时器就启动。当经过的时间超出SMW92或者SMW192中指定的毫秒数时,消息定  时器时间到。见图6--13。

通常,当通讯设备不能保障字符中间没有时间间隔或者使用调制解调器通讯时,您可以使用消  息定时器。对于调制解调器方式,您可以用消息定时器指定一个从消息开始算起,接收消息允  许的最大时间。消息定时器的典型值是在当前波特率下,接收到最长消息所需时间值的大约

图6--13 使用消息定时器来结束接收指令

  1. 最大字符计数:接收指令必须已知要接收的最大字符数(SMB94或SMB194)。当达到或者超出   这个值,接收消息功能结束。即使不会被用作结束条件,接收指令要求用户指定一个最大字符  个数。这是因为接收指令需要知道接收消息的最大长度,这样才能保证消息缓冲区之后的用户  数据不会被覆盖。

对于消息的长度已知并且恒定的协议,可以使用最大字符计数来结束消息。最大字符计数总是  与结束字符检测、字符间定时器或者消息定时器结合在一起使用。

  1. 奇偶校验错误:当硬件发出信号指示在接收的字符上有奇偶校验错误时,接收指令自动终止。  只有在SMB30或者SMB130中使能了校验位,才有可能出现校验错误。没有办法禁止此功能。
  2. 用户终止:用户程序可以通过执行另一个在SMB87或SMB187中的启用位(EN)设置为零的接收

指令来终止接收消息功能。这样可以立即终止接收消息功能。

使用字符中断控制接收数据

为了完全适应对各种协议的支持,您也可以使用字符中断控制的方式接收数据。接收每个字符时都会  产生中断。在执行与接收字符事件相连的中断程序之前,接收到的字符存入SMB2中,校验状态(如果   使能的话)存入SM3.0。SMB2是自由端口接收字符缓冲区。在自由端口模式下,每一个接收到的字符   都会存放到这一位置,便于用户程序访问。SMB3用于自由端口模式。它包含一个校验错误标志位。   当接收字符的同时检测到校验错误时,该位被置位。该字节的其他位被保留。利用校验位去丢弃消息  或向该消息发送否定应答。

在较高的波特率下(38.4K到115.2K)使用字符中断时,中断之间的时间间隔会非常短。例如:在38.4 时为260微秒;在57.6K时为173微秒;在115.2K时为86微秒。确保您的中断程序足够短,不会丢失字  符或者使用接收指令。

SMB2和SMB3共享端口0和端口1。当接收端口0上的字符导致执行附加在那个事件(中断事件8)的中断程序时,SMB2包含端口0上接收的字符,而SMB3包含该字符的奇偶校验状态。当接收端口1 上的字符导致执行附加在那个事件(中断事件25)的中断程序时,SMB2包含端口1上接收的字符,而

SMB3包含该字符的奇偶校验状态。

获取端口地址和设置端口地址指令

获取端口地址指令(GPA)读取PORT指定的CPU口的站地址, 并将数值放入ADDR指定的地址中。

设置端口地址指令(SPA)将口的站地址(PORT)设置为ADDR指 定的数值。新地址不能永久保存。重新上电后,口地址将返回 到原来的地址值(用系统块下载的地址)。

设置ENO=0的错误条件:

  • 0004(试图在中断程序中执行设置端口地址指令)

表6--14 获取端口地址和设置端口地址指令的有效操作数

比较指令用于比较两个数值:

字节比较操作是无符号的。整数比较操作是有符号的。双字比较操作是有符号的。实数比较操作是有符号的。

对于LADFBD:当比较结果为真时,比较指令接通触点

对于STL:当比较结果为真时,比较指令将1载入栈顶,再将

1与栈顶值作“与”或者“或”运算(STL)。

当您使用IEC比较指令时,您可以使用各种数据类型作为输 入。但是,两个输入的数据类型必须一致。

下列情况是致命错误,并且会导致S7- 200立即停止执行用

  • 非法的间接地址(任意比较指令)
  • 非法的实数(例如:NAN),(实数比较指令)

为了避免这些情况的发生,在执行比较指令之前,要确保合 理使用了指针和存储实数的数值单元。

不管功率流的状态如何,比较指令都会被执行。

表6--15 比较指令的有效操作数

字符串比较指令比较两个字符串的ASCII码字符:

当比较结果为真时,比较指令使触点闭合(LAD)或者输出接通(FBD),或者对1 进行 LD, A 或 O 操作,并置入栈顶(STL)。

下列情况是致命错误,并且会导致S7- 200立即停止执行用

  • 非法的间接地址(任意比较指令)
  • 字符串的长度超过254个字符(字符串比较指令)
  • 一个字符串的起始地址和长度使它不适合所指定的存储 区(字符串比较指令)

为了避免这些情况的发生,在执行比较指令之前,要确保合 理使用了指针和保存ASCII码字符串的存储区。确保一个保存ASCII码字符串的缓冲区能够在指定的存储区完整的

不管功率流的状态如何,比较指令都会被执行。

表6--16 字符串比较指令的有效操作数

I、Q、V、M、SM、S、T、C、L、功率流

字节转为整数(BTI)、整数转为字节(ITB)、整数转为双整数

(ITD)、双整数转为整数(DTI)、双整数转为实数(DTR)、BCD 码转为整数(BCDI)和整数转为BCD码(IBCD)。以上指令将输入 值IN转换为指定的格式并存储到由OUT指定的输出值存储区中。例如:您可以将双整数值转为实数值; 您也可以在整数和BCD码格式之间相互转换。

四舍五入指令(ROUND)将一个实数转为一个双整数值,并将 四舍五入的结果存入OUT指定的变量中。

取整指令(TRUNC)将一个实数转为一个双整数值,并将实数的整数部分作为结果存入OUT指定的变量中。

段码指令(SEG)允许您产生一个点阵,用于点亮七段码显示器的各个段。

表6--17 标准转换指令的有效操作数

如果想将一个整数转换成实数,先用整数转双整数指令,再用双整数转实数指令。

四舍五入取整和取整指令的操作

四舍五入取整指令(ROUND)将实数值IN转换成双整数值,并且 存入OUT指定的变量中。如果小数部分大于等于0.5,则数字向上取整。

取整指令(TRUNC)将一个实数值IN转换成一个双整数,并且存 入OUT指定的变量中。只有实数的整数部分被转换,小数部分 舍去。

使ENO=0的错误条件:

如果所转换的不是一个有效的实数,或者其数值太大以致于无法在输出中表示,则溢出标志位置位并  且输出不会改变。

要点亮七段码显示器中的段,可以使用段码指令。段码指令将IN中指定的字符(字节)转换生成一个点

阵并存入OUT指定的变量中。

有效的ASCII码字符为十六进制的30到39和41到46。

在ASCII码和十六进制数之间相互转换

ASCII码转十六进制数指令(ATH)将一个长度为LEN从IN开始的

ASCII码字符串转换成从OUT开始的十六进制数。十六进制数转ASCII码指令(HTA)将从输入字节IN开始的十六进制数,转换 成从OUT开始的ASCII码字符串。被转换的十六进制数的位数由长度LEN给出。

可转换的ASCII字符或十六进制数字的最大数目是255。有效

有效的ASCII码输入字符是0到9的十六进制数代码值30到39, 和大写字符A到F的十六进制数代码值41到46这些字母数字 字符。

使ENO=0的错误条件:

  • 0091(操作数超出范围)
将数值转为ASCII码
整数转ASCII码指令的操作数

整数转ASCII码(ITA)指令将一个整数字IN转换成一个ASCII码字 符串。格式FMT指定小数点右侧的转换精度和小数点是使用逗 号还是点号。转换结果放在OUT指定的连续8个字节中。

使ENO=0的错误条件:

ASCII码字符串始终是8个字节。

整数转ASCII码指令的格式操作数如图6--15所示。输出缓冲区的大小始终是8个字节。nnn表示输出缓   冲区中小数点右侧的数字位数。nnn域的有效范围是0--5。指定十进制小数点右面的数字为0使数值显   示为一个没有小数点的数值。对于nnn大于5的情况,输出缓冲区会被空格键的ASCII码填冲。c指定是用逗号(c=1)或者点号(c=0)作为整数和小数的分隔符。高4位必须为0。

图6--15中给出了一个数值的例子,其格式为使用点号(c=0),小数点右侧有三位小数(nnn=011)。输出

缓冲区的格式符合以下规则:

  • 正数值写入输出缓冲区时没有符号位。
  • 负数值写入输出缓冲区时以负号(--)开头。
  • 小数点左侧的开头的0(除去靠近小数点的那个之外)被隐藏。
  • 数值在输出缓冲区中是右对齐的。
双整数转ASCII码指令操作

双整数转ASCII码(DTA)指令将一个双字IN转换成一个ASCII码字符串。格式操作数FMT指定小数点右侧的转换精度。转换结 果存储在从OUT开始的连续12个字节中。

使ENO=0的错误条件:

输出缓冲区的大小总是12个字节。

图6--16描述了双整数转ASCII码指令的格式操作数。nnn表示输出缓冲区中小数点右侧的数字位数。nnn域的有效范围是0--5。指定十进制小数点右面的数字为0使数值显示为一个没有小数点的数值。对   于nnn大于5的情况,输出缓冲区会被空格键的ASCII码填冲。c指定是用逗号(c=1)或者点号(c=0)作为  整数和小数的分隔符。高4位必须为0。

图6--16中给出了一个数值的例子,其格式为使用点号(c=0),小数点右侧有四位小数(nnn=100)。输出

缓冲区的格式符合以下规则:

  • 正数值写入输出缓冲区时没有符号位。
  • 负数值写入输出缓冲区时以负号(--)开头。
  • 小数点左侧的开头的0 (除去靠近小数点的那个之外)被隐藏。
  • 数值在输出缓冲区中是右对齐的。
实数转ASCII码指令操作

实数转ASCII码指令(RTA)将一个实数值IN转为ASCII码字符 串。格式操作数FMT指定小数点右侧的转换精度,小数点是用 逗号还是用点号表示和输出缓冲区的大小。

转换结果存储在从OUT开始的输出缓冲区中。

使ENO=0的错误条件:

结果ASCII码字符的位数(或长度)就是输出缓冲区的大小,它的值可以在3到15字节或字符之间。

S7- 200的实数格式支持最多7位小数。试图显示7位以上的小数会产生一个四舍五入错误。

图6--17是对RTA指令中格式操作数FMT的描述。ssss表示输出缓冲区的大小。0、1或者2个字节的大   小是无效的。nnn表示输出缓冲区中小数点右侧的数字位数。nnn域的有效范围是0--5。指定十进制小   数点右面的数字为0使数值显示为一个没有小数点的数值。对于nnn大于5或者指定的输出缓冲区太小   以致于无法存储转换值的情况,输出缓冲区会被空格键的ASCII码填冲。c指定是用逗号(c=1)或者点号(c=0)作为整数和小数的分隔符。

图6--17中给出了一个数值的例子,其格式为:使用点号(c=0)、小数点右侧有1位小数(nnn=001)和6

个字节的缓冲区大小(ssss=0110)。输出缓冲区的格式符合以下规则:

  • 正数值写入输出缓冲区时没有符号位。
  • 负数值写入输出缓冲区时以负号(--)开头。
  • 小数点左侧的开头的0 (除去靠近小数点的那个之外)被隐藏。
  • 小数点右侧的数值按照指定的小数点右侧的数字位数被四舍五入。
  • 输出缓冲区的大小应至少比小数点右侧的数字位数多三个字节。
  • 数值在输出缓冲区中是右对齐的。

整数转字符串(ITS)、双整数转字符串(DTS)和实数转字符串

(RTS)指令,将整数、双整数或实数值(IN)转换成ASCII码字符

整数转字符串指令(ITS)将一个整数字IN转换为8个字符长的

ASCII码字符串。格式操作数FMT指定小数点右侧的转换精度和使用逗号还是点号作为小数点。结果字符串被写入从OUT开 始的9个连续字节中。要得到更多消息,请参见第4章字符串的 格式一节。

使ENO=0的错误条件:

  • 0091(操作数超出范围)

图6--18是对整数转字符串指令中格式操作数的描述。输出字符 串的长度总是8个字符。nnn表示输出缓冲区中小数点右侧的数 字位数。nnn域的有效范围是0--5。指定十进制小数点右面的数字为0使数值显示为一个没有小数点的数值。如果nnn的值大 于5,输出是由8个空格键的ASCII码组成的字符串。c指定是用 逗号(c=1)或者点号(c=0)作为整数和小数的分隔符。格式操作数的高4位必须为0。

图6--18中给出了一个数值的例子,其格式为:使用点号(c=0)并且小数点后保留3位小数。OUT的值为  字符串的长度。

输出缓冲区的格式符合以下规则:

  • 正数值写入输出缓冲区时没有符号位。
  • 负数值写入输出缓冲区时以负号(--)开头。
  • 小数点左侧的开头的0(除去靠近小数点的那个之外)被隐藏。
  • 数值在输出缓冲区中是右对齐的。
双整数转字符串指令操作

双整数转字符串指令(DTS)将一个双整数IN转换为一个长度为

12个字符的ASCII码字符串。格式操作数FMT指定小数点右侧的转换精度和使用逗号还是点号作为小数点。结果字符串被写 入从OUT开始的连续13个字节。要得到更多消息,请参见第4 章字符串的格式一节。

使ENO=0的错误条件:

  • 0091(操作数超出范围)

图6--19是对整数转字符串指令中格式操作数的描述。输出字符串的长度总是8个字符。nnn表示输出缓冲区中小数点右侧的数字位数。nnn域的有效范围是0--5。指定十进制小数点右面的数字为0使数值   显示为一个没有小数点的数值。如果nnn的值大于5,输出是由12个空格键的ASCII码组成的字符串。

c指定是用逗号(c=1)或者点号(c=0)作为整数和小数的分隔符。格式操作数的高4位必须为0。

图6--19中给出一个数值的例子,其格式为:使用点号(c=0)并且小数点后保留4位小数。OUT的值为字

符串的长度。输出缓冲区的格式符合以下规则:

图6--19 整数转字符串指令的FMT操作数

实数转字符串指令(RTS)将一个实数值IN转换为一个ASCII码字 符串。格式操作数FMT指定小数点右侧的转换精度和使用逗号 还是点号作为小数点。

转换结果放在从OUT开始的一个字符串中。结果字符串的长度 由格式操作数给出,它可以是3到15个字符。要得到更多消 息,请参见第4章字符串的格式一节。

使ENO=0的错误条件:

  • 0091(操作数超出范围)

S7- 200的实数格式支持最多7位小数。试图显示7位以上的小数会产生一个四舍五入错误。

图6--20是对实数转字符串指令中格式操作数的描述。ssss表示输出字符串的长度。0、1或者2个字节     的大小是无效的。nnn表示输出缓冲区中小数点右侧的数字位数。nnn域的有效范围是0--5。指定十进   制小数点右面的数字为0使数值显示为一个没有小数点的数值。对于nnn大于5或者指定的输出缓冲区   太小以致于无法存储转换值的情况,输出缓冲区会被空格键的ASCII码填冲。c指定是用逗号(c=1)或者点号(c=0)作为整数和小数的分隔符。

图6--20中给出了一个数值的例子,其格式为:使用点号(c=0),小数点右侧有1位小数(nnn=001)和6

个字符的缓冲区大小(ssss=0110)。OUT的值为字符串的长度。输出缓冲区的格式符合以下规则:

  • 正数值写入输出缓冲区时没有符号位。
  • 负数值写入输出缓冲区时以负号(--)开头。
  • 小数点左侧的开头的0(除去靠近小数点的那个之外)被隐藏。
  • 小数点右侧的数值按照指定的小数点右侧的数字位数被四舍五入。
  • 输出缓冲区的大小应至少比小数点右侧的数字位数多三个字节。
  • 数值在输出缓冲区中是右对齐的。

图6--20 实数转字符串指令的FMT操作数

将子字符串转换为数字值

子字符串转整数(STI)、子字符串转双整数(STD)和子字符串转 实数(STR)指令,将从偏移量INDX开始的字符串值IN转换成整 数/双整数或实数值OUT。

使ENO=0的错误条件:

  • 0091(操作数超出范围)

子字符串转整数和字符串转双整数转换具有下列格式的 字符串:[空格] [+或--] [数字0 -- 9]

字符串转实数指令转换具有下列格式的字符串:

INDX值通常设置为1,从字符串的第一个字符开始转换。

INDX可以被设置为其他值,从字符串的不同位置进行转换。这可以被用于字符串中包含非数值字符的情况。例如,如果输 入字符串是“Temperature: 77.8”,则将INDX设为数值13, 跳过字符串起始字“ Temperature:”。

子字符串转实数指令不能用于转换以科学计数法或者指数形式 表示实数的字符串。指令不会产生溢出错误(SM1.1),但是它会将字符串转换到指数之前,然后停止转换。例如:字符串

“1.234E6”转换为实数值1.234,并且没有错误提示。

当到达字符串的结尾或者遇到第一个非法字符时,转换指令结束。非法字符是指任意非数字(0 - 9)

当转换产生的整数值过大以致输出值无法表示时,溢出标志(SM1.1)会置位。例如:当输入字符串产

生的数值大于32767或者小于- 32768时,子字符串转整数指令会置位溢出标志。

当输入字符串中并不包含可以转换的合法数值时,溢出标志(SM1.1)也会置位。例如:如果输入字符

串的“A123”,转换指令会置位SM1.1 (溢出)并且输出值保持不变。

编码指令(ENCO)将输入字IN的最低有效位的位号写入输出字

节OUT的最低有效“半字节”(4位)中。

译码指令(DECO)根据输入字节(IN)的低四位所表示的位号置输 出字(OUT)的相应位为1。输出字的所有其他位都清0。

对于编码和译码指令,下列条件影响ENO。

使ENO=0的错误条件:

增计数指令(CTU)从当前计数值开始,在每一个(CU)输入状态

从低到高时递增计数。当CXX的当前值大于等于预设值PV 时,计数器位CXX置位。当复位端(R)接通或者执行复位指令 后,计数器被复位。当它达到最大值(32,767)后,计数器停 止计数。

  • 向上计数输入:数值载入第二个栈位置

减计数指令(CTD)从当前计数值开始,在每一个(CD)输入状态 的低到高时递减计数。当CXX的当前值等于0时,计数器位CXX置位。当装载输入端(LD)接通时,计数器位被复位,并将 计数器的当前值设为预设值PV。当计数值到0时,计数器停止 计数,计数器位CXX接通。

向下计数输入:数值载入第二个栈位置。

增/减计数指令(CTUD),在每一个增计数输入(CU)的低到高时增计数,在每一个减计数输入(CD)的   低到高时减计数。计数器的当前值CXX保存当前计数值。在每一次计数器执行时,预设值PV与当前    值作比较。

当达到最大值(32767)时,在增计数输入处的下一个上升沿导致当前计数值变为最小值(- 32768)。当

达到最小值(- 32768)时,在减计数输入端的下一个上升沿导致当前计数值变为最大值(32767)。

当CXX的当前值大于等于预设值PV时,计数器位CXX置位。否则,计数器位关断。当复位端(R)接

通或者执行复位指令后,计数器被复位。

  • 向下计数输入:数值载入第二个栈位置
  • 向上计数输入:数值载入第三个栈位置
I、Q、V、M、SM、S、T、C、L、功率流

由于每一个计数器只有一个当前值,所以不要多次定义同一个计数器。(具有相同标号的增计数器、  增/减计数器、减计数器访问相同的当前值。)

当使用复位指令复位计数器时,计数器位复位并且计数器当前值被清零。计数器标号既可以用来表

示当前值,又可以用来表示计数器位。

表6--23 计数器指令的操作

CU增加当前值。当前值持续增加直至32767。 当前值 >= 预设值时,计数器位接通。 计数器位关断。 当前值可以保留。1
CU增加当前值。CD使当前值减少

当前值持续增加或减少除非计数器被复位

当前值 >= 预设值时, 计数器位接通。 计数器位关断。 当前值可以保留。1
CD使当前值减少直至当前值为0。 当前值 >= 预设值时,当前值=0 计数器位关断。当前值可以保留。1

1 您可以选择计数器的当前值是否掉电保护。有关S7- 200 CPU有记忆存储器的详细内容参阅第4章。

实例:SIMATIC减计数器指令

实例:SIMATIC增/减计数器指令

增计数指令(CTU)在每一个(CU)输入的上升沿从当前值开始增 计数,直至预设值(PV)。当当前值(CV)大于等于预设值时,计 数器输出位(Q)接通。当复位输入(R)使能时,计数器复位。当 计数到达预设值时,增计数器停止。

减计数器指令(CTD)从预设值开始,在每一个(CD)输入的上升  沿减计数。当当前值(CV)等于0时,计数器输出位(Q)接通。当 装载输入(LD)使能时,计数器复位并且将计数器的当前值设为 预设值PV。当计数值到0时,减计数器停止。

增/减计数器指令(CTUD),在每一个增计数输入(CU)从低到高 时增计数;在每一个减计数输入(CD)从低到高时减计数。当当 前值等于预设值时,增计数输出(QU)接通。当当前值等于0 时,减计数输出(QD)接通。当装载输入(LD)使能时,计数器将 当前值设为预设值(PV)。类似的,当复位端(R)使能时,计数器复位并且当前值清0。当计数值达到预设值或者0时,计数器 停止。

表6--24 IEC计数器指令的有效操作数

I、Q、V、M、SM、S、T、C、L、功率流

由于每一个计数器只有一个当前值,所以不要多次定义同一个计数器。(具有相同标号的增计数器、  增/减计数器和减计数器访问相同的当前值。)

实例:IEC计数器指令

定义高速计数器指令(HDEF)为指定的高速计数器(HSCx)选择操作模式。模块的选择决定了高速计数器的时钟、方向、启动 和复位功能。

对于每一个高速计数器使用一条定义高速计数器指令。

使ENO=0的错误条件:

  • 0004(中断中的非法指令)

高速计数器指令(HSC)在HSC特殊存储器位状态的基础上,配置和控制高速计数器。参数N指定高速计数器的标号。

高速计数器可以被配置为12种模式中的任意一种。参见表6--26。

每个计数器有用于时钟、方向控制、重设和启动的专用输入,它们支持这些功能。对于两相计数 器,两个时钟都可以运行在最高频率。在正交模式下,您可以选择一倍速(1x)或者四倍速(4x)计数速  率。所有计数器都可以运行在最高频率下而互不影响。

使ENO=0的错误条件:

表6--25 高速计数器指令的有效操作数

可以参考资料光盘上应用程序中使用高速计数器的程序。参见应用示例4和应用示例29

高速计数器用于对S7- 200扫描速率无法控制的高速事件进行计数。高速计数器的最高计数频率取决于您的CPU类型。更多消息请参见附录A。

一般来说,高速计数器被用作驱动鼓式计时器,该设备有一个安装了增量轴式编码器的轴,以恒定的  速度转动。轴式编码器每圈提供一个确定的计数值和一个复位脉冲。来自轴式编码器的时钟和复位脉  冲作为高速计数器的输入。

高速计数器装入一组预设值中的第一个值,当前计数值小于当前预设值时,希望的输出有效。计数器

设置成在当前值等于预设值和有复位时产生中断。

随着每次当前计数值等于预设值的中断事件的出现,一个新的预设值被装入,并重新设置下一个输出  状态。当出现复位中断事件时,设置第一个预设值和第一个输出状态,这个循环又重新开始。

由于中断事件产生的速率远低于高速计数器的计数速率,用高速计数器可实现精确控制,而与PLC整   个扫描周期的关系不大。采用中断的方法允许在简单的状态控制中用独立的中断程序装入一个新的预  设值。(同样的,也可以在一个中断程序中,处理所有的中断事件。)

对于操作模式相同的计数器,其计数功能是相同的。计数器有四种基本类型:带内部方向控制的单相  计数器,带外部方向控制的单相计数器,带2个时钟输入的双相计数器和带A/B相正交计数器的双相计   数器。注意,并不是所有计数器都能使用每一种模式。可使用每种类型:不带复位或启动输入、带复  位和不带启动、或带启动和复位输入。

  • 当激活复位输入端时,计数器清除当前值并一直保持到复位端失效。
  • 当激活启动输入端时,它允许计数器计数。当启动端失效时,计数器的当前值保持为常数,并且忽略时钟事件。
  • 如果在启动输入端无效的同时,复位信号被激活,则忽略复位信号,当前值保持不变。如果在
  • 复位信号被激活的同时,启动输入端被激活,当前值被清除。
  • 在使用高速计数器之前,应该用HDEF (高速计数器定义)指令为计数器选择一种计数模式。使用初次扫描存储器位SM0.1 (该位仅在第一次扫描周期接通,之后断开)来调用一个包含HDEF指令的子程序。

您可以使用指令向导来配置计数器。向导使用下列信息:计数器类型和模式、计数器预设值、计数器  当前值和初始计数方向。要启动HSC指令向导,可以在命令菜单窗口中选择工具 > 指令向导,然后在向导窗口中选择HSC指令。

对高速计数器编程,您必须完成下列基本操作:

定义计数器的模式和输入

使用高速计数器定义指令来定义计数器的模式和输入。

表6--26中给出了与高速计数器相关的时钟、方向控制、复位和启动输入点。同一个输入点不能用于两   个不同的功能,但是任何一个没有被高速计数器的当前模式使用的输入点,都可以被用作其他用途。  例如,如果HSC0正被用于模式1,它占用I0.0和I0.2,则I0.1可以被边缘中断或者HSC3占用。

注意:HSC0的所有模式(模式12除外)总是使用I0.0,HSC4的所有模式总是使用I0.3,因此在使用  这些计数器时,相应的输入点不能用于其他功能。

表6--26 高速计数器的输入点

图6--22到图6--26中给出了每种模式下计数器功能的时序图。

当您使用模式6、7或者8时,如果增时钟输入的上升沿与减时钟输入的上升沿之间的时间间隔小于0.3微秒,高速计数器会把这些事件看作是同时发生的。如果这种情况发生,当前值不变,计数方向  指示不变。只要增时钟输入的上升沿与减时钟输入的上升沿之间的时间间隔大于0.3微秒,高速计数  器分别捕捉每个事件。在以上两种情况下,都不会有错误产生,计数器保持正确的当前值。

图6--25 模式9、10或者11操作实例(一倍速正交模式)

图6--26 模式9、10或者11操作实例(四倍速正交模式)

如图6--27中所示的复位和启动操作适用于使用复位和启动输入的所有模式。在复位和启动输入图中,

复位输入和启动输入都被编程为高电平有效。

图6--27 带有或者不带启动输入的复位操作举例

对于高速计数器,有三个控制位用于配置复位和启动信号的有效状态以及选择一倍速或者四倍速计数  模式(仅用于正交计数器)。这些位位于各个计数器的控制字节中并且只有在HDEF指令执行时使用。在表6--27中给出了这些位的定义。

在执行HDEF指令前,必须把这些控制位设定到希望的状态。否则,计数器对计数模式的选择取缺    省设置。

一旦HDEF指令被执行,您就不能再更改计数器的设置,除非先进入STOP模式。

表6--27 复位和启动输入的有效电平以及1x/4x控制位

描述(仅当HDEF执行时使用)

1 缺省设置为:复位输入和启动输入高电平有效,正交计数率为四倍速(四倍输入时钟频率)。

实例:高速计数器定义指令

只有定义了计数器和计数器模式,才能对计数器的动态参数进行编程。每个高速计数器都有一个控制

  • 控制计数方向(只对模式0、1和2有效)或者对所有其他模式定义初始化计数方向。

在执行HSC指令时,要检验控制字节和相关的初始值和预设值。表6--28中对这些控制位逐一做了  说明。

只能使用数据类型HC (高速计数器当前值)后跟计数器编号(0、1、2、3、4或5)来读取每个高速计数器的当前值 ,如表6--29所示。当希望读取状态图或用户程序中的当前计数时,使用HC数据类型。

HC数据类型为只读;不能使用HC数据类型将一个新当前计数写入高速计数器。

实例:读取和保存当前计数

每个高速计数器在内部存储了一个32位当前值(CV)和一个32位预设值(PV)。当前值是计数器的实际计   数值,而预设值是一个可选择的比较值,它用于在当前值到达预设值时触发一个中断。可使用上一部  分所述的HC数据类型读取当前值。无法直接读取预设值。要将新当前值或预设值载入高速计数器, 必须设置保持期望的新当前和/或新预设值的控制字节和特殊存储双字,也要执行HSC指令以使新数值传送到高速计数器。表6--30列出用于保持期望的新当前值和预设值的特殊存储双字。

使用下列步骤将一个新当前值和/或新预设值写入高速计数器(步骤1和2可以任意顺序完成):

  1. 将要写入的数值装载到合适的SM新当前值和/或新预设值中(表6- 30)。装载这些数值不会影响
  1. 置位或清除合适控制字节中的合适位(表6- 28)指示是否更新当前和/或预设值(位5用于预设

值,位x.6用于当前值)。操作这些位不会影响高速计数器。

  1. 执行HSC指令引用合适的高速计数器编号。执行该指令将检查控制字节。如果控制字节指定更  新当前值、预设值或两者,则将合适的数值从SM新当前值和/或新预设值位置复制到高速计数   器内部寄存器中。
提示对控制字节和新当前值和新预设值的SM位置的修改将不影响高速计数器,直到执行相应的HSC指  令为止。

实例:更新当前值和预设值

所有计数器模式都支持在HSC的当前值等于预设值时产生一个中断事件。使用外部复位端的计数模式  支持外部复位中断。除去模式0、1和2之外,所有计数器模式支持计数方向改变中断。每种中断条件   都可以分别使能或者禁止。要得到关于使用中断的更多信息,参见通讯和中断指令一节。

注意当使用外部复位中断时,不要写入初始值,或者是在该中断程序中禁止再允许高速计数器,否则会  产生一个致命错误。

每个高速计数器都有一个状态字节,其中的状态存储位指出了当前计数方向,当前值是否大于或者等  于预设值。表6--31给出了每个高速计数器状态位的定义。

提示只有在执行中断程序时,状态位才有效。监视高速计数器状态的目的是使其他事件能够产生中断以 完成更重要的操作。
高速计数器的初始化步骤举例

以下以HSC1为例,对初始化和操作的步骤进行描述。在初始化描述中,假定S7- 200已经置成RUN 模式。因此,首次扫描标志位为真。如果不是这种情况,请记住在进入RUN模式之后,对每一个高速  计数器的HDEF指令只能执行一次。对一个高速计数器第二次执行HDEF指令会引起运行错误,而且不能改变第一次执行HDEF指令时对计数器的设置。

HSC1为内部方向控制的单相增/减计数器(模式0、1或2),初始化步骤如下:

  1. 用初次扫描存储器位(SM0.1=1)调用执行初始化操作的子程序。由于采用了这样的子程序调 用,后续扫描不会再调用这个子程序,从而减少了扫描时间,也提供了一个结构优化的程序。
  2. 初始化子程序中,根据所希望的控制操作对SMB47置数。例如:

启用计数器写新当前值写新预设值

将启动和复位输入设为高电平有效

  1. 在HSC输入设为1,MODE输入设为下列其中一个数值时,执行HDEF指令:0用于无外部复位  或启动,1用于外部复位和无启动,或2用于外部复位和启动。
  2. 向SMD48(双字)写入所希望的初始值(若写入0,则清除)。
  3. 向SMD52(双字)写入所希望的预设值。
  4. 为了捕获当前值(CV)等于预设值(PV)中断事件,编写中断子程序,并指定CV=PV中断事件(事  件13)调用该中断子程序。参看本章中断一节,以了解中断处理的细节。
  5. 为了捕获外部复位事件,编写中断子程序,并指定外部复位中断事件(事件15)调用该中断子  程序。
  6. 执行全局中断允许指令(ENI)来允许HSC1中断。

HSC1为外部方向控制的单相增/减计数器(模式3、4或5),初始化步骤如下:

  1. 用初次扫描存储器位(SM0.1=1)调用执行初始化操作的子程序。由于采用了这样的子程序调 用,后续扫描不会再调用这个子程序,从而减少了扫描时间,也提供了一个结构优化的程序。
  2. 初始化子程序中,根据所希望的控制操作对SMB47置数。例如:

启用计数器写新当前值写新预设值

将HSC的初始方向设为向上计数将启动和复位输入设为高电平有效

  1. 在HSC输入设为1,MODE输入设为下列其中一个数值时,执行HDEF指令:3用于无外部复位  或启动,4用于外部复位和无启动,或5用于外部复位和启动。
  2. 向SMD48(双字)写入所希望的初始值(若写入0,则清除)。
  3. 向SMD52(双字)写入所希望的预设值。
  4. 为了捕获当前值(CV)等于预设值(PV)中断事件,编写中断子程序,并指定CV=PV中断事件(事  件13)调用该中断子程序。参看本章中断一节,以了解中断处理的细节。
  5. 为了捕获计数方向改变中断事件,编写中断子程序,并指定计数方向改变中断事件(事件14)调  用该中断子程序。
  6. 为了捕获外部复位事件,编写中断子程序,并指定外部复位中断事件(事件15)调用该中断子  程序。
  7. 执行全局中断允许指令(ENI)来允许HSC1中断。

HSC1为具有增/减两种时钟的两相增/减计数器(模式6、7或8),初始化步骤如下:

  1. 用初次扫描存储器位(SM0.1=1)调用执行初始化操作的子程序。由于采用了这样的子程序调 用,后续扫描不会再调用这个子程序,从而减少了扫描时间,也提供了一个结构优化的程序。
  2. 初始化子程序中,根据所希望的控制操作对SMB47置数。例如:

启用计数器写新当前值写新预设值

将HSC的初始方向设为向上计数将启动和复位输入设为高电平有效

  1. 在HSC输入设为1,MODE设为下列其中一个数值时,执行HDEF指令:6用于无外部复位或启    动,7用于外部复位和无启动,或8用于外部复位和启动。
  2. 向SMD48(双字)写入所希望的初始值(若写入0,则清除)。
  3. 向SMD52(双字)写入所希望的预设值。
  4. 为了捕获当前值(CV)等于预设值(PV)中断事件,编写中断子程序,并指定CV=PV中断事件(事  件13)调用该中断子程序。参看本章中断一节,以了解中断处理的细节。
  5. 为了捕获计数方向改变中断事件,编写中断子程序,并指定计数方向改变中断事件(事件14)调  用该中断子程序。
  6. 为了捕获外部复位事件,编写中断子程序,并指定外部复位中断事件(事件15)调用该中断子  程序。
  7. 执行全局中断允许指令(ENI)来允许HSC1中断。
初始化模式9、10或11

HSC1为A/B相正交计数器(模式9、10或11),初始化步骤如下:

  1. 用初次扫描存储器位(SM0.1=1)调用执行初始化操作的子程序。由于采用了这样的子程序调 用,后续扫描不会再调用这个子程序,从而减少了扫描时间,也提供了一个结构优化的程序。
  2. 初始化子程序中,根据所希望的控制操作对SMB47置数。

实例(1x计数模式):

启用计数器写新当前值写新预设值

将HSC的初始方向设为向上计数将启动和复位输入设为高电平有效

实例(4x计数模式):

启用计数器写新当前值写新预设值

将HSC的初始方向设为向上计数将启动和复位输入设为高电平有效

  1. 在HSC输入设为1,MODE输入设为下列其中一个数值时,执行HDEF指令:9用于无外部复位  或启动,10用于外部复位和无启动,或11用于外部复位和启动。
  2. 向SMD48(双字)写入所希望的初始值(若写入0,则清除)。
  3. 向SMD52(双字)写入所希望的预设值。
  4. 为了捕获当前值(CV)等于预设值(PV)中断事件,编写中断子程序,并指定CV=PV中断事件(事  件13)调用该中断子程序。参见本章中断一节,以了解中断处理的细节。
  5. 为了捕获计数方向改变中断事件,编写中断子程序,并指定计数方向改变中断事件(事件14)调  用该中断子程序。
  6. 为了捕获外部复位事件,编写中断子程序,并指定外部复位中断事件(事件15)调用该中断子  程序。
  7. 执行全局中断允许指令(ENI)来允许HSC1中断。

HSC0为PTO0产生的脉冲计数(模式12),初始化步骤如下:

  1. 用初次扫描存储器位(SM0.1=1)调用执行初始化操作的子程序。由于采用了这样的子程序调 用,后续扫描不会再调用这个子程序,从而减少了扫描时间,也提供了一个结构优化的程序。
  2. 初始化子程序中,根据所希望的控制操作对SMB37置数。例如:

启用计数器写新当前值写新预设值

将启动和复位输入设为高电平有效

  1. 向SMD38(双字)写入所希望的初始值(若写入0,则清除)。
  2. 向SMD42(双字)写入所希望的预设值。
  3. 为了捕获当前值(CV)等于预设值(PV)中断事件,编写中断子程序,并指定CV=PV中断事件(事  件12)调用该中断子程序。参看本章中断一节,以了解中断处理的细节。
  4. 执行全局中断允许指令(ENI)来允许HSC1中断。
改变模式0、1、2或12的计数方向

对具有内部方向(控制模式0、1、2或12)的单相计数器HSC1,改变其计数方向的步骤如下:

  1. 向SMB47写入所需的计数方向:

置HSC计数方向为减。

写入新的初始值(任何模式下)

在改变初始值时,迫使计数器处于非工作状态。当计数器被禁止时,它既不计数也不产生中断。  以下步骤描述了如何改变HSC1的初始值(任何模式下):

  1. 向SMB47写入新的初始值的控制位:
  1. 向SMD48(双字)写入所希望的初始值(若写入0,则清除)。
写入新的预设值(任何模式下)

以下步骤描述了如何改变HSC1的预设值(任何模式):

  1. 向SMB47写入允许写入新的预设值的控制位:
  1. 向SMD52(双字)写入所希望的预设值。
禁止HSC(任何模式下)

以下步骤描述了如何禁止HSC1高速计数器(任何模式):

  1. 写入SMB47以禁止计数:
  1. 执行HSC指令,以禁止计数。

脉冲输出指令(PLS)用于在高速输出(Q0.0和Q0.1)上控制脉冲 串输出(PTO)和脉宽调制(PWM)功能。

改进的位控向导可以创建为您的应用程序定制的指令,这可以 简化您的编程任务并充分利用S7-200CPU的特有特性。关于位控向导的更多信息,参见9章。

可以继续使用旧的PLS指令创建您自己的运动应用,但是只有改进的位控向导创建的指令才支持PTO上的线性斜坡。

PTO可以输出一串脉冲(占空比50%),用户可以控制脉冲的周 期和个数。

PWM可以输出连续的、占空比可调的脉冲串,用户可以控制脉冲的周期和脉宽。

S7-    200有两个PTO/PWM发生器,它们可以产生一个高速脉冲串或者一个脉宽调制信号波形。一个生成器分配给数字输出点Q0.0,另一个生成器分配给数字输出点Q0.1。一个指定的特殊存储(SM)位置存储每个发生器的下列数据:一个控制字节(8位数值)、一个脉冲计数值(无符号32位数值)、一个周期

PTO/PWM生成器控制输出,正常使用输出点禁止。输出信号波形不受过程映像区状态、输出点强制   值或者立即输出指令执行的影响。当不使用PTO/PWM发生器功能时,对输出点的控制权交回到过程   映像寄存器。过程映像寄存器决定输出信号波形的起始和结束状态,以高低电平产生信号波形的启动  和结束。

表6--32 脉冲输出指令的有效操作数

提示在使能PTO或者PWM操作之前,将Q0.0和Q0.1过程映像寄存器清0。 所有控制位、周期、脉宽和脉冲计数值的缺省值均为0。

PTO/PWM的输出负载至少为10%的额定负载,才能提供陡直的上升沿和下降沿。

PTO按照给定的脉冲个数和周期输出一串方波(占空比50%)。(见图6- 28) PTO可以产生单段脉冲串

或者多段脉冲串(使用脉冲波形)。可以指定脉冲数和周期(以微秒或毫秒为增加量):

如果为周期指定一个奇的微秒数或毫秒数(例如75 ms),将会引起占空比失真。

表6--33中是对脉冲计数和周期的限定。

周期<2个时间单位 将周期缺省地设定为2个时间单位
将脉冲个数缺省地设定为1个脉冲

PTO功能允许脉冲串“链接”或者“排队”。当当前脉冲串输出完成时,会立即开始输出一个新的脉  冲串。这保证了多个输出脉冲串之间的连续性。

位控向导自动处理PTO脉冲的单段管道和多段管道、脉宽调制、SM位置配置和创建包络表。这里是  可供您参考的信息。建议您使用位控向导。关于位控向导的更多信息,参见第9章。

PTO脉冲串的单段管道

在单段管道模式,需要为下一个脉冲串更新特殊寄存器。一旦启动了起始PTO段,就必须按照第二个   信号波形的要求改变特殊寄存器,并再次执行PLS指令。第二个脉冲串的属性在管道中一直保持到第   一个脉冲串发送完成。在管道中一次只能存储一段脉冲串的属性。当第一个脉冲串发送完成时,接着  输出第二个信号波形,此时管道可以用于下一个新的脉冲串。重复这个过程可以再次设定下一个脉冲  串的特性。

除去以下两种情况之外,脉冲串之间可以作到平滑转换:时间基准发生了变化或者在利用PLS指令捕  捉到新脉冲之前,启动的脉冲串已经完成。

PTO脉冲串的多段管道

在多段管道模式,CPU自动从V存储器区的包络表中读出每个脉冲串的特性。在该模式下,仅使用特   殊存储器区的控制字节和状态字节。选择多段操作,必须装入包络表在V存储器中的起始地址偏移量

(SMW168或SMW178)。时间基准可以选择微秒或者毫秒,但是,在包络表中的所有周期值必须使用

同一个时间基准,而且在包络正在运行时不能改变。执行PLS指令来启动多段操作。

每段记录的长度为8个字节,由16位周期值、16位周期增量值和32位脉冲个数值组成。表6--34中给出   了包络表的格式。您可以通过编程的方式使脉冲的周期自动增减。在周期增量处输入一个正值将增加  周期;输入一个负值将减少周期;输入0将不改变周期。

当PTO包络执行时,当前启动的段的编号保存在SMB166(或SMB176)。

表6--34 多段PTO操作的包络表格式

0 分段数目:1到2551
初始周期(2到65,535时间基准单位)
每个脉冲的周期增量(有符号值)(- 32768到32767时间基准单位)
初始周期(2到65,535时间基准单位)
每个脉冲的周期增量(有符号值)(- 32,768到32,767时间基准单位)

1 输入0作为脉冲串的段数会产生一个非致命错误。将不产生PTO输出。

PWM产生一个占空比变化周期固定的脉冲输出。(见图6-29) 您可以以微秒或者毫秒为单位指定其周期和脉冲宽度:

有两个方法改变PWM信号波形的特性:

O 同步更新:如果不要求改变时间基准,则可以使用同步更新。利用同步更新,信号波形特性的变化发生在周期边沿,提供平滑转换。

O  异步更新:通常,对于PWM操作,脉冲宽度在周期保持不变时变化,所以不要求改变时间基准。但是,如果需要改变PTO/PWM发生器的时间基准,就要使用异步更新。异步更新会造成

PTO/PWM功能被瞬时禁止,和PWM信号波形不同步。这会引起被控设备的振动。由于这个原因,建议采用PWM同步更新。选择一个适合于所有周期时间的时间基准。

提示控制字节中的PWM更新方式位(SM67.4或SM77.4)用于指定更新方式。当PLS指令执行时变化生效。

如果改变了时间基准,会产生一个异步更新,而与PWM更新方式位的状态无关。

使用SM来配置和控制PTO/PWM操作

PLS指令会从特殊存储器SM中读取数据,使程序按照其存储值控制PTO/PWM发生器。SMB67控制

PTO0或者PWM0,SMB77控制PTO1或者PWM1。表6--36对用于控制PTO/PWM操作的存储器给出了描述。您可以使用表6--37作为一个快速参考,用其中的数值作为PTO/PWM控制寄存器的值来实现  需要的操作。

您可以通过修改SM存储区(包括控制字节),然后执行PLS指令来改变PTO或PWM信号波形的特性。  您可以在任意时刻禁止PTO或者PWM信号波形,方法为:首先将控制字节中的使能位(SM67.7或者

PTO状态字节中的空闲位(SM66.7或者SM76.7)标志着脉冲串输出完成。另外,在脉冲串输出完成时,您可以执行一段中断程序。(参考中断指令和通讯指令中的描述)。如果您使用多段操作,可以在  整个包络表完成之后执行中断程序。

O 在许多脉冲后,指定导致非法周期的周期增量数值将产生运算溢出条件,该条件终止PTO功能并将“增量计算错误”位(SM66.4或SM76.4)设为1。输出返回映像寄存器控制。

O 如果要手动终止一个正在进行中的PTO包络,要把状态字节中的用户终止位(SM66.5或

O 在将PTO/PWM溢出位(SM66.6或SM76.6)设为1时,尝试装载管线。如果希望检测后续溢出,必须在检测到溢出后手动清除该位。当CPU切换至RUN模式时,该位被初始化为0。

提示如果要装入新的脉冲数(SMD72或SMD82)、脉冲宽度(SMW70或SMW80)或周期(SMW68或SMW78),应该在执行PL

我要回帖

更多关于 s7200变量类型 的文章

 

随机推荐