После запуска скрипта Python появляются странные признакиPython

Программы на Python
Ответить
Anonymous
 После запуска скрипта Python появляются странные признаки

Сообщение Anonymous »

Я искал и изучал свою проблему, но это немного сложно, потому что у меня нет ошибки (кода) для поиска.

Я пытаюсь установить связь между моим RPI и ПЛК, после запуска сценария я получаю ответ (python Temp_buiten.py), как показано ниже, но вывод сценария такой: правильно, я получаю значение в свой ПЛК как число с плавающей запятой, как хочу, но каждый цикл, который я получаю, отвечает в моей командной строке:

pi@raspberrypi:~/scripts $ python Temp_buiten.py
@▒
A▒
pi@raspberrypi:~/scripts $


Я НЕ программист на Python, поэтому надеюсь, что кто-нибудь сможет мне помочь. Сценарий, который я пытаюсь запустить:

#!python3
#---------------Basis-------------------------
import sys
import datetime
import time
import os
import subprocess
import urllib2
import json
import base64
#--------------PLC Snap7----------------------
import S71200
from time import sleep
import snap7
from snap7.util import *
import struct
#---------------Settings----------------------
domoticzserver="192.168.1.210:8080"
domoticzusername = "Secret"
domoticzpassword = "Secret"
device = "558"
log_to_file = False
plc = S71200.S71200("192.168.1.242")
#---------------Variabelen--------------------
temp1 = 0.0
temp_woonkamer = {}
hum = 0.0
hum_stat = 0 #0 t/m 4
sensorids = ["28-0000062723e6"]

#---------------Wachtwoordenzooi--------------
base64string = base64.encodestring('%s:%s' % (domoticzusername, domoticzpassword)).replace('\n', '')
domoticzurl = 'http://'+ domoticzserver +'/json.htm? type=devices&rid='+device
#---------------Logging-----------------------
def log(message):
print message
if log_to_file == True:
logfile = open(sys.argv[0] + '.log', "a")
logfile.write(message + "\n")
logfile.close()
#---------------Info ophalen------------------
def domoticzrequest (url):
request = urllib2.Request(url)
request.add_header("Authorization", "Basic %s" % base64string)
#print(request)
response = urllib2.urlopen(request)
return response.read()
#--------------Status-------------------------
json_object = json.loads(domoticzrequest(domoticzurl))

if json_object["status"] == "OK":
temp1 = json_object["result"][0]['Temp']
hum = json_object["result"][0]['Humidity']
plc.writeMem("FREAL204",temp1)
sleep(1)
else:
print(device + "NOT OK")

for sensor in range(len(sensorids)):
tfile = open("/sys/bus/w1/devices/"+ sensorids[sensor] +"/w1_slave")
# Lees alle dat uit het "bestand" in een variabele.
text = tfile.read()
# Sluit het "bestand" nadat we het gelezen hebben.
tfile.close()
# We gaan nu de tekst splitsen per nieuwe regel (\n)
# en we selecteren de 2e regel [1] (1e regel = [0])
secondline = text.split("\n")[1]
# Splits de regel in "woorden", er wordt gespleten op de spaties.
# We selecteren hier het 10 "woord" [9] (tellend vanaf 0)
temperaturedata = secondline.split(" ")[9]
# De eerste 2 karakters zijn "t=", deze moeten we weghalen.
# we maken meteen van de string een integer (nummer).
temperature = float(temperaturedata[2:])
# De temperatuurwaarde moeten we delen door 1000 voor de juiste waarde.
temp_woonkamer[sensor] = temperature / 1000

plc.writeMem("FREAL200",temp_woonkamer[sensor])
sleep(1)


Подробнее здесь: https://stackoverflow.com/questions/420 ... signs-back
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»