国产91九色_日本68xxxx_欧美高清另类自拍视频在线看_欧美人禽_99久久婷婷国产综合精品青牛牛_亚洲射情

TWDLC*A10DRF單字乘除擴(kuò)展功能

2017/1/10 11:52:17

1.概述

  本文介紹無雙字功能的CPU如何實(shí)現(xiàn)類似雙字乘除運(yùn)算的方法.

  Twido CPU中僅TWDLC*A10DRF無雙字功能,雖然應(yīng)用該型號(hào)CPU一般都是純邏輯控制,沒有高精度乘除運(yùn)算的需求,但有時(shí)用到高速計(jì)數(shù).電位器.操作終端輸入等情況,需要運(yùn)算來判斷位置或設(shè)定值參與運(yùn)算時(shí)則很不方便.

  主要問題有:

  1.)運(yùn)算時(shí)可能要改比例

  2.)系統(tǒng)控制精度降低

  2 具體描述

  1.) 運(yùn)算時(shí)可能要改比例,因?yàn)橛锌赡馨l(fā)生溢出錯(cuò)誤.

  下圖為Twido字對(duì)象格式:

  從圖中可看到10進(jìn)制整數(shù)介于 -32768 和 32767 ,如果應(yīng)用中有10進(jìn)制運(yùn)算328*100時(shí)就發(fā)生溢出,結(jié)果不是預(yù)期中的32800,而是-32;

  要想避免計(jì)算出錯(cuò),防止溢出,就必須使乘積結(jié)果小于32767,也就要改變乘數(shù)或被乘數(shù)的比例,如將328*100改為328*10=3280,這樣改后雖然不會(huì)出錯(cuò),但可能帶來了我們前面提到的第2.)個(gè)問題;

  2.)系統(tǒng)控制精度降低

  假設(shè)上述舉例為位置控制,328表示高速計(jì)數(shù)輸入,100表示單位脈沖長(zhǎng)度輸入范圍,即可從0到100,如果這時(shí)單位脈沖長(zhǎng)度為0.1毫米,那么當(dāng)范圍由0到100改為0到10時(shí),單位脈沖長(zhǎng)度相當(dāng)于1毫米了,這種只有舍棄精度才能保證正確的乘法運(yùn)算是我們不愿見到的;

  再假設(shè)上述舉例中的高速計(jì)數(shù)輸入值大到20000,則根本無法乘運(yùn)算了,因此有必要擴(kuò)展乘除運(yùn)算功能;

  3 單字乘除擴(kuò)展功能的實(shí)現(xiàn)

  根據(jù)乘法原理:乘法表示相同的幾個(gè)數(shù)相加;即3*2=2+2+2, 相當(dāng)于3個(gè)2相加,因此可把積(結(jié)果)=被乘數(shù)*乘數(shù)相當(dāng)于=被乘數(shù)+…+被乘數(shù),共乘數(shù)個(gè)被乘數(shù)相加,但這樣做當(dāng)乘數(shù)很大時(shí)算會(huì)很麻煩,如乘數(shù)為1234時(shí)被乘數(shù)加1234次才有結(jié)果, 程序量大不易實(shí)現(xiàn);

  根據(jù)10進(jìn)制數(shù)定義, 1234=1*1000+2*100+3*10+4*1,這樣拆解乘數(shù)以后用1,2,3,4分別乘以乘數(shù)再累加求和,將大于32767的累加值的進(jìn)位放到高字,小于32767的放在低字存儲(chǔ),用連續(xù)的兩個(gè)高低字實(shí)現(xiàn),這樣運(yùn)算程序容易編且執(zhí)行速度快.

  詳細(xì)說明可參考以下程序:

  程序要求:被乘數(shù)與乘數(shù),其中一個(gè)不能大于3640(因3640*9<32767),另外一個(gè)不能大于32767(因?yàn)閱巫侄x不能大于32767),否則結(jié)果無意義

  乘積范圍:(0 到3640)*32767=119271880

  除法是乘法的反過程不作詳細(xì)說明,除數(shù)要求<=3640;

  程序(TXT類型,可在下拉菜單選:程序à導(dǎo)入àASCII程序,打開梯形圖)

  (* %MW300,%MW301是乘數(shù)、被乘數(shù)(范圍:0 - 3640*32767=119271880),其中一個(gè)〈3640 *)

  (* %MW333是除數(shù)《=3640 *****下面還有說明***** *)

  (* %MW320,MW321是乘法擴(kuò)展低、高位 *)

  (* %MW340,MW341是除法擴(kuò)展低、高位 *)

  LD 1

  SR0

  END

  (* 乘法擴(kuò)展子程序(范圍:0 - 3640*32767=119271880) *)

  (* (算法要求:被乘數(shù)與乘數(shù),其中一個(gè)不能大于3640,另外一個(gè)不能大于32767,否則結(jié)果無意義) *)

  SR0:

  LD 1

  [ %MW320 := 0 ]

  [ %MW321 := 0 ]

  [ %MW322 := 0 ]

  [ %MW323 := 0 ]

