python 内で無限ループを作成するべくwhile文を使い、while文中の初めと終わりにprintを入れました。
ですが、実行してみるとコマンドプロンプト上では一回のみの表示でループしているようには見えません。なぜなのでしょうか?
Python
1while True: 2 print('開始') 3 ・ 4 ・ 5 ・ 6 ・ 7 print('終了')
これであればコマンドプロンプト上には開始、終了が通常羅列されるのでしょうか?
python
1from flask import Flask, render_template 2from decimal import Decimal 3import logging 4import socket 5import webbrowser 6import math 7 8while True: 9 print('開始') 10 11 logging.basicConfig(level=logging.DEBUG, format='%(threadName)s: %(message)s') 12 host_ip = '192.168.24.204' # PLCのIPアドレス 13 host_port = 8501 # 上位リンク通信のポート番号(デフォルト値) 14 logging.debug('start') 15 client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # socket.AF_INETでip4を使うことを指定。socket.SOCK_STREAMでTCPを使うことを指定。 16 17 try: 18 #クライアント接続 19 client.connect((host_ip,host_port)) # サーバーに接続(kv-7500にTCP接続/上位リンク通信) 20 except: 21 print("PLC接続NG") 22 23 ##########################以下から画面表示に関係するパラメータ############################################## 24 25 # ↓上位リンク通信のコマンド(データ読み出しコマンド、左から順に、読み出しコード、IOの番号、?。 26 # ↓○○○ = "RDS DM53000.D 2\r" 27 # ↓[.D]⇒±10進数32BIT表示・・・返り値は10桁の0埋め数値 28 29 30 Production = "RD DM1014.D\r" # DM1014 : 生産数 31 Cycle_Time = "RD DM1302.D\r" # DM1302 : サイクルタイム 32 33 # ↓上位リンク通信のデータコードがASCIIなのでエンコード 34 # ↓ASCII:文字コード 35 # ↓エンコード:他の形式に変換すること 36 37 client.send(Production.encode("ascii")) # 生産数ををASCIIにエンコード 38 client.send(Cycle_Time.encode("ascii")) # サイクルタイムをASCIIにエンコード 39 40 print("send : " + Production) 41 print("send : " + Cycle_Time) 42 43 # ↓ 受信用バイト配列を定義しておく 44 # ↓ PLCからの返答がbyteデータなのでUTF-8にデコード 45 # ↓ UTF-8: 文字コード ASCIIよりデータサイズが小さい 46 # ↓ デコード:エンコードされたものをもとの形式に戻すこと 47 48 Production_number = client.recv(64) 49 Production_number = Production_number.decode("UTF-8") 50 Production_number = int(Production_number) 51 52 Cycle_time = client.recv(64) 53 Cycle_time = Cycle_time.decode("UTF-8") 54 Cycle_time = int(Cycle_time) 55 Cycle_time = Cycle_time * Decimal('0.1') 56 57 Goal = 86400 / Cycle_time # 目標数: 24時間 / サイクルタイム 58 Goal = math.floor(Goal) 59 60 Operation_Rate = ( 3600 / Cycle_time ) / Production_number 61 Operation_Rate = Operation_Rate * 100 62 Operation_Rate = math.floor(Operation_Rate) 63 # 進捗、稼働率 時間をどうするか検討必要 64 65 client.close() 66 logging.debug('end') 67 68 print("Received :" , Production_number) 69 print("Received :" , Cycle_time) 70 print("Received :" , Goal) 71 print(Operation_Rate, "%") 72 73 #######################################ここまでがソケット通信のコード######################################################################### 74 75 app = Flask(__name__) # アプリの設定 76 77 @app.route("/") # どのページで実行する関数か設定 78 79 def index(): 80 return render_template("index1.html", production_number=Production_number, cycle_time=Cycle_time, goal=Goal, operation_rate=Operation_Rate) # Hello, World! を出力 81 82 print('終了') 83 84 if __name__ == "__main__": # 実行されたら 85 app.run(debug=False, host='localhost', port=9999) # debug=False でRestartingを無効にする、host="'0'0'0'0"ではなくローカルホストにすること
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/20 04:37
2020/10/20 04:39
2020/10/20 04:49
2020/10/20 04:59
2020/10/20 05:51