(* 乘法計(jì)算初步分析 *)

  (* %MW300被乘數(shù) %MW301乘數(shù) %MW302臨時(shí)寄存器 *)

  LD 1

  [ %MW302 := %MW300 * %MW301 ]

  (* 沒有溢出,則處理高低位后,直接輸出 *)

  LDN %S18

  JMPC %L0

  (* 結(jié)果溢出,則復(fù)位溢出寄存器 *)

  LD %S18

  R %S18

  (* 比較被乘數(shù)與乘數(shù),被乘數(shù)要求:小于等于乘數(shù),不能大于3640 *)

  LD [ %MW300 <= %MW301 ]

  JMPC %L1

  (* 被乘數(shù)大于乘數(shù),則交換被乘數(shù)與乘數(shù) *)

  LD 1

  [ %MW302 := %MW300 ]

  [ %MW300 := %MW301 ]

  [ %MW301 := %MW302 ]

  %L1:

  LD 1

  [ %MW303 := %MW301 ]

  (* 計(jì)算乘數(shù)個(gè)位與被乘數(shù)的積 *)

  LD 1

  [ %MW304 := %MW303 REM 10 ]

  [ %MW313 := %MW304 * %MW300 ]

  [ %MW305 := %MW303 / 10 ]

  LD [ %MW305 = 0 ]

  JMPC %L2

  (* 計(jì)算乘數(shù)十位與被乘數(shù)的積 *)

  LD 1

  [ %MW306 := %MW305 REM 10 ]

  [ %MW314 := %MW306 * %MW300 ]

  [ %MW307 := %MW305 / 10 ]

  LD [ %MW307 = 0 ]

  JMPC %L3

  (* 計(jì)算乘數(shù)百位與被乘數(shù)的積 *)

  LD 1

  [ %MW308 := %MW307 REM 10 ]

  [ %MW315 := %MW308 * %MW300 ]

  [ %MW309 := %MW307 / 10 ]

  LD [ %MW309 = 0 ]

  JMPC %L4

  (* 計(jì)算乘數(shù)千位與被乘數(shù)的積 *)

  LD 1

  [ %MW310 := %MW309 REM 10 ]

  [ %MW316 := %MW310 * %MW300 ]

  [ %MW311 := %MW309 / 10 ]

  LD [ %MW311 = 0 ]

  JMPC %L5

  (* 計(jì)算乘數(shù)的萬位與被乘數(shù)的積之和 *)

  LD 1

  [ %MW312 := %MW311 REM 10 ]

  [ %MW317 := %MW312 * %MW300 ]

  [ %MW318 := 0 ]

  [ %MW319 := %MW317 ]

  [ %MW320 := %MW320 + %MW318 ]

  [ %MW321 := %MW321 + %MW319 ]

  (* 計(jì)算乘數(shù)的萬、千位與被乘數(shù)的積之和 *)

  %L5:

  LD 1

  [ %MW318 := %MW316 REM 10 ]

  [ %MW318 := %MW318 * 1000 ]

  [ %MW319 := %MW316 / 10 ]

  [ %MW320 := %MW320 + %MW318 ]

  [ %MW321 := %MW321 + %MW319 ]

  (* 計(jì)算乘數(shù)的萬、千、百位與被乘數(shù)的積之和 *)

  %L4:

  LD 1

  [ %MW318 := %MW315 REM 100 ]

[ %MW318 := %MW318 * 100 ]

  [ %MW319 := %MW315 / 100 ]

  [ %MW320 := %MW320 + %MW318 ]

  [ %MW321 := %MW321 + %MW319 ]

  (* 計(jì)算乘數(shù)的萬、千、百、十位與被乘數(shù)的積之和 *)

  %L3:

  LD 1

  [ %MW318 := %MW314 REM 1000 ]

  [ %MW318 := %MW318 * 10 ]

  [ %MW319 := %MW314 / 1000 ]

  [ %MW320 := %MW320 + %MW318 ]

  [ %MW321 := %MW321 + %MW319 ]

  (* 計(jì)算乘數(shù)的萬、千、百、十、個(gè)位與被乘數(shù)的積之和 *)

  %L2:

  LD 1

  [ %MW318 := %MW313 REM 10000 ]

  [ %MW319 := %MW313 / 10000 ]

  [ %MW320 := %MW320 + %MW318 ]

  [ %MW302 := %MW320 ]

  [ %MW320 := %MW302 REM 10000 ]

  [ %MW302 := %MW302 / 10000 ]

  (* 計(jì)算最終結(jié)果 *)

  LD 1

  [ %MW321 := %MW321 + %MW302 ]

  [ %MW321 := %MW321 + %MW319 ]

  JMPC %L6

  (* 高低位處理直接計(jì)算結(jié)果 *)

  %L0:

  LD 1

  [ %MW320 := %MW302 REM 10000 ]

  [ %MW321 := %MW302 / 10000 ]

  (* 最終計(jì)算結(jié)果輸出 *)

  %L6:

  LD 1

  [ %MW322 := %MW320 ]

  [ %MW323 := %MW321 ]

  (* 高位除法得到高位商值,余數(shù),%MW333為除數(shù)必須小于3640 *)

  (* 否則結(jié)果錯(cuò)誤 *)

  LD 1

  [ %MW341 := %MW321 / %MW333 ]

  [ %MW342 := %MW321 REM %MW333 ]

  (* 高位余數(shù)加低位千位數(shù)除 *)

  LD 1

  [ %MW332 := %MW320 / 1000 ]

  [ %MW331 := %MW320 REM 1000 ]

  [ %MW343 := %MW342 * 10 ]

  [ %MW344 := %MW343 + %MW332 ]

  [ %MW345 := %MW344 / %MW333 ]

  [ %MW346 := %MW344 REM %MW333 ]

  (* 千位除法余數(shù)加百位數(shù)除 *)

  LD 1

  [ %MW347 := %MW331 / 100 ]

  [ %MW348 := %MW331 REM 100 ]

  [ %MW349 := %MW346 * 10 ]

  [ %MW350 := %MW349 + %MW347 ]

  [ %MW351 := %MW350 / %MW333 ]

  [ %MW352 := %MW350 REM %MW333 ]

  (* 百位除法余數(shù)加十位數(shù)除 *)

  LD 1

  [ %MW353 := %MW348 / 10 ]

  [ %MW354 := %MW348 REM 10 ]

[ %MW355 := %MW352 * 10 ]

  [ %MW356 := %MW355 + %MW353 ]

  [ %MW357 := %MW356 / %MW333 ]

  [ %MW358 := %MW356 REM %MW333 ]

  (* 十位除法余數(shù)加個(gè)位數(shù)除 *)

  LD 1

  [ %MW359 := %MW358 * 10 ]

  [ %MW360 := %MW359 + %MW354 ]

  [ %MW361 := %MW360 / %MW333 ]

  [ %MW362 := %MW360 REM %MW333 ]

  (* 千、百、十、個(gè)位商值求和 *)

  LD 1

  [ %MW363 := %MW345 * 1000 ]

  [ %MW364 := %MW351 * 100 ]

  [ %MW365 := %MW357 * 10 ]

  [ %MW366 := %MW363 + %MW364 ]

  [ %MW367 := %MW365 + %MW361 ]

  [ %MW340 := %MW366 + %MW367 ]

  (* 個(gè)位余數(shù)如果大于除數(shù)一半,即四舍五入到商數(shù)低位%MW340 *)

  LD 1

  [ %MW368 := %MW333 / 2 ]

  AND [ %MW362 >= %MW368 ]

  [ %MW340 := %MW340 + 1 ]

  RET

施耐德電氣技術(shù)文摘:
Twido程序不能正常打開的處理
施耐德電氣變頻器故障代碼及處理方法
昆鋼25MW發(fā)電機(jī)組煤氣鍋爐引送風(fēng)機(jī)變頻改造實(shí)施經(jīng)驗(yàn)
施耐德電氣LMC058運(yùn)動(dòng)控制器的三大功能介紹
變頻協(xié)調(diào)控制技術(shù)在引風(fēng)變頻系統(tǒng)改造中的應(yīng)用
施耐德電氣熱繼電器選型方式
施耐德電氣PLC通過CANopen的SDO報(bào)文控制SD388B
Twdio PLC無法自動(dòng)運(yùn)行解決方法
施耐德電氣綠色城市綜合體
在Twido PLC的通訊程序中巧用常量字KW
施耐德電氣變頻器常見問題解析
Twido PLC上電時(shí)數(shù)據(jù)初始化方法匯總
wido plc 在某些有特殊控制規(guī)律設(shè)備中的使用技巧
ATV61變頻器高級(jí)多泵卡的PID參數(shù)的整定方法
為什么變頻器不能用作變頻電源?
兩種TWIDO PLC在線修改程序錯(cuò)誤的解決方法
光電傳感器選型需要哪些主要參數(shù)?
施耐德電氣ATV31變頻器電機(jī)自整定注意事項(xiàng)
更多施耐德電氣技術(shù)文摘...

通過中華工控網(wǎng)在線聯(lián)系施耐德電氣有限公司:

免費(fèi)注冊(cè)為中華工控網(wǎng)會(huì)員

主站蜘蛛池模板: 日韩免费精品视频 | 欧美在线一区二区 | 日韩av免费在线观看 | 91麻豆国产福利精品 | 爱爱的免费视频 | 色综合色综合色综合色综合 | 中文字幕亚洲成人 | 精久国产一区二区三区四区 | 少妇精品视频一区二区免费看 | 日韩精品极品视频 | 国产99久久 | 看全色黄大色黄大片女图片第一次 | 国产一级黄 | 成人欧美一区二区三区在线播放 | 久久久久久久国产 | 日韩精品久久久 | 黄色网址在线免费观看 | 国产久 | 国产黄色在线播放 | 日韩高清影片在线观看 | 成 人色 网 站 欧美大片在线观看 | 久久精品一区二区 | 亚洲一级在线观看 | 色婷婷精品国产一区二区三区 | 国产剧情一区二区三区 | jlzzjlzz国产精品久久 | 亚洲色图16p | 日本精品一区 | 色综合999 | 蜜臀91丨九色丨蝌蚪中文 | 一区在线视频 | 欧美成人免费在线视频 | 国产免费一区二区三区 | 国产欧美精品一区 | 男女上床网站 | 青青草网 | 久久亚洲国产 | 日韩精品1区 | 国产成人免费看一级大黄 | 91精品国产日韩91久久久久久 | 国产精品一区二区三区av